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

Reply via email to