Ok, I filed a bug against the Mojarra issue tracker and I am linking to this thread here to ensure no information is lost.
Bug is located here: https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=1607 -Matthias On Mon, Apr 12, 2010 at 3:20 PM, Matthias Wessendorf <mat...@apache.org> wrote: > Hi, > > for ticket "TRINIDAD-1747" ([1]) on the JSF 1.2-based Trinidad branch > we introduced the "ObjectInputStreamResolveClass" class. For > JSF2-based Trinidad this has not been (yet) > done. > > I uploaded a (simple) patch that makes similar usage of the class in > our JSF2 Version of Trinidad, > see [2] (the patch also set the > org.apache.myfaces.trinidad.CLIENT_STATE_METHOD to be fully > client-side state-saving). > > Running the latest trunk (with client-side state-saving) with the > patch works fine on MyFaces (I used the last beta-3 release). However > with the Mojarra 2.0.1 and 2.0.2 releases I get this exception > "java.lang.ClassNotFoundException: void": > > SEVERE: > java.lang.ClassNotFoundException: void > at java.net.URLClassLoader$1.run(URLClassLoader.java:200) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:188) > at java.lang.ClassLoader.loadClass(ClassLoader.java:307) > at > org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195) > at > org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255) > at > org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:274) > at > org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214) > at java.lang.ClassLoader.loadClass(ClassLoader.java:252) > at > org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:401) > at > org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:363) > at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:169) > at > org.apache.myfaces.trinidad.util.ClassLoaderUtils.loadClass(ClassLoaderUtils.java:134) > at > org.apache.myfaces.trinidad.util.ClassLoaderUtils.loadClass(ClassLoaderUtils.java:65) > at > org.apache.myfaces.trinidadinternal.util.ObjectInputStreamResolveClass.resolveClass(ObjectInputStreamResolveClass.java:50) > at > java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575) > at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) > at java.io.ObjectInputStream.readClass(ObjectInputStream.java:1462) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1312) > at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) > at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) > at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) > at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) > at > org.apache.myfaces.trinidadinternal.renderkit.core.CoreResponseStateManager._restoreSerializedView(CoreResponseStateManager.java:257) > at > org.apache.myfaces.trinidadinternal.renderkit.core.CoreResponseStateManager.getTreeStructureToRestore(CoreResponseStateManager.java:146) > at > org.apache.myfaces.trinidadinternal.application.StateManagerImpl.restoreView(StateManagerImpl.java:567) > at > com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:131) > at > com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:143) > at > javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:288) > at > org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:242) > at > com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:199) > at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) > at > com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:110) > at > com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) > at > org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247) > at > org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157) > at > org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > at > org.apache.myfaces.trinidaddemo.webapp.RedirectFilter.doFilter(RedirectFilter.java:97) > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) > at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) > at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) > at > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) > at > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) > at > org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > at org.mortbay.jetty.Server.handle(Server.java:326) > at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536) > at > org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930) > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405) > at > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) > at > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) > Apr 12, 2010 3:11:52 PM > org.apache.myfaces.trinidadinternal.renderkit.core.CoreResponseStateManager > _restoreSerializedView > SEVERE: > java.lang.ClassNotFoundException: void > at java.net.URLClassLoader$1.run(URLClassLoader.java:200) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:188) > at java.lang.ClassLoader.loadClass(ClassLoader.java:307) > at > org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195) > at > org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255) > at > org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:274) > at > org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214) > at java.lang.ClassLoader.loadClass(ClassLoader.java:252) > at > org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:401) > at > org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:363) > at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:169) > at > org.apache.myfaces.trinidad.util.ClassLoaderUtils.loadClass(ClassLoaderUtils.java:134) > at > org.apache.myfaces.trinidad.util.ClassLoaderUtils.loadClass(ClassLoaderUtils.java:65) > at > org.apache.myfaces.trinidadinternal.util.ObjectInputStreamResolveClass.resolveClass(ObjectInputStreamResolveClass.java:50) > at > java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575) > at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) > at java.io.ObjectInputStream.readClass(ObjectInputStream.java:1462) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1312) > at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) > at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) > at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) > at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) > at > org.apache.myfaces.trinidadinternal.renderkit.core.CoreResponseStateManager._restoreSerializedView(CoreResponseStateManager.java:257) > at > org.apache.myfaces.trinidadinternal.renderkit.core.CoreResponseStateManager.getComponentStateToRestore(CoreResponseStateManager.java:156) > at > org.apache.myfaces.trinidadinternal.application.StateManagerImpl.restoreView(StateManagerImpl.java:568) > at > com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:131) > at > com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:143) > at > javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:288) > at > org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:242) > at > com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:199) > at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) > at > com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:110) > at > com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) > at > org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247) > at > org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157) > at > org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > at > org.apache.myfaces.trinidaddemo.webapp.RedirectFilter.doFilter(RedirectFilter.java:97) > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) > at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) > at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) > at > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) > at > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) > at > org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > at org.mortbay.jetty.Server.handle(Server.java:326) > at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536) > at > org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930) > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405) > at > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) > at > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) > > So right now this means that the client-side state-saving is broken in > Mojarra, or does it not? I think I tend to file a bug against the > Mojarra implementation. > > PS: Running similar stuff (ADF Faces) on Weblogic I get a similar > error, indicating the same "java.lang.ClassNotFoundException: void" > exception. > > [1] https://issues.apache.org/jira/browse/TRINIDAD-1747 > [2] > https://issues.apache.org/jira/secure/attachment/12441478/ObjectInputStreamResolveClass_for_trinidad2 > > > -- > Matthias Wessendorf > > blog: http://matthiaswessendorf.wordpress.com/ > sessions: http://www.slideshare.net/mwessendorf > twitter: http://twitter.com/mwessendorf > -- Matthias Wessendorf blog: http://matthiaswessendorf.wordpress.com/ sessions: http://www.slideshare.net/mwessendorf twitter: http://twitter.com/mwessendorf