[prev in list] [next in list] [prev in thread] [next in thread] 

List:       myfaces-user
Subject:    Re: java.io.InvalidObjectException: enum constant attributes does not
From:       ken keller <klrfin () gmail ! com>
Date:       2010-10-24 18:14:16
Message-ID: AANLkTimZOwQqiR+T9DCYRcwfnzkHqee6iq2TBOxRBzhR () mail ! gmail ! com
[Download RAW message or body]


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 <klrfin@gmail.com> 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
> 
> 



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic