You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by "Korhonen, Kalle" <kk...@cisco.com> on 2004/11/19 00:57:29 UTC

RE: Problems with client side state saving (and with server side state saving with IE)

________________________________

	From: Arinaya [mailto:arinaya@realidea.ca] 
	Subject: RE: Problems with client side state saving
	Interesting FYI,
	The below scenario works when the selectItems values are Integer
objects, but not when they are Strings.
	But Strings are ok with state saving method = server.

Interesting. I just run into a similar problem, which may or may not
have the same origins. I'm using server side state saving, and when some
of the Integer etc. bean properties that I'm trying to save using
saveState are null, IE crashes my server. And it only happens on IE, not
on Mozilla.. the logs are below. 
 
Kalle
 
javax.faces.el.EvaluationException: Expression: '#{users.list}'
 at
org.apache.myfaces.el.ValueBindingImpl.setValue(ValueBindingImpl.java:36
9)
 at
org.apache.myfaces.custom.savestate.UISaveState.restoreState(UISaveState
.java:47)
 at
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBas
e.java:500)
 at
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBas
e.java:492)
 at
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBas
e.java:492)
 at
org.apache.myfaces.application.jsp.JspStateManagerImpl.restoreComponentS
tate(JspStateManagerImpl.java:161)
 at
org.apache.myfaces.application.jsp.JspStateManagerImpl.restoreView(JspSt
ateManagerImpl.java:217)
 at
org.apache.myfaces.application.jsp.JspViewHandlerImpl.restoreView(JspVie
wHandlerImpl.java:265)
 at
org.apache.myfaces.application.jsp.JspTilesViewHandlerImpl.restoreView(J
spTilesViewHandlerImpl.java:303)
 at
org.apache.myfaces.lifecycle.LifecycleImpl.restoreView(LifecycleImpl.jav
a:117)
 at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70
)
 at javax.faces.webapp.FacesServlet.service(FacesServlet.java:109)
 at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:284)
 at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:204)
 at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatc
her.java:750)
 at
org.apache.catalina.core.ApplicationDispatcher.processRequest(Applicatio
nDispatcher.java:510)
 at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDisp
atcher.java:445)
 at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispat
cher.java:359)
 at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:233)
 at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:204)
 at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:257)
 at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:151)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
67)
 at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCon
textValve.java:245)
 at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:199)
 at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:151)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
67)
 at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:184)
 at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:151)
 at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:164)
 at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:149)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
67)
 at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:156)
 at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:151)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
67)
 at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
 at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206)
 at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:83
3)
 at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:732)
 at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:61
9)
 at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:688)
 at java.lang.Thread.run(Thread.java:534)
Caused by: javax.faces.FacesException: Cannot coerce java.lang.String to
java.lang.Integer
 at
org.apache.myfaces.util.ClassUtils.convertToType(ClassUtils.java:313)
 at
org.apache.myfaces.config.ManagedBeanBuilder.initializeProperties(Manage
dBeanBuilder.java:135)
 at
org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBea
nBuilder.java:59)
 at
org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResol
verImpl.java:328)
 at
org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariabl
e(ValueBindingImpl.java:637)
 at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
 at
org.apache.myfaces.el.ValueBindingImpl.resolveToBaseAndProperty(ValueBin
dingImpl.java:518)
 at
org.apache.myfaces.el.ValueBindingImpl.setValue(ValueBindingImpl.java:30
9)
 ... 42 more
Caused by: javax.servlet.jsp.el.ELException: An exception occured trying
to convert String "null" to type "java.lang.Integer"
 at org.apache.commons.el.Logger.logError(Logger.java:481)
 at org.apache.commons.el.Logger.logError(Logger.java:498)
 at org.apache.commons.el.Logger.logError(Logger.java:566)
 at
org.apache.commons.el.Coercions.coerceToPrimitiveNumber(Coercions.java:4
40)
 at org.apache.commons.el.Coercions.coerce(Coercions.java:332)
 at
org.apache.myfaces.util.ClassUtils.convertToType(ClassUtils.java:306)
 ... 49 more
javax.faces.FacesException: Cannot coerce java.lang.String to
java.lang.Integer
 at
org.apache.myfaces.util.ClassUtils.convertToType(ClassUtils.java:313)
 at
org.apache.myfaces.config.ManagedBeanBuilder.initializeProperties(Manage
dBeanBuilder.java:135)
 at
org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBea
nBuilder.java:59)
 at
org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResol
verImpl.java:328)
 at
org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariabl
e(ValueBindingImpl.java:637)
 at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
 at
org.apache.myfaces.el.ValueBindingImpl.resolveToBaseAndProperty(ValueBin
dingImpl.java:518)
 at
org.apache.myfaces.el.ValueBindingImpl.setValue(ValueBindingImpl.java:30
9)
 at
org.apache.myfaces.custom.savestate.UISaveState.restoreState(UISaveState
.java:47)
 at
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBas
e.java:500)
 at
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBas
e.java:492)
 at
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBas
e.java:492)
 at
org.apache.myfaces.application.jsp.JspStateManagerImpl.restoreComponentS
tate(JspStateManagerImpl.java:161)
 at
org.apache.myfaces.application.jsp.JspStateManagerImpl.restoreView(JspSt
ateManagerImpl.java:217)
 at
org.apache.myfaces.application.jsp.JspViewHandlerImpl.restoreView(JspVie
wHandlerImpl.java:265)
 at
org.apache.myfaces.application.jsp.JspTilesViewHandlerImpl.restoreView(J
spTilesViewHandlerImpl.java:303)
 at
org.apache.myfaces.lifecycle.LifecycleImpl.restoreView(LifecycleImpl.jav
a:117)
 at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70
)
 at javax.faces.webapp.FacesServlet.service(FacesServlet.java:109)
 at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:284)
 at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:204)
 at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatc
her.java:750)
 at
org.apache.catalina.core.ApplicationDispatcher.processRequest(Applicatio
nDispatcher.java:510)
 at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDisp
atcher.java:445)
 at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispat
cher.java:359)
 at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:233)
 at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:204)
 at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:257)
 at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:151)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
67)
 at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCon
textValve.java:245)
 at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:199)
 at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:151)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
67)
 at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:184)
 at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:151)
 at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:164)
 at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:149)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
67)
 at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:156)
 at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:151)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
67)
 at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
 at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206)
 at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:83
3)
 at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:732)
 at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:61
9)
 at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:688)
 at java.lang.Thread.run(Thread.java:534)
Caused by: javax.servlet.jsp.el.ELException: An exception occured trying
to convert String "null" to type "java.lang.Integer"
 at org.apache.commons.el.Logger.logError(Logger.java:481)
 at org.apache.commons.el.Logger.logError(Logger.java:498)
 at org.apache.commons.el.Logger.logError(Logger.java:566)
 at
org.apache.commons.el.Coercions.coerceToPrimitiveNumber(Coercions.java:4
40)
 at org.apache.commons.el.Coercions.coerce(Coercions.java:332)
 at
org.apache.myfaces.util.ClassUtils.convertToType(ClassUtils.java:306)
 ... 49 more
javax.servlet.jsp.el.ELException: An exception occured trying to convert
String "null" to type "java.lang.Integer"
 at org.apache.commons.el.Logger.logError(Logger.java:481)
 at org.apache.commons.el.Logger.logError(Logger.java:498)
 at org.apache.commons.el.Logger.logError(Logger.java:566)
 at
org.apache.commons.el.Coercions.coerceToPrimitiveNumber(Coercions.java:4
40)
 at org.apache.commons.el.Coercions.coerce(Coercions.java:332)
 at
org.apache.myfaces.util.ClassUtils.convertToType(ClassUtils.java:306)
 at
org.apache.myfaces.config.ManagedBeanBuilder.initializeProperties(Manage
dBeanBuilder.java:135)
 at
org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBea
nBuilder.java:59)
 at
org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResol
verImpl.java:328)
 at
org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariabl
e(ValueBindingImpl.java:637)
 at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
 at
org.apache.myfaces.el.ValueBindingImpl.resolveToBaseAndProperty(ValueBin
dingImpl.java:518)
 at
org.apache.myfaces.el.ValueBindingImpl.setValue(ValueBindingImpl.java:30
9)
 at
org.apache.myfaces.custom.savestate.UISaveState.restoreState(UISaveState
.java:47)
 at
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBas
e.java:500)
 at
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBas
e.java:492)
 at
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBas
e.java:492)
 at
org.apache.myfaces.application.jsp.JspStateManagerImpl.restoreComponentS
tate(JspStateManagerImpl.java:161)
 at
org.apache.myfaces.application.jsp.JspStateManagerImpl.restoreView(JspSt
ateManagerImpl.java:217)
 at
org.apache.myfaces.application.jsp.JspViewHandlerImpl.restoreView(JspVie
wHandlerImpl.java:265)
 at
org.apache.myfaces.application.jsp.JspTilesViewHandlerImpl.restoreView(J
spTilesViewHandlerImpl.java:303)
 at
org.apache.myfaces.lifecycle.LifecycleImpl.restoreView(LifecycleImpl.jav
a:117)
 at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70
)
 at javax.faces.webapp.FacesServlet.service(FacesServlet.java:109)
 at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:284)
 at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:204)
 at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatc
her.java:750)
 at
org.apache.catalina.core.ApplicationDispatcher.processRequest(Applicatio
nDispatcher.java:510)
 at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDisp
atcher.java:445)
 at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispat
cher.java:359)
 at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:233)
 at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:204)
 at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:257)
 at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:151)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
67)
 at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCon
textValve.java:245)
 at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:199)
 at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:151)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
67)
 at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:184)
 at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:151)
 at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:164)
 at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:149)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
67)
 at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:156)
 at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:151)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
67)
 at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
 at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206)
 at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:83
3)
 at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:732)
 at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:61
9)
 at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:688)
 at java.lang.Thread.run(Thread.java:534)
 


________________________________

		From: Arinaya [mailto:arinaya@realidea.ca] 
		Sent: Thursday, November 18, 2004 12:05 PM
		To: 'MyFaces Discussion'
		Subject: RE: Problems with client side state saving
		
		
		The following works perfectly when state is saved on the
server, but not when state is saved on the client. Can someone please
explain why. It looks like the valueChangeListener is not even being
triggered. What do I need to do to make JSF aware of changes to the
selectOneMenu input?
		 
		<h:selectOneMenu value="#{xxxBean.recordsPerPage}"
onchange="this.form.submit();" immediate="true">

		<f:selectItem itemLabel="10" itemValue="10"/>

		<f:selectItem itemLabel="20" itemValue="20"/>

		<f:selectItem itemLabel="50" itemValue="50"/>

		<f:selectItem itemLabel="All"
itemValue="#{xxxBean.recordCount}"/>

		<f:valueChangeListener
type="x.y.z.SatRecordsPerPageChangeListener"/>

		</h:selectOneMenu>