[Building Sakai] samigo unable to create test using markup

Sanghyun Jeon euksa99 at gmail.com
Thu Mar 28 11:53:54 PDT 2013


Karen

I have another related error before NPE

2013-03-28 11:25:32,439 ERROR http-8443-Processor22
org.sakaiproject.tool.assessment.qti.helper.AuthoringHelper - The input
node can not be null for a DOMSource for newTemplates!
java.lang.IllegalArgumentException: The input node can not be null for a
DOMSource for newTemplates!
        at
org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:745)
        at
org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:666)
        at
org.sakaiproject.tool.assessment.qti.util.XmlUtil.createTransformer(XmlUtil.java:407)
        at
org.sakaiproject.tool.assessment.qti.util.XmlUtil.transformDocument(XmlUtil.java:500)
        at
org.sakaiproject.tool.assessment.qti.helper.ExtractionHelper.map(ExtractionHelper.java:249)
        at
org.sakaiproject.tool.assessment.qti.helper.ExtractionHelper.mapAssessment(ExtractionHelper.java:204)
        at
org.sakaiproject.tool.assessment.qti.helper.AuthoringHelper.createImportedAssessment(AuthoringHelper.java:491)
        at
org.sakaiproject.tool.assessment.services.qti.QTIService.createImportedAssessment(QTIService.java:76)
        at
org.sakaiproject.tool.assessment.ui.listener.samlite.AssessmentListener.createImportedAssessment(AssessmentListener.java:48)
        at
org.sakaiproject.tool.assessment.ui.listener.samlite.AssessmentListener.processAction(AssessmentListener.java:29)
        at
javax.faces.event.ActionEvent.processListener(ActionEvent.java:57)
        at
javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:649)
        at javax.faces.component.UICommand.broadcast(UICommand.java:297)
        at
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
        at
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
        at
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
        at
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
        at
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at
org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:580)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
        at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
        at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
        at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
        at
org.sakaiproject.jsf.util.SamigoJsfTool.dispatch(SamigoJsfTool.java:301)
        at org.sakaiproject.jsf.util.JsfTool.doPost(JsfTool.java:256)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
        at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
        at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:364)
        at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
        at
org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:500)
        at
org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1216)
        at
org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:204)
        at
org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:96)
        at
org.sakaiproject.portal.charon.handlers.ToolHandler.doPost(ToolHandler.java:73)
        at
org.sakaiproject.portal.charon.SkinnableCharonPortal.doPost(SkinnableCharonPortal.java:1059)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at
org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:641)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
        at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
        at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
        at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)

        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
        at java.lang.Thread.run(Thread.java:595)

Would you mind advising us how do I advise our users who need to copy many
questions using assessment builder, instead of markup text?

S

On Thu, Mar 28, 2013 at 11:33 AM, Sanghyun Jeon <euksa99 at gmail.com> wrote:

> Sakai 2.7. has the same security issue, and that was the reason we need to
> apply this patch. I already advised our instructor to use assessment
> builder option, but he refused to do that, since it requires to copy more
> than 500 questions for each test manually.
> Do you have a better idea for this issue (avoid copying more than 500
> questions)?
>
> I tried to apply some fixes on this issue and now we have the below error
> before NPE and I think Sakai 2.8 probably support this, but Sakai 2.7 does
> not.....
>
> 2013-03-28 11:16:26,568 ERROR http-8443-Processor22
> org.sakaiproject.tool.assessment.qti.util.XmlUtil -
> jaxp_feature_not_supported: Feature "
> http://xml.org/sax/features/external-general-entities" is not supported.
> javax.xml.parsers.ParserConfigurationException:
> jaxp_feature_not_supported: Feature "
> http://xml.org/sax/features/external-general-entities" is not supported.
>         at
> com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl.setFeature(DocumentBuilderFactoryImpl.java:207)
>         at
> org.sakaiproject.tool.assessment.qti.util.XmlUtil.setDocumentBuilderFactoryFeatures(XmlUtil.java:101)
>         at
> org.sakaiproject.tool.assessment.qti.util.XmlUtil.readDocument(XmlUtil.java:212)
>         at
> org.sakaiproject.tool.assessment.qti.helper.ExtractionHelper.getTransformDocument(ExtractionHelper.java:193)
>         at
> org.sakaiproject.tool.assessment.qti.helper.ExtractionHelper.map(ExtractionHelper.java:247)
>         at
> org.sakaiproject.tool.assessment.qti.helper.ExtractionHelper.mapAssessment(ExtractionHelper.java:204)
>         at
> org.sakaiproject.tool.assessment.qti.helper.AuthoringHelper.createImportedAssessment(AuthoringHelper.java:491)
>         at
> org.sakaiproject.tool.assessment.services.qti.QTIService.createImportedAssessment(QTIService.java:76)
>         at
> org.sakaiproject.tool.assessment.ui.listener.samlite.AssessmentListener.createImportedAssessment(AssessmentListener.java:48)
>         at
> org.sakaiproject.tool.assessment.ui.listener.samlite.AssessmentListener.processAction(AssessmentListener.java:29)
>         at
> javax.faces.event.ActionEvent.processListener(ActionEvent.java:57)
>         at
> javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:649)
>         at javax.faces.component.UICommand.broadcast(UICommand.java:297)
>         at
> javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
>         at
> javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
>         at
> com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
>         at
> com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
>         at
> com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
>         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>         at
> org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:580)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>         at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
>         at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
>         at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
>         at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
>         at
> org.sakaiproject.jsf.util.SamigoJsfTool.dispatch(SamigoJsfTool.java:301)
>         at org.sakaiproject.jsf.util.JsfTool.doPost(JsfTool.java:256)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>         at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
>         at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
>         at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:364)
>         at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
>         at
> org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:500)
>         at
> org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1216)
>         at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:204)
>         at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:96)
>
>
> On Thu, Mar 28, 2013 at 11:10 AM, Karen Tsao <ktsao at stanford.edu> wrote:
>
>> Hi Sanghyun,
>>
>> This is a tough question. I really have no good answer for you.
>>
>> Can the instruction use the assessment builder to create the assessment?
>> It he agrees to do that, then you can keep the patch.
>>
>> By the way, have you tried to reproduce the XXE injection issue in your
>> environment? Although this should be an existing issue for a long time, it
>> is worth to confirm it in 2.7 environment. Because if this is not an issue
>> in 2.7, we don't need to worry about this patch.
>>
>> Thanks,
>> Karen
>>
>>
>> On Wed, Mar 27, 2013 at 9:38 PM, Sanghyun Jeon <euksa99 at gmail.com> wrote:
>>
>>> Karen,
>>>
>>> Can I have your opinion on which you would choose between security patch
>>> and markup text functionality?
>>>
>>> S
>>>
>>>
>>>
>>> On Wed, Mar 27, 2013 at 9:06 PM, Sanghyun Jeon <euksa99 at gmail.com>wrote:
>>>
>>>> Thank you for your reply.  I reached the same conclusion when I
>>>> reverted our war files one by one on our development instance this
>>>> afternoon. However, I hesitated to remove  this security patch, so that I
>>>> informed our user our current situation, because I did not have a fix/patch
>>>> without reverting this security patch and our user wanted me to fix this
>>>> markup text feature by today. I am wondering whether you have one...
>>>>
>>>>  I'd appreciated any help or suggestions you may have.
>>>>
>>>>
>>>> S
>>>>
>>>>
>>>>
>>>> On Mar 27, 2013 3:45 PM, "Karen Tsao" <ktsao at stanford.edu> wrote:
>>>>
>>>>> Out of the three patches, I think most likely SAM-2041 is the one
>>>>> causing your error. Do you want to revert it and see if you can create
>>>>> exam using markup text?
>>>>>
>>>>> Thanks,
>>>>> Karen
>>>>>
>>>>>
>>>>> On Wed, Mar 27, 2013 at 3:35 PM, Sanghyun Jeon <euksa99 at gmail.com>wrote:
>>>>>
>>>>>> Hello again,
>>>>>>
>>>>>> I have a faculty to schedule his test tomorrow and he is waiting for
>>>>>> my fix....
>>>>>>
>>>>>> Any information would be helpful..
>>>>>>
>>>>>> S
>>>>>>
>>>>>> On Wed, Mar 27, 2013 at 1:42 PM, Sanghyun Jeon <euksa99 at gmail.com>wrote:
>>>>>>
>>>>>>> Hello All,
>>>>>>>
>>>>>>> We are using samigo 2.7.0 in sakai2.7.0 We are experiencing unable
>>>>>>> to create test using markup text.
>>>>>>>
>>>>>>> Steps to reproduce:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 1)Login as instructor/admin
>>>>>>>
>>>>>>> 2)Samigo < create using markup text
>>>>>>>
>>>>>>> 3)Copy and paste questions from the examples 4)Create assessment
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Then user received " An unexpected error has occurred" on his/her
>>>>>>> webpage and tomcat log complained about nullpointexception.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Attached is our bug report which is almost the same as our tomcat
>>>>>>> log.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Our current samigo is generic 2.7.0 with SAM-2041, SAM-924, and SAM
>>>>>>> 1126 patch. I can tell it worked before these patches...because when we
>>>>>>> revert old samgio war file without patches, this feature
>>>>>>>
>>>>>>> Is working...
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Looks like Nullpointexception occurs on
>>>>>>>
>>>>>>> at
>>>>>>> org.sakaiproject.tool.assessment.ui.listener.samlite.AssessmentListener.createImportedAssessment(AssessmentListener.java:45)
>>>>>>>
>>>>>>>     at
>>>>>>> org.sakaiproject.tool.assessment.ui.listener.samlite.AssessmentListener.processAction(AssessmentListener.java:26)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> However, I cannot find the patch to fix this problem.
>>>>>>>
>>>>>>> Would you minding  shedding some light on this problem?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Thank you in advance.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Sanghyun
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20130328/6269497b/attachment.html 


More information about the sakai-dev mailing list