[richfaces-issues] [JBoss JIRA] (RF-11809) NPE on clearSkinCaches after HttpServletRequest wrapping

Fab Mars (Updated) (JIRA) jira-events at lists.jboss.org
Mon Dec 12 22:40:09 EST 2011


     [ https://issues.jboss.org/browse/RF-11809?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Fab Mars updated RF-11809:
--------------------------

    Environment: Win7 x86, Glassfish 3.1.2 promoted, JDK 1.6.0u29  (was: Win7 x86, Glassfish 3.1.2 promoted, JSK 1.6.0u29)

    
> NPE on clearSkinCaches after HttpServletRequest wrapping
> --------------------------------------------------------
>
>                 Key: RF-11809
>                 URL: https://issues.jboss.org/browse/RF-11809
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 4.1.0.CR2
>         Environment: Win7 x86, Glassfish 3.1.2 promoted, JDK 1.6.0u29
>            Reporter: Fab Mars
>              Labels: glassfish_v3, jsf21, richfaces4, skin
>
> I have a homemade "pretty URL" mechanism I've been using on JSF1.2 and RF 3.3 in the past.
> It uses a phase listener that operates during RESTORE_VIEW.
> At the end of its parsing, it computes the "real" viewId to display and does:
>     PrettyUrlRequestWrapper wrapper = new PrettyUrlRequestWrapper(request);
>     wrapper.setViewId(computedViewId);
>     context.getExternalContext().setRequest(wrapper);
> When I don't use it and call directly .jsf pages, all works fine with RF 4.1.0CR2.
> When I use it, I get this error:
> GRAVE: null
> javax.servlet.ServletException
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
> 	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> 	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
> 	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
> 	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
> 	at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
> 	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
> 	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
> 	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
> 	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
> 	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
> 	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
> 	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
> 	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
> 	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
> 	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
> 	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
> 	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
> 	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
> 	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
> 	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
> 	at java.lang.Thread.run(Thread.java:662)
> Caused by: java.lang.NullPointerException
> 	at org.richfaces.skin.SkinFactoryImpl.clearSkinCaches(SkinFactoryImpl.java:94)
> 	at org.richfaces.skin.SkinFactoryPreRenderViewListener.processEvent(SkinFactoryPreRenderViewListener.java:35)
> 	at javax.faces.event.SystemEvent.processListener(SystemEvent.java:106)
> 	at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2168)
> 	at com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2144)
> 	at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:302)
> 	at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:246)
> 	at javax.faces.application.ApplicationWrapper.publishEvent(ApplicationWrapper.java:670)
> 	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108)
> 	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
> 	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
> 	... 26 more
> ATTENTION: StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
> java.lang.NullPointerException
> 	at org.richfaces.skin.SkinFactoryImpl.clearSkinCaches(SkinFactoryImpl.java:94)
> 	at org.richfaces.skin.SkinFactoryPreRenderViewListener.processEvent(SkinFactoryPreRenderViewListener.java:35)
> 	at javax.faces.event.SystemEvent.processListener(SystemEvent.java:106)
> 	at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2168)
> 	at com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2144)
> 	at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:302)
> 	at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:246)
> 	at javax.faces.application.ApplicationWrapper.publishEvent(ApplicationWrapper.java:670)
> 	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108)
> 	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
> 	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
> 	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> 	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
> 	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
> 	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
> 	at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
> 	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
> 	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
> 	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
> 	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
> 	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
> 	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
> 	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
> 	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
> 	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
> 	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
> 	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
> 	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
> 	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
> 	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
> 	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
> 	at java.lang.Thread.run(Thread.java:662)
> Well, clearSkinCackes uses only FacesContext.
>     static void clearSkinCaches(FacesContext context) {
>         context.getAttributes().remove(BASE_SKIN_KEY);
>         context.getAttributes().remove(SKIN_KEY);
>     }
> If you check on the debugger, FC is indeed null then. That's unexpected and I'm not sure this is normal.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the richfaces-issues mailing list