[Portfolio] [Building Sakai] 2.8.1 stack trace

whumphri at vt.edu whumphri at vt.edu
Sat Mar 31 06:33:22 PDT 2012


Hi Dave,

The class cast exception comes from a line of code that's new to  
2.8.1. that code was added for SAK-20450. See line 170 here:

paramsMap.put(FormHelper.XSL_ARTIFACT_ID,  
((Artifact)bean).getId().getValue());

http://source.sakaiproject.org/viewsvn/metaobj/trunk/metaobj-util/tool-lib/src/java/org/sakaiproject/metaobj/shared/control/XsltArtifactView.java?r1=91943&r2=91944&

It looks like there's an if-else before the new line that checks if  
ElementBean bean is an Artifact before casting and calling getId().

       if (bean instanceof Artifact) {
          root = getStructuredArtifactDefinitionManager().createFormViewXml(
             (Artifact) bean, null);
          homeType = getHomeType((Artifact) bean);
          edit = ((Artifact)bean).getId() != null;
       }
       else {
          ...  //Another way to find the id of the artifact
       }


Maybe some of that conditional logic should be duplicated, or maybe  
the XSL_ARTIFACT_ID parameter could be set within that if-else instead  
of after it.

-Will



Quoting "McPherson, David" <dmcphers at vt.edu>:

> Hi,
>
> I'm working on VT's upgrade from 2.7 to 2.8.1 and when I try to edit  
> a portfolio form I get the stack trace below.  Has anyone seen this  
> or got any ideas how to resolve it?
>
> Thanks,
> Dave
>
> 2012-03-30 11:24:31,229 tomcat-14  
> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/sakai-metaobj-tool].[springapp] ERROR: Servlet.service() for servlet springapp threw  
> exception
> java.lang.ClassCastException:  
> org.sakaiproject.metaobj.shared.model.ElementBean cannot be cast to  
> org.sakaiproject.metaobj.shared.model.Artifact
> 	at  
> org.sakaiproject.metaobj.shared.control.XsltArtifactView.createXsltSource(XsltArtifactView.java:171)
> 	at  
> org.springframework.web.servlet.view.xslt.AbstractXsltView.renderMergedOutputModel(AbstractXsltView.java:346)
> 	at  
> org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:257)
> 	at  
> org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1183)
> 	at  
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:902)
> 	at  
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
> 	at  
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
> 	at  
> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> 	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:684)
> 	at  
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
> 	at  
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
> 	at  
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
> 	at org.sakaiproject.spring.util.SpringTool.dispatch(SpringTool.java:231)
> 	at org.sakaiproject.spring.util.SpringTool.doGet(SpringTool.java:294)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> 	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:614)
> 	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:684)
> 	at  
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
> 	at  
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:369)
> 	at  
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
> 	at  
> org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.help(ActiveToolComponent.java:581)
> 	at org.sakaiproject.spring.util.SpringTool.sendToHelper(SpringTool.java:280)
> 	at org.sakaiproject.spring.util.SpringTool.dispatch(SpringTool.java:143)
> 	at org.sakaiproject.spring.util.SpringTool.doGet(SpringTool.java:294)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> 	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:614)
> 	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:684)
> 	at  
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
> 	at  
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:369)
> 	at  
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
> 	at  
> org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:511)
> 	at  
> org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1436)
> 	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.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:864)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> 	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:696)
> 	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:224)
> 	at  
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
> 	at  
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> 	at  
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
> 	at  
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
> 	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
> 	at  
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> 	at  
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> 	at  
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
> 	at  
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
> 	at  
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
> 	at  
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at  
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:662)
>
> --
> David McPherson
> dmcphers at vt.edu
> 540-231-8993
>
>
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>
> TO UNSUBSCRIBE: send email to  
> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of  
> "unsubscribe"
>



More information about the portfolio mailing list