Yesterday evening I noticed java.io.InvalidObjectException stopped being
thrown. I don't know why but I hope it is related to switching from eclipse
to intellij & not due to gae. (I also learned facelets is built into jsf2 so
a separate jar isn't required.)

I have two new problems which only happen on live gae--not dev gae:

1) I'm testing jsf-basics.zip on
http://www.coreservlets.com/JSF-Tutorial/jsf2/code/.
* open bank-lookup.jsf
* fill in form
* click [Show Current Balance]
* the correct jsf page is displayed
* click chrome's Back
* javax.faces.application.ViewExpiredException is thrown (whether using
client or server state saving):

org.apache.myfaces.shared_impl.util.StateUtils reconstruct: View State
cannot be reconstructed
javax.faces.FacesException:
javax.faces.application.ViewExpiredException
        at
org.apache.myfaces.shared_impl.util.StateUtils.decrypt(StateUtils.java:
490)
        at
org.apache.myfaces.shared_impl.util.StateUtils.reconstruct(StateUtils.java:
378)
        at
org.apache.myfaces.renderkit.html.HtmlResponseStateManager.getSavedState(Ht
mlResponseStateManager.java:
213)
        at
org.apache.myfaces.renderkit.html.HtmlResponseStateManager.getState(HtmlRes
ponseStateManager.java:
160)
        at
org.apache.myfaces.view.facelets.DefaultFaceletsStateManagementStrategy.res
toreView

(DefaultFaceletsStateManagementStrategy.java:
140)
        at
org.apache.myfaces.application.jsp.JspStateManagerImpl.restoreView(JspState
ManagerImpl.java:
388)
        at
org.apache.myfaces.shared_impl.view.ViewDeclarationLanguageBase.restoreView
(ViewDeclarationLanguageBase.java:
106)
        at
org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.restoreView
(FaceletViewDeclarationLanguage.java:
1277)
....

This doesn't happen if I submit the form with errors, fix them, & click
[Show Current Balance] button:
* open bank-lookup.jsf
* click [Show Current Balance] button
* validation errors are shown (post back)
* correct errors
* click [Show Current Balance] button
* click Back button

2) A simple use of <f:ajax> doesn't update:

<h:selectOneMenu id="menu" value="#{bankingBean.customerId}">
    <f:ajax event="change" execute="@this" render="register"/>
    <f:selectItems value="#{bankingBean.customerIds}"/>
</h:selectOneMenu>
<h:outputText id="register" value="#{bankingBean.customerId}"/>


On Thu, Oct 21, 2010 at 9:32 PM, ken keller <[email protected]> wrote:

> I'm a JSF2/myfaces rookie. I have it working w/ Eclipse Helios & gae
> Eclipse plugin. When I deploy it & visit my test page, a blank page is
> displayed & the log entry is appended to this message. It appears to be a
> session deserialization problem. Thx. for your help.
>
>
> javax.servlet.ServletException: java.lang.RuntimeException: 
> java.io.InvalidObjectException: enum constant attributes does not exist in 
> class javax.faces.component.UIComponent$PropertyKeys
>       at 
> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:240)
>       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:542)
>       at 
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
>       at 
> com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
>       at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>       at 
> com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:135)
>       at 
> com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:261)
>       at 
> com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:8486)
>       at 
> com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:8484)
>       at 
> com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24)
>       at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:418)
>       at com.google.net.rpc.impl.Server$RpcTask.runInContext(Server.java:572)
>       at 
> com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:448)
>       at com.google.tracing.TraceContext.runInContext(TraceContext.java:688)
>       at 
> com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:326)
>       at 
> com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:318)
>       at 
> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:446)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>       at java.lang.Thread.run(Thread.java:636)
> Caused by: java.lang.RuntimeException: java.io.InvalidObjectException: enum 
> constant attributes does not exist in class 
> javax.faces.component.UIComponent$PropertyKeys
>       at 
> com.google.apphosting.runtime.jetty.SessionManager.deserialize(SessionManager.java:413)
>       at 
> com.google.apphosting.runtime.jetty.SessionManager.createSessionFromEntity(SessionManager.java:376)
>       at 
> com.google.apphosting.runtime.jetty.SessionManager.loadSession(SessionManager.java:314)
>       at 
> com.google.apphosting.runtime.jetty.SessionManager.getSession(SessionManager.java:284)
>       at 
> org.mortbay.jetty.servlet.AbstractSessionManager.getHttpSession(AbstractSessionManager.java:237)
>       at 
> org.mortbay.jetty.servlet.SessionHandler.setRequestedId(SessionHandler.java:246)
>       at 
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:136)
>       at 
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>       at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
>       at 
> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:238)
>       ... 21 more
> Caused by: java.io.InvalidObjectException: enum constant attributes does not 
> exist in class javax.faces.component.UIComponent$PropertyKeys
>       at java.io.ObjectInputStream.readEnum(ObjectInputStream.java:1721)
>       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1343)
>       at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1684)
>       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1340)
>       at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1684)
>       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1340)
>       at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1684)
>       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1340)
>       at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
>       at java.util.HashMap.readObject(HashMap.java:1047)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:616)
>       at 
> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:991)
>       at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1865)
>       at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)
>       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
>       at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1684)
>       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1340)
>       at java.io.ObjectInputStream.skipCustomData(ObjectInputStream.java:1928)
>       at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1890)
>       at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)
>       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
>       at java.io.ObjectInputStream.skipCustomData(ObjectInputStream.java:1928)
>       at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1890)
>       at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)
>       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
>       at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
>       at java.util.HashMap.readObject(HashMap.java:1047)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:616)
>       at 
> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:991)
>       at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1865)
>       at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)
>       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
>       at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
>       at 
> com.google.apphosting.runtime.jetty.SessionManager.deserialize(SessionManager.java:411)
>       ... 30 more
> Caused by: java.lang.IllegalArgumentException: No enum const class 
> javax.faces.component.UIComponent$PropertyKeys.attributes
>       at java.lang.Enum.valueOf(Enum.java:214)
>       at java.io.ObjectInputStream.readEnum(ObjectInputStream.java:1719)
>       ... 69 more
>
>

Reply via email to