[Building Sakai] profile2 1.2 profile and connection link throw RuntimeException

Steve Swinsburg steve.swinsburg at gmail.com
Thu Jul 23 15:06:51 PDT 2009


Thanks Qu,

I can't patch this right now as I am away travelling and won't be back  
for a few weeks, however for anyone watching and need to fix this,  
issue the following SQL:

update SAKAI_PERSON_T set locked=false where locked=null;

I'll add it to the Jira and to the Profile2 page.

cheers,
Steve


On 23/07/2009, at 10:21 PM, Qu, Yuanhua wrote:

> I fixed the problem.  I created a JIRA http://jira.sakaiproject.org/browse/PRFL-97 
>   and put attached my patch there.  Thanks for all your helps.
>
> - Qu
>
>
> On 7/23/09 9:27 AM, "Qu, Yuanhua" <yq12 at txstate.edu> wrote:
>
> Here is more info that I just found:
>
> If I deleted the record of user in SAKAI_PERSON_T table, he can load  
> the profile page without error, everything seems fine.  My guess  
> would be something handling with SAKAI_PERSON_T data in the java  
> code for getting the person’s data might throw NullPointerException?
>
> - Qu
>
>
> On 7/23/09 7:31 AM, "Qu, Yuanhua" <yq12 at txstate.edu> wrote:
>
> I did have two versions in there.  I removed the sakai-profile2- 
> api-1.1.jar. Restarted the server.  Problem still exist.
>
> I don’t have problem when pointing to newly created sakai db but  
> have problem with existing db.  Could it be possible that some field  
> in SAKAI_PERSON_T table give null value?
>
> - Qu
>
>
> On 7/23/09 4:48 AM, "Steve Swinsburg" <steve.swinsburg at gmail.com>  
> wrote:
>
> Ok I think I know the issue, check shared/lib and make sure you  
> don't have two versions of the sakai-profile2-api-XXX.jar in there.
>
> cheers,
> Steve
>
>
>
> On 23/07/2009, at 1:31 AM, Qu, Yuanhua wrote:
>
> Since it was throwing NullPointerException, I figured that the  
> “Privacy” UI shows “Internal Error” might caused by the new added  
> Academic_info column in privacy table.  I did forget to run 1.1 to  
> 1.2 mysql conversion, therefore, there were records with NULL value  
> in the academic_info field.  After I ran the profile2- 
> conversion-1.1-1.2-mysql.sql,  the “Privacy” page shows right.  Yay!
>
>  Still, when I click on reset Profile,  the UI shows “Internal  
> Error”,  when I click again on My Profile link, the My Profile page  
> UI shows “Unexpected RuntimeException”;   with the messages that I  
> attached earlier, still related to NullPonterException.   Didn’t see  
> t Didn’t see this error in profile1.1 though.
>
>  Please take a look at the log file I attached and see what went  
> wrong and how could I fix it.  Thanks.
>
>  Here is in the web.xml file close to the bottom:
>
>      <!-- Wicket likes to have a url-pattern mapping even though  
> Sakai doesn't use it. -->    <servlet-mapping>        <servlet- 
> name>sakai.profile2</servlet-name>        <url-pattern>/sakai- 
> profile2/*</url-pattern>            </servlet-mapping>          
> <context-param>        <param-name>configuration</param-name>         
> <!-- <param-value>development</param-value> -->        <param- 
> value>deployment</param-value>    </context-param>
>
>
>  - Qu
>
>
>
>
>  On 7/22/09 6:49 PM, "Steve Swinsburg" <steve.swinsburg at gmail.com>  
> wrote:
>
>
> Interesting,
>
>  What happens in the logs, can you also send me a schema of your  
> PROFILE_PRIVACY_T table. Did you upgrade the table with the upgrade  
> script?
>
>  Also, does this error throw in the UI? It should be catching this  
> exception in a Wicket handler as I thought it was set to deployment  
> mode. Can you check the web.xml for a parameter near the bottom that  
> says deployment/development?
>
>
>
>  cheers,
>  Steve
>
> On 22/07/2009, at 11:17 PM, Qu, Yuanhua wrote:
>
>
> Correction.  It was My Profile and Privacy link in profile2 that  
> have this NullPointerException Error.   Other links are fine.  This  
> happened when I point to our existing database with ddl on;  
> everything works fine if I point to a newly created database.
>
>   - Qu
>
>
>   ------ Forwarded Message
>   From: "Qu, Yuanhua" <yq12 at txstate.edu>
>   Date: Wed, 22 Jul 2009 13:40:16 -0500
>   To: Steve Swinsburg <s.swinsburg at lancaster.ac.uk>, Sakai-Dev <sakai-dev at collab.sakaiproject.org 
> >
>   Subject: [Building Sakai] profile2 1.2 profile and connection link  
> throw RuntimeException
>
>   I’ve just upgraded profile2 from 1.1 to the newest release 1.2.
>
>   I ran into “Unexpected RuntimeException” when I click My Profile  
> and Connection links, other like Privacy, Preferences and Search  
> seems loading the right page.  Any idea?   Attach the error message  
> below.  Any help will appreciated.   Thanks.
>
>   - Qu
>
>   WicketMessage: Method onLinkClicked of interface  
> org.apache.wicket.markup.html.link.ILinkListener targeted at  
> component [MarkupContainer [Component id = myProfileLink]] threw an  
> exception
>
>   Root cause:
>
>   java.lang.NullPointerException
>   at  
> org.sakaiproject.profile2.tool.pages.MyProfile.<init>(MyProfile.java: 
> 112)
>   at org.sakaiproject.profile2.tool.pages.BasePage 
> $1.onClick(BasePage.java:44)
>   at org.apache.wicket.markup.html.link.Link.onLinkClicked(Link.java: 
> 214)
>   at java.lang.reflect.Method.invoke(Method.java:585)
>   at  
> org 
> .apache 
> .wicket 
> .RequestListenerInterface.invoke(RequestListenerInterface.java:183)
>   at  
> org 
> .apache 
> .wicket 
> .request 
> .target 
> .component 
> .listener 
> .ListenerInterfaceRequestTarget 
> .processEvents(ListenerInterfaceRequestTarget.java:73)
>   at  
> org 
> .apache 
> .wicket 
> .request 
> .AbstractRequestCycleProcessor 
> .processEvents(AbstractRequestCycleProcessor.java:91)
>   at  
> org 
> .apache 
> .wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1220)
>   at org.apache.wicket.RequestCycle.step(RequestCycle.java:1297)
>   at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1399)
>   at org.apache.wicket.RequestCycle.request(RequestCycle.java:529)
>   at  
> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java: 
> 356)
>   at  
> org 
> .apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java: 
> 124)
>   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: 
> 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: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: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: 
> 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: 
> 174)
>   at  
> org 
> .apache.coyote.http11.Http11Processor.process(Http11Processor.java: 
> 874)
>   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)
>
>   Complete stack:
>
>   org.apache.wicket.WicketRuntimeException: Method onLinkClicked of  
> interface org.apache.wicket.markup.html.link.ILinkListener targeted  
> at component [MarkupContainer [Component id = myProfileLink]] threw  
> an exception
>   at  
> org 
> .apache 
> .wicket 
> .RequestListenerInterface.invoke(RequestListenerInterface.java:194)
>   at  
> org 
> .apache 
> .wicket 
> .request 
> .target 
> .component 
> .listener 
> .ListenerInterfaceRequestTarget 
> .processEvents(ListenerInterfaceRequestTarget.java:73)
>   at  
> org 
> .apache 
> .wicket 
> .request 
> .AbstractRequestCycleProcessor 
> .processEvents(AbstractRequestCycleProcessor.java:91)
>   at  
> org 
> .apache 
> .wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1220)
>   at org.apache.wicket.RequestCycle.step(RequestCycle.java:1297)
>   at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1399)
>   at org.apache.wicket.RequestCycle.request(RequestCycle.java:529)
>   at  
> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java: 
> 356)
>
>   java.lang.reflect.InvocationTargetException
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at  
> sun 
> .reflect 
> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>   at java.lang.reflect.Method.invoke(Method.java:585)
>   at  
> org 
> .apache 
> .wicket 
> .RequestListenerInterface.invoke(RequestListenerInterface.java:183)
>   at  
> org 
> .apache 
> .wicket 
> .request 
> .target 
> .component 
> .listener 
> .ListenerInterfaceRequestTarget 
> .processEvents(ListenerInterfaceRequestTarget.java:73)
>   at  
> org 
> .apache 
> .wicket 
> .request 
> .AbstractRequestCycleProcessor 
> .processEvents(AbstractRequestCycleProcessor.java:91)
>   at  
> org 
> .apache 
> .wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1220)
>   at org.apache.wicket.RequestCycle.step(RequestCycle.java:1297)
>   at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1399)
>   at org.apache.wicket.RequestCycle.request(RequestCycle.java:529)
>   at  
> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java: 
> 356)
>
>
>
>   ------ End of Forwarded Message
>
>    <ATT00001.txt>
>
>
>
>
>
>   <profile2Error.log>
>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20090723/8ad446f4/attachment.html 


More information about the sakai-dev mailing list