Uploaded image for project: 'Sakai'
  1. Sakai
  2. SAK-23839

NPE when help.hide setting has no tools listed

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: CLOSED
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 2.9.2
    • Fix Version/s: 10.0
    • Component/s: Help Tool
    • Labels:
      None

      Description

      If the help.hide setting has no tools listed (e.g. help.hide=), the Help tool throws NPE.

      2013-08-05 11:29:30,026 WARN http-bio-8080-exec-9 org.sakaiproject.portal.util.ErrorReporter - Bug Report bug-id: b8b10b8c-7cbe-4326-b717-b6b14dbf96d7 user: null usage-session: null time: Aug 5, 2013 11:29:30 user comment: null stack trace
      org.sakaiproject.portal.api.PortalHandlerException: org.sakaiproject.tool.api.ToolException: org.apache.jasper.JasperException: An exception occurred processing JSP page /main.jsp at line 11

      8: <%@ taglib uri="http://sakaiproject.org/jsf/help" prefix="help" %>
      9:
      10: <f:view>
      11: <help:helpFrameSet
      12: helpWindowTitle="#

      {msgs.help}"
      13: searchToolUrl="#{requestScope.searchURL}"
      14: tocToolUrl="#{requestScope.tocURL}"


      Stacktrace:
      at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:894)
      caused by: org.sakaiproject.tool.api.ToolException: org.apache.jasper.JasperException: An exception occurred processing JSP page /main.jsp at line 11

      8: <%@ taglib uri="http://sakaiproject.org/jsf/help" prefix="help" %>
      9:
      10: <f:view>
      11: <help:helpFrameSet
      12: helpWindowTitle="#{msgs.help}

      "
      13: searchToolUrl="#

      {requestScope.searchURL}"
      14: tocToolUrl="#{requestScope.tocURL}"


      Stacktrace:
      at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1483)
      caused by: org.apache.jasper.JasperException: An exception occurred processing JSP page /main.jsp at line 11

      8: <%@ taglib uri="http://sakaiproject.org/jsf/help" prefix="help" %>
      9:
      10: <f:view>
      11: <help:helpFrameSet
      12: helpWindowTitle="#{msgs.help}"
      13: searchToolUrl="#{requestScope.searchURL}

      "
      14: tocToolUrl="#

      {requestScope.tocURL}

      "

      Stacktrace:
      at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
      caused by: java.lang.NullPointerException
      at java.util.Arrays$ArrayList.<init>(Arrays.java:3357)
      at java.util.Arrays.asList(Arrays.java:3343)
      at org.sakaiproject.component.app.help.HelpManagerImpl.registerStaticContent(HelpManagerImpl.java:1265)
      at org.sakaiproject.component.app.help.HelpManagerImpl.registerHelpContent(HelpManagerImpl.java:1011)
      at org.sakaiproject.component.app.help.HelpManagerImpl.initialize(HelpManagerImpl.java:943)
      at org.sakaiproject.component.app.help.HelpManagerImpl.getWelcomePage(HelpManagerImpl.java:725)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at com.sun.proxy.$Proxy62.getWelcomePage(null:-1)
      at org.sakaiproject.jsf.help.HelpFrameSetRender.encodeBegin(HelpFrameSetRender.java:113)
      at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:703)
      at javax.faces.component.UIData.encodeBegin(UIData.java:701)
      at javax.faces.webapp.UIComponentTag.encodeBegin(UIComponentTag.java:613)
      at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:500)
      at org.apache.jsp.main_jsp._jspx_meth_help_005fhelpFrameSet_005f0(main_jsp.java:152)
      at org.apache.jsp.main_jsp._jspx_meth_f_005fview_005f0(main_jsp.java:117)
      at org.apache.jsp.main_jsp._jspService(main_jsp.java:83)
      at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
      at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
      at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:346)
      at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:152)
      at org.sakaiproject.jsf.app.SakaiViewHandler.renderView(SakaiViewHandler.java:159)
      at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107)
      at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:268)
      at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:214)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:634)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
      at org.sakaiproject.jsf.util.JsfTool.dispatch(JsfTool.java:221)
      at org.sakaiproject.tool.help.HelpJsfTool.dispatch(HelpJsfTool.java:96)
      at org.sakaiproject.jsf.util.JsfTool.doGet(JsfTool.java:241)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
      at org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:511)
      at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1483)
      at org.sakaiproject.portal.charon.handlers.HelpHandler.doHelp(HelpHandler.java:107)
      at org.sakaiproject.portal.charon.handlers.HelpHandler.doGet(HelpHandler.java:69)
      at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:894)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:695)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
      at java.lang.Thread.run(Thread.java:680)

        Gliffy Diagrams

          Zeplin

            Attachments

              Activity

                People

                Assignee:
                jonespm Matthew Jones
                Reporter:
                amehta Anand Mehta (Inactive)
                Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                  Dates

                  Created:
                  Updated:
                  Resolved:

                    Git Integration