History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: SAK-11052
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Critical Critical
Assignee: Unassigned
Reporter: Matthew Buckett
Votes: 1
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
Sakai

Mailtool falls over when a site doesn't have a type defined.

Created: 08-Aug-2007 07:57   Updated: 22-Oct-2008 20:46
Component/s: Mailtool
Affects Version/s: 2.5.0, 2.4.x
Fix Version/s: 2.4.x, 2.5.2, 2.6.0-alpha-01

Time Tracking:
Not Specified

File Attachments: 1. Text File mailtools.patch (0.6 kb)


2.4.x Status: Resolved
2.5.x Status: Resolved
2.6.x Status: None


 Description  « Hide
If the mailtool is added to a site that doesn't have a type defined (can be created with the Sites tool) then mailtool doesn't work. Stack trace is something like (2.4.x):

Stacktrace:
   at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:371)
caused by: javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.faces.FacesException: javax.faces.FacesException: Can't instantiate class: 'org.sakaiproject.tool.mailtool.Mailtool'.. class org.sakaiproject.tool.mailtool.Mailtool : java.lang.NullPointerException
   at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
caused by: javax.faces.el.EvaluationException: javax.faces.FacesException: javax.faces.FacesException: Can't instantiate class: 'org.sakaiproject.tool.mailtool.Mailtool'.. class org.sakaiproject.tool.mailtool.Mailtool : java.lang.NullPointerException
   at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:154)
caused by: javax.faces.FacesException: javax.faces.FacesException: Can't instantiate class: 'org.sakaiproject.tool.mailtool.Mailtool'.. class org.sakaiproject.tool.mailtool.Mailtool : java.lang.NullPointerException
   at com.sun.faces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:78)
caused by: javax.faces.FacesException: Can't instantiate class: 'org.sakaiproject.tool.mailtool.Mailtool'.. class org.sakaiproject.tool.mailtool.Mailtool : java.lang.NullPointerException
   at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:256)
caused by: java.lang.ClassNotFoundException: class org.sakaiproject.tool.mailtool.Mailtool : java.lang.NullPointerException
   at java.beans.Beans.instantiate(Beans.java:48)
caused by: java.lang.NullPointerException
   at org.sakaiproject.tool.mailtool.Mailtool.getGroupAwareRoleDefault(Mailtool.java:1019)
   at org.sakaiproject.tool.mailtool.Mailtool.<init>(Mailtool.java:269)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
   at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
   at java.lang.Class.newInstance0(Class.java:350)
   at java.lang.Class.newInstance(Class.java:303)
   at java.beans.Beans.instantiate(Beans.java:204)
   at java.beans.Beans.instantiate(Beans.java:48)
   at com.sun.faces.config.ManagedBeanFactory.newInstance(ManagedBeanFactory.java:203)
   at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:256)
   at com.sun.faces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:78)
   at org.sakaiproject.jsf.app.SakaiVariableResolver.resolveVariable(SakaiVariableResolver.java:76)
   at com.sun.faces.el.impl.NamedValue.evaluate(NamedValue.java:125)
   at com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:146)
   at com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:243)
   at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:173)
   at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:154)
   at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:315)
   at javax.faces.webapp.UIComponentTag.shouldBeSuppressed(UIComponentTag.java:1281)
   at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:475)
   at com.sun.faces.taglib.html_basic.PanelGroupTag.doStartTag(PanelGroupTag.java:98)
   at org.apache.jsp.mailtool.main_005fonepage_jsp._jspx_meth_h_005fpanelGroup_005f0(main_005fonepage_jsp.java:297)
   at org.apache.jsp.mailtool.main_005fonepage_jsp._jspx_meth_h_005fform_005f0(main_005fonepage_jsp.java:259)
   at org.apache.jsp.mailtool.main_005fonepage_jsp._jspService(main_005fonepage_jsp.java:212)
   at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
   at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
   at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
   at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
   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:691)
   at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
   at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
   at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
   at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
   at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
   at org.sakaiproject.jsf.app.SakaiViewHandler.renderView(SakaiViewHandler.java:137)
   at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
   at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
   at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
   at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
   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:555)
   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:691)
   at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
   at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
   at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
   at org.sakaiproject.jsf.util.JsfTool.dispatch(JsfTool.java:221)
   at org.sakaiproject.jsf.util.JsfTool.doGet(JsfTool.java:241)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
   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:691)
   at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
   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:441)
   at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1099)
   at org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:163)
   at org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:86)
   at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:718)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
   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:592)
   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:210)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
   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:151)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
   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:685)
   at java.lang.Thread.run(Thread.java:595)

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Matthew Buckett - 08-Aug-2007 08:28
This should fix the NPE exception but I haven't tested if the tool still works correctly in a site without a type.

SOO IL KIM - 10-Aug-2007 10:04
I haven't thought a new site type then.
For now, it supports only two default site types: course, project.
I will take a look at that and your patch.

Steve Swinsburg - 11-Oct-2007 18:52
As per my emails on the sakai-dev mailing list, I applied this patch to the mailtool in 2.4.1 and can confirm it has fixed the error that was being thrown when the tool was being used on sites with no type.

SOO IL KIM - 29-Oct-2007 11:58
Applied patch to trunk.

Steve Swinsburg - 29-Oct-2007 16:40
Message from SOO on email:

I am trying to make sure what site type caused this error before
committing this patch to the trunk. Could you tell me what site type
you are using with Mailtool? Thanks in advance.


My response:

Hi Soo,
we didn't have a site type defined for the sites it was not working on. They just default to 'project' I believe. In any case, we have amended our site creation script to make sure all sites are of the 'project' site type.

Steve Swinsburg - 31-Oct-2007 18:42
Getting another similar error again, changing the site type to project in the database resolves it, previously it had no site type:

stack trace:

org.sakaiproject.portal.api.PortalHandlerException: org.sakaiproject.tool.api.ToolException: Exception in JSP: /mailtool/config_refactor.jsp:56

53: <h:outputText value=" " />
54: </h:panelGroup>
55:
56: <h:panelGroup rendered="#{Option.emailArchiveInSite and Mailtool.allowedToArchiveMessage}"styleClass="checkbox">
57: <h:selectBooleanCheckbox value="#{Option.archiveMessage}" id="achiveMessageID"/>
58: <h:outputLabel value="#{msgs.addtoemailarchive}" for="achiveMessageID" />
59: </h:panelGroup>


Stacktrace:
    at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:718)
caused by: org.sakaiproject.tool.api.ToolException: Exception in JSP: /mailtool/config_refactor.jsp:56

53: <h:outputText value=" " />
54: </h:panelGroup>
55:
56: <h:panelGroup rendered="#{Option.emailArchiveInSite and Mailtool.allowedToArchiveMessage}"styleClass="checkbox">
57: <h:selectBooleanCheckbox value="#{Option.archiveMessage}" id="achiveMessageID"/>
58: <h:outputLabel value="#{msgs.addtoemailarchive}" for="achiveMessageID" />
59: </h:panelGroup>


Stacktrace:
    at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1099)
caused by: org.apache.jasper.JasperException: Exception in JSP: /mailtool/config_refactor.jsp:56

53: <h:outputText value=" " />
54: </h:panelGroup>
55:
56: <h:panelGroup rendered="#{Option.emailArchiveInSite and Mailtool.allowedToArchiveMessage}"styleClass="checkbox">
57: <h:selectBooleanCheckbox value="#{Option.archiveMessage}" id="achiveMessageID"/>
58: <h:outputLabel value="#{msgs.addtoemailarchive}" for="achiveMessageID" />
59: </h:panelGroup>


Stacktrace:
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
caused by: javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.faces.FacesException: javax.faces.FacesException: Can't instantiate class: 'org.sakaiproject.tool.mailtool.OptionsBean'.. class org.sakaiproject.tool.mailtool.OptionsBean : java.lang.NullPointerException
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
caused by: javax.faces.el.EvaluationException: javax.faces.FacesException: javax.faces.FacesException: Can't instantiate class: 'org.sakaiproject.tool.mailtool.OptionsBean'.. class org.sakaiproject.tool.mailtool.OptionsBean : java.lang.NullPointerException
    at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:154)
caused by: javax.faces.FacesException: javax.faces.FacesException: Can't instantiate class: 'org.sakaiproject.tool.mailtool.OptionsBean'.. class org.sakaiproject.tool.mailtool.OptionsBean : java.lang.NullPointerException
    at com.sun.faces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:78)
caused by: javax.faces.FacesException: Can't instantiate class: 'org.sakaiproject.tool.mailtool.OptionsBean'.. class org.sakaiproject.tool.mailtool.OptionsBean : java.lang.NullPointerException
    at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:256)
caused by: java.lang.ClassNotFoundException: class org.sakaiproject.tool.mailtool.OptionsBean : java.lang.NullPointerException
    at java.beans.Beans.instantiate(Beans.java:48)
caused by: java.lang.NullPointerException
    at org.sakaiproject.tool.mailtool.OptionsBean.getGroupAwareRoleDefault(OptionsBean.java:174)
    at org.sakaiproject.tool.mailtool.OptionsBean.<init>(OptionsBean.java:116)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
    at java.lang.Class.newInstance0(Class.java:350)
    at java.lang.Class.newInstance(Class.java:303)
    at java.beans.Beans.instantiate(Beans.java:204)
    at java.beans.Beans.instantiate(Beans.java:48)
    at com.sun.faces.config.ManagedBeanFactory.newInstance(ManagedBeanFactory.java:203)
    at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:256)
    at com.sun.faces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:78)
    at org.sakaiproject.jsf.app.SakaiVariableResolver.resolveVariable(SakaiVariableResolver.java:76)
    at com.sun.faces.el.impl.NamedValue.evaluate(NamedValue.java:125)
    at com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:146)
    at com.sun.faces.el.impl.BinaryOperatorExpression.evaluate(BinaryOperatorExpression.java:165)
    at com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:243)
    at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:173)
    at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:154)
    at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:315)
    at javax.faces.webapp.UIComponentTag.shouldBeSuppressed(UIComponentTag.java:1281)
    at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:475)
    at com.sun.faces.taglib.html_basic.PanelGroupTag.doStartTag(PanelGroupTag.java:98)
    at org.apache.jsp.mailtool.config_005frefactor_jsp._jspx_meth_h_005fpanelGroup_005f5(config_005frefactor_jsp.java:890)
    at org.apache.jsp.mailtool.config_005frefactor_jsp._jspx_meth_h_005fpanelGrid_005f0(config_005frefactor_jsp.java:456)
    at org.apache.jsp.mailtool.config_005frefactor_jsp._jspx_meth_h_005fform_005f0(config_005frefactor_jsp.java:298)
    at org.apache.jsp.mailtool.config_005frefactor_jsp._jspService(config_005frefactor_jsp.java:199)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    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:691)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
    at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
    at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
    at org.sakaiproject.jsf.app.SakaiViewHandler.renderView(SakaiViewHandler.java:137)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
    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:555)
    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:691)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
    at org.sakaiproject.jsf.util.JsfTool.dispatch(JsfTool.java:221)
    at org.sakaiproject.jsf.util.JsfTool.doGet(JsfTool.java:241)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    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:691)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
    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:441)
    at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1099)
    at org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:163)
    at org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:86)
    at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:718)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    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:592)
    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:174)
    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:151)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Thread.java:595)






Megan May - 06-Nov-2007 15:18
Picked up this merge when merged in http://bugs.sakaiproject.org/jira/browse/SAK-11067

Megan May - 07-Nov-2007 09:30
Changing fix version to 2.5.0.013 as these JIRA are included in the latest tag

Peter A. Knoop - 29-Feb-2008 09:58
Still getting an error when trying to access Mailtool in site with no type.

QA4-US/sakai_2-5-0_RC_02atag



Technical Details

This information will automatically be included in your bug report.

org.sakaiproject.portal.api.PortalHandlerException: org.sakaiproject.tool.api.ToolException: Exception in JSP: /mailtool/main_onepage.jsp:19

16: <body onload="<%=request.getAttribute("sakai.html.body.onload")%>;">
17: <div class="portletBody">
18: <h:form id="mainForm" enctype="multipart/form-data">
19: <h:panelGroup rendered="#{Mailtool.allowedToConfigure}">
20: <sakai:tool_bar>
21: <sakai:tool_bar_item value="#{msgs.options_toolbar}" action="#{Mailtool.processGoToOptions}" immediate="true" />
22: </sakai:tool_bar>


Stacktrace:
    at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:891)
caused by: org.sakaiproject.tool.api.ToolException: Exception in JSP: /mailtool/main_onepage.jsp:19

16: <body onload="<%=request.getAttribute("sakai.html.body.onload")%>;">
17: <div class="portletBody">
18: <h:form id="mainForm" enctype="multipart/form-data">
19: <h:panelGroup rendered="#{Mailtool.allowedToConfigure}">
20: <sakai:tool_bar>
21: <sakai:tool_bar_item value="#{msgs.options_toolbar}" action="#{Mailtool.processGoToOptions}" immediate="true" />
22: </sakai:tool_bar>


Stacktrace:
    at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1343)
caused by: org.apache.jasper.JasperException: Exception in JSP: /mailtool/main_onepage.jsp:19

16: <body onload="<%=request.getAttribute("sakai.html.body.onload")%>;">
17: <div class="portletBody">
18: <h:form id="mainForm" enctype="multipart/form-data">
19: <h:panelGroup rendered="#{Mailtool.allowedToConfigure}">
20: <sakai:tool_bar>
21: <sakai:tool_bar_item value="#{msgs.options_toolbar}" action="#{Mailtool.processGoToOptions}" immediate="true" />
22: </sakai:tool_bar>


Stacktrace:
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:371)
caused by: javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.faces.FacesException: javax.faces.FacesException: Can't instantiate class: 'org.sakaiproject.tool.mailtool.Mailtool'.. class org.sakaiproject.tool.mailtool.Mailtool : java.lang.NullPointerException
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
caused by: javax.faces.el.EvaluationException: javax.faces.FacesException: javax.faces.FacesException: Can't instantiate class: 'org.sakaiproject.tool.mailtool.Mailtool'.. class org.sakaiproject.tool.mailtool.Mailtool : java.lang.NullPointerException
    at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:154)
caused by: javax.faces.FacesException: javax.faces.FacesException: Can't instantiate class: 'org.sakaiproject.tool.mailtool.Mailtool'.. class org.sakaiproject.tool.mailtool.Mailtool : java.lang.NullPointerException
    at com.sun.faces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:78)
caused by: javax.faces.FacesException: Can't instantiate class: 'org.sakaiproject.tool.mailtool.Mailtool'.. class org.sakaiproject.tool.mailtool.Mailtool : java.lang.NullPointerException
    at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:256)
caused by: java.lang.ClassNotFoundException: class org.sakaiproject.tool.mailtool.Mailtool : java.lang.NullPointerException
    at java.beans.Beans.instantiate(Beans.java:48)
caused by: java.lang.NullPointerException
    at org.sakaiproject.tool.mailtool.Mailtool.getGroupAwareRoleDefault(Mailtool.java:1063)
    at org.sakaiproject.tool.mailtool.Mailtool.<init>(Mailtool.java:276)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
    at java.lang.Class.newInstance0(Class.java:350)
    at java.lang.Class.newInstance(Class.java:303)
    at java.beans.Beans.instantiate(Beans.java:204)
    at java.beans.Beans.instantiate(Beans.java:48)
    at com.sun.faces.config.ManagedBeanFactory.newInstance(ManagedBeanFactory.java:203)
    at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:256)
    at com.sun.faces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:78)
    at org.sakaiproject.jsf.app.SakaiVariableResolver.resolveVariable(SakaiVariableResolver.java:76)
    at com.sun.faces.el.impl.NamedValue.evaluate(NamedValue.java:125)
    at com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:146)
    at com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:243)
    at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:173)
    at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:154)
    at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:315)
    at javax.faces.webapp.UIComponentTag.shouldBeSuppressed(UIComponentTag.java:1281)
    at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:475)
    at com.sun.faces.taglib.html_basic.PanelGroupTag.doStartTag(PanelGroupTag.java:98)
    at org.apache.jsp.mailtool.main_005fonepage_jsp._jspx_meth_h_005fpanelGroup_005f0(main_005fonepage_jsp.java:300)
    at org.apache.jsp.mailtool.main_005fonepage_jsp._jspx_meth_h_005fform_005f0(main_005fonepage_jsp.java:262)
    at org.apache.jsp.mailtool.main_005fonepage_jsp._jspService(main_005fonepage_jsp.java:215)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    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:691)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
    at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
    at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
    at org.sakaiproject.jsf.app.SakaiViewHandler.renderView(SakaiViewHandler.java:137)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
    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:555)
    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:691)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
    at org.sakaiproject.jsf.util.JsfTool.dispatch(JsfTool.java:221)
    at org.sakaiproject.jsf.util.JsfTool.doGet(JsfTool.java:241)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    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:691)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
    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:459)
    at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1343)
    at org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:163)
    at org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:86)
    at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:891)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    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:592)
    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:210)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
    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:151)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
    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:685)
    at java.lang.Thread.run(Thread.java:595)


user: a5513ed0-3880-40f6-98b8-ffc73c0414f5

usage-session: b0126656-7ed3-4992-9050-3abeaef9510c

time: Feb 29, 2008 11:56:54


Matthew Buckett - 01-May-2008 09:43
Ok, the fix got committed to trunk on the 29th Oct but the 2.5.x branch was made on the 3rd Oct. And the patch was never put into the branch as well. So it should be fixed on a nightly. Should we consider this for branch manager?

Matthew Buckett - 02-May-2008 07:32
As a double check I created a site on nightly2 without a type and mailtool didn't throw this error any longer.

Peter A. Knoop - 03-May-2008 09:38
Verified on nightly (see above). Please merge. Thanks.

David Horwitz - 06-May-2008 03:08
conflict merging this fix:

/**
* // OOTB(Out of the box) Sakai defaults
* @return
* return default group-aware role by type
* if type=course, return Student.
* if type=project, return access.
*/
public String getGroupAwareRoleDefault() {
<<<<<<< .working
if (getSiteType().equals("course"))
=======
// if (getSiteType().equals("course"))
if ("course".equals(getSiteType())) // it's a fix of SAK-11052
>>>>>>> .merge-right.r37480
return "Student";
<<<<<<< .working
if (getSiteType().equals("project"))
=======
// if (getSiteType().equals("project"))
if ("project".equals(getSiteType())) // it's a fix of SAK-11052
>>>>>>> .merge-right.r37480
return "access";
return "";
}

/**