[ http://issues.apache.org/struts/browse/SHALE-360?page=comments#action_39111 ] Craig McClanahan commented on SHALE-360: ----------------------------------------
As of tonight's (20061216) nightly build, you can now specify the zero relative index for the URL mapping to be used when generating URLs for resource ids. This is specified with a context init parameter named "org.apache.shale.remoting.FACES_SERVLET_MAPPING_INDEX", which has a default value of zero to select the first, or only, such mapping. Separately from this, it is already possible in the current version of Shale Remoting to specify two alternative <servlet> definitions for FacesServlet, with a different mapping for each, and then use the "org.apache.shale.remoting.FACES_SERVLET_NAME" context init parameter to specify the <servlet-name> of the servlet definition to use. You could try that even without a new version of Shale Remoting, although you'll likely want one anyway to pick up other bugfixes. > NPE in shale on GlassFish > ------------------------- > > Key: SHALE-360 > URL: http://issues.apache.org/struts/browse/SHALE-360 > Project: Shale > Issue Type: Bug > Components: Remoting > Affects Versions: 1.0.3 > Environment: GlassFish v2 build 28 > Reporter: Ken Paulsen > Assigned To: Craig McClanahan > Fix For: TBD > > > The following are the stack traces I received. It seemed to be intermittent. > I think another bug occurred in Dynamic Faces related to GlassFish restoring > session state across server restarts. After deserialization, transient > variables were not restored... I don't know if something similar is > happenning here, but could be. > [#|2006-12-10T23:13:23.158-0800|INFO|sun-appserver-ee9.1|com.sun.jsftemplating|_ThreadID=12;_ThreadName=httpWorkerThread-8080-0;|WEBUI0004: > The requested resource > (/static/META-INF/libs/scriptaculous/version1.6.4/prototype.js) is not > available.|#] > [#|2006-12-10T23:13:23.159-0800|WARNING|sun-appserver-ee9.1|javax.enterprise.resource.webcontainer.jsf.lifecycle|_ThreadID=12;_ThreadName=httpWorkerThread-8080-0;_RequestID=1de3fe2b-e48e-435e-9976-ce30efc56ed4;|phase(RESTORE_VIEW > 1,[EMAIL PROTECTED]) threw exception: java.lang.NullPointerException null > org.apache.shale.remoting.impl.MappingImpl.viewId(MappingImpl.java:300) > org.apache.shale.remoting.impl.MappingImpl.mapViewId(MappingImpl.java:227) > org.apache.shale.remoting.faces.RemotingPhaseListener.afterPhase(RemotingPhaseListener.java:94) > com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:278) > com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) > javax.faces.webapp.FacesServlet.service(FacesServlet.java:244) > org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:398) > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277) > org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:255) > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188) > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586) > com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73) > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:186) > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586) > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556) > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1032) > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137) > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586) > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556) > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1032) > org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:250) > com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:618) > com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.processNonBlocked(DefaultProcessorTask.java:549) > com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:790) > com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:326) > com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:248) > com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:199) > com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252) > com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:103) > |#] > I had accidentally missed the Dynamic Faces init parameter... I thought it > was related to that (note standard lifecycle above). But after installing > the init-param, clearing the generated directory in GF, and restarting the > whole server... I still had an exception from shale: > [#|2006-12-10T23:18:56.641-0800|INFO|sun-appserver-ee9.1|com.sun.jsftemplating|_ThreadID=12;_ThreadName=httpWorkerThread-8080-0;|WEBUI0004: > The requested resource > (/static/META-INF/libs/scriptaculous/version1.6.4/prototype.js) is not > available.|#] > [#|2006-12-10T23:18:56.642-0800|WARNING|sun-appserver-ee9.1|javax.enterprise.resource.webcontainer.jsf.lifecycle|_ThreadID=12;_ThreadName=httpWorkerThread-8080-0;_RequestID=4921981e-6383-4aa8-9655-f474eec508e3;|phase(RESTORE_VIEW > 1,[EMAIL PROTECTED]) threw exception: java.lang.NullPointerException null > org.apache.shale.remoting.impl.MappingImpl.viewId(MappingImpl.java:300) > org.apache.shale.remoting.impl.MappingImpl.mapViewId(MappingImpl.java:227) > org.apache.shale.remoting.faces.RemotingPhaseListener.afterPhase(RemotingPhaseListener.java:94) > com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:278) > com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) > com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle.execute(PartialTraversalLifecycle.java:79) > javax.faces.webapp.FacesServlet.service(FacesServlet.java:244) > org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:398) > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277) > > org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:255) > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188) > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586) > com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73) > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:186) > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586) > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556) > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1032) > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137) > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586) > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556) > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1032) > org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:250) > com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:618) > com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.processNonBlocked(DefaultProcessorTask.java:549) > com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:790) > com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:326) > com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:248) > com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:199) > com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252) > com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:103) > I had it working at one point, I don't know if I did something to break it or > if it's intermittent. It might not be shale's fault, it may be Dynamic Faces > or the app server which has an error message on startup w/ the init-parm for > Dynamic Faces in place: > [#|2006-12-10T23:24:08.654-0800|WARNING|sun-appserver-ee9.1|javax.enterprise.resource.webcontainer.jsf.lifecycle|_ThreadID=10;_ThreadName=main;_RequestID=82a8ab26-627d-4681-8565-5c574f07d7db;|LifecycleId > com.sun.faces.lifecycle.PARTIAL does not exist|#] > [#|2006-12-10T23:24:08.656-0800|SEVERE|sun-appserver-ee9.1|javax.enterprise.system.container.web|_ThreadID=10;_ThreadName=main;_RequestID=82a8ab26-627d-4681-8565-5c574f07d7db;|WebModule[]StandardWrapper.Throwable > java.lang.IllegalArgumentException: Cant create Lifecycle for id: > com.sun.faces.lifecycle.PARTIAL. > at > com.sun.faces.lifecycle.LifecycleFactoryImpl.getLifecycle(LifecycleFactoryImpl.java:226) > at javax.faces.webapp.FacesServlet.init(FacesServlet.java:170) > at > org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1165) > at > org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:994) > at > org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4689) > at > org.apache.catalina.core.StandardContext.start(StandardContext.java:5081) > at com.sun.enterprise.web.WebModule.start(WebModule.java:299) > at > org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1189) > at org.apache.catalina.core.StandardHost.start(StandardHost.java:924) > at > org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1189) > at > org.apache.catalina.core.StandardEngine.start(StandardEngine.java:520) > at org.apache.catalina.startup.Embedded.start(Embedded.java:916) > at com.sun.enterprise.web.WebContainer.start(WebContainer.java:839) > at > com.sun.enterprise.web.PEWebContainer.startInstance(PEWebContainer.java:750) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/struts/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira