[Building Sakai] NPE when viewing shared portfolio

David McPherson dmcphers at vt.edu
Thu Nov 11 07:20:10 PST 2010


Hi Noah,

Ok...here's the first stack trace if the user is not logged in:

WARN:  (2010-11-11 10:17:21,627 http-localhost%2F127.0.0.1-8380-Processor1_org.sakaiproject.util.RequestFilter)
java.lang.NullPointerException
	at org.sakaiproject.spring.util.SpringTool.sendToHelper(SpringTool.java:273)
	at org.sakaiproject.spring.util.SpringTool.dispatch(SpringTool.java:143)
	at org.sakaiproject.spring.util.SpringTool.doPost(SpringTool.java:306)
	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:616)
	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:875)
	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)
ERROR: Servlet.service() for servlet osp.presentation threw exception (2010-11-11 10:17:21,630 http-localhost%2F127.0.0.1-8380-Processor1_org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/osp-presentation-tool].[osp.presentation])
java.lang.NullPointerException
	at org.sakaiproject.spring.util.SpringTool.sendToHelper(SpringTool.java:273)
	at org.sakaiproject.spring.util.SpringTool.dispatch(SpringTool.java:143)
	at org.sakaiproject.spring.util.SpringTool.doPost(SpringTool.java:306)
	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:616)
	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:875)
	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)

Here's the stack trace if they are logged in:

WARN: org.sakaiproject.event.impl.ClusterEventTracking$$EnhancerByCGLIB$$a72af0fa at 57c56850.writeBatchEvents(): dbWrite failed: session: 99a8cb3d-293d-443d-8fb9-34be55806477 event: 0:user.login@[m, 2] (2010-11-11 10:18:42,584 org.sakaiproject.event.impl.ClusterEventTracking$$EnhancerByCGLIB$$a72af0fa_org.sakaiproject.event.impl.ClusterEventTracking)
WARN: org.sakaiproject.event.impl.ClusterEventTracking$$EnhancerByCGLIB$$a72af0fa at 57c56850.writeBatchEvents(): dbWrite failed: session: 99a8cb3d-293d-443d-8fb9-34be55806477 event: 0:pres.begin@/presence/~e7a72928-35fd-4bd7-00bc-0cd2732da7c0-presence[m, 2] (2010-11-11 10:18:42,591 org.sakaiproject.event.impl.ClusterEventTracking$$EnhancerByCGLIB$$a72af0fa_org.sakaiproject.event.impl.ClusterEventTracking)
WARN:  (2010-11-11 10:19:11,869 http-localhost%2F127.0.0.1-8380-Processor8_org.sakaiproject.util.RequestFilter)
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.theospi.portfolio.security.AuthorizationFailedException: Authorizing (osp.presentation.view, 359A3D710BBD452B49226D190F531D3F)
Caused by: 
org.theospi.portfolio.security.AuthorizationFailedException: Authorizing (osp.presentation.view, 359A3D710BBD452B49226D190F531D3F)
	at org.theospi.portfolio.security.app.AuthorizationFacadeImpl.checkPermission(AuthorizationFacadeImpl.java:62)
	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:592)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at $Proxy21.checkPermission(Unknown Source)
	at org.theospi.portfolio.presentation.control.ViewPresentationControl.handleRequest(ViewPresentationControl.java:186)
	at org.sakaiproject.metaobj.utils.mvc.impl.servlet.ViewControllerImpl.handle(ViewControllerImpl.java:78)
	at org.springframework.web.servlet.mvc.AbstractCommandController.handleRequestInternal(AbstractCommandController.java:84)
	at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
	at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:857)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:430)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
	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:616)
	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:875)
	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)
ERROR: Servlet.service() for servlet springapp threw exception (2010-11-11 10:19:11,872 http-localhost%2F127.0.0.1-8380-Processor8_org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/osp-presentation-tool].[springapp])
org.theospi.portfolio.security.AuthorizationFailedException: Authorizing (osp.presentation.view, 359A3D710BBD452B49226D190F531D3F)
	at org.theospi.portfolio.security.app.AuthorizationFacadeImpl.checkPermission(AuthorizationFacadeImpl.java:62)
	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:592)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at $Proxy21.checkPermission(Unknown Source)
	at org.theospi.portfolio.presentation.control.ViewPresentationControl.handleRequest(ViewPresentationControl.java:186)
	at org.sakaiproject.metaobj.utils.mvc.impl.servlet.ViewControllerImpl.handle(ViewControllerImpl.java:78)
	at org.springframework.web.servlet.mvc.AbstractCommandController.handleRequestInternal(AbstractCommandController.java:84)
	at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
	at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:857)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:430)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
	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:616)
	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:875)
	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)

--
David McPherson
2210A Torgersen Hall
Virginia Tech
Assistant Director, ePortfolio Initiatives
540-231-8993
http://eportfolio.vt.edu/

On Nov 10, 2010, at 3:56 PM, Noah Botimer wrote:

> Sure. The different URL forms should behave the same, so it sounds like we might have a bug there. The first 5-10 lines of each stack traces should be enough.
> 
> Thanks,
> -Noah
> 
> On Nov 10, 2010, at 3:32 PM, David McPherson wrote:
> 
>> Hi Noah,
>> 
>> The portal/tool construction does seem to take care of the problem.  We actually get two different exceptions depending on if the user was logged in first or not logged in.  I can send those if you want them.
>> 
>> Dave
>> --
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> David McPherson
>> Assistant Director, ePortfolio Initiatives
>> 2220A Torgersen Hall
>> Learning Technologies
>> dmcphers at vt.edu
>> 540-231-8993
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> On Nov 10, 2010, at 3:22 PM, Noah Botimer wrote:
>> 
>>> Dave,
>>> 
>>> OK. I thought it could have been SAK-18307 / SAK-18308.
>>> 
>>> The actual exception would probably help narrow it down. It's tough to say which module might be throwing. Two more confirmation items:
>>> 
>>> Does pasting the link in the browser behave any differently?
>>> 
>>> What if you use the portal/tool construction? (https://epdev.scholar.vt.edu/portal/tool/d64f3254-4edf-4c67-bd5b-d786289b10c2/viewPresentation.osp?id=359A3D710BBD452B49226D190F531D3F)
>>> 
>>> Thanks,
>>> -Noah
>>> 
>>> On Nov 10, 2010, at 3:06 PM, David McPherson wrote:
>>> 
>>>> Hi Noah,
>>>> 
>>>> Actually no on both parts.  It was me, using Mac Mail and we don't use SSO for our login.  Any other ideas?
>>>> 
>>>> Thanks,
>>>> Dave
>>>> --
>>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>> David McPherson
>>>> Assistant Director, ePortfolio Initiatives
>>>> 2220A Torgersen Hall
>>>> Learning Technologies
>>>> dmcphers at vt.edu
>>>> 540-231-8993
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On Nov 10, 2010, at 2:59 PM, Noah Botimer wrote:
>>>> 
>>>>> Just a guess...
>>>>> 
>>>>> Is this an Outlook user on a server with container-based login (SSO)?
>>>>> 
>>>>> There is a tricky combination of conspiring factors that I've seen with clicking links in Word docs, and I've suspected other MS/Office tools might be affected but haven't confirmed it.
>>>>> 
>>>>> Thanks,
>>>>> -Noah
>>>>> 
>>>>> On Nov 10, 2010, at 10:14 AM, David McPherson wrote:
>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> I've been trying to track down a NPE we are getting when someone tries to view a shared portfolio.  I can't find any other Jira's about this issue and I didn't want to make a new one if there's an existing one.  We're running 2.6.2 with patches applied.  Our kernel is 1.0.13 with a few customizations.  The problem seems to stem from when the login helper tries to get the current session and returns null.  If the user is already logged in and tries to view the shared portfolio, we get a different NPE.  In both cases, the user is trying to view the portfolio by clicking on a link that was in an email that was sent to them.  Here is what the url looks like:
>>>>>> 
>>>>>> https://epdev.scholar.vt.edu/osp-presentation-tool/viewPresentation.osp?id=359A3D710BBD452B49226D190F531D3F&sakai.tool.placement.id=d64f3254-4edf-4c67-bd5b-d786289b10c2
>>>>>> 
>>>>>> I can give more details but any help would be appreciated.  
>>>>>> 
>>>>>> Thanks,
>>>>>> Dave 
>>>>>> --
>>>>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>> David McPherson
>>>>>> Assistant Director, ePortfolio Initiatives
>>>>>> 2220A Torgersen Hall
>>>>>> Learning Technologies
>>>>>> 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"
>>>>> 
>>>> 
>>> 
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20101111/15d927f7/attachment.html 


More information about the sakai-dev mailing list