[richfaces-planning-issues] [JBoss JIRA] Commented: (RFPL-273) Test 3.3.3.BETA1 Distribution with both JSF 1.2 and JSF 2.0

Nick Belaevski (JIRA) jira-events at lists.jboss.org
Mon Dec 14 17:48:30 EST 2009


    [ https://jira.jboss.org/jira/browse/RFPL-273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12499861#action_12499861 ] 

Nick Belaevski commented on RFPL-273:
-------------------------------------

Additional information for RF-8203.

In JSF 1.2 components used the following code to save state of ValueExpression/ValueBinding instances attached:

javax.faces.component.UIComponentBase#saveBindingsState(FacesContext)
------ 8< ------
        Object[] bindingValues = bindings.values().toArray();
        for (int i = 0; i < bindingValues.length; i++) {
            bindingValues[i] = saveAttachedState(context, bindingValues[i]);
        }
------ 8< ------
saveAttachedState() method does basically this:
- If the object passed in for saving is StateHolder, then call its saveState() method and use return value (which is Serializable and represents internal object state) as state value
- If the object passed in for saving is Serializable, then serialize it and use its serialized value as state value
- Otherwise save just object class

We've used this in a4j:support either in another components. See http://anonsvn.jboss.org/repos/richfaces/tags/3.3.2.SR1/framework/impl/src/main/java/org/ajax4jsf/component/EventValueExpression.java for concrete example.

In JSF 2.0 this has been changed in the following way: now all ValueExpression/ValueBinding instances are stored in StateHelper, and it doesn't call saveAttachedState() for them. Note that state serialization is turned off by default for server-side state saving, so by default these objects were saved in state as references. If serialization is turned on, then ValueBinding that are not Serializable, but are StateHolder (and thus worked correctly in JSF 1.2) will fail with the following exception in JSF 2.0:

java.io.NotSerializableException: org.ajax4jsf.component.EventValueBinding
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
	at java.util.HashMap.writeObject(HashMap.java:1039)
	at sun.reflect.GeneratedMethodAccessor108.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
	at com.sun.faces.renderkit.ClientSideStateHelper.doWriteState(ClientSideStateHelper.java:293)
	at com.sun.faces.renderkit.ClientSideStateHelper.writeState(ClientSideStateHelper.java:167)
	at com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:123)
	at org.ajax4jsf.application.AjaxStateManager.writeState(AjaxStateManager.java:294)
	at org.ajax4jsf.application.AjaxStateManager.writeState(AjaxStateManager.java:256)
	at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:620)
	at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
	at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
	at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
	at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Thread.java:595)
 

> Test 3.3.3.BETA1 Distribution with both JSF 1.2 and JSF 2.0
> -----------------------------------------------------------
>
>                 Key: RFPL-273
>                 URL: https://jira.jboss.org/jira/browse/RFPL-273
>             Project: RichFaces Planning
>          Issue Type: Task
>      Security Level: Public(Everyone can see) 
>          Components: administration, QA
>    Affects Versions: 3.3.3.BETA1
>            Reporter: Jay Balunas
>            Assignee: Prabhat Jha
>            Priority: Blocker
>             Fix For: 3.3.3.BETA1
>
>
> Testing and verification of RichFaces 3.3.3.BETA1 is required for release.  This will include primary testing with JSF 1.2 support, and secondary test coverage with JSF 2.0 to include JOPR client, richfaces-demo, automated tests, and manual testing as required.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the richfaces-planning-issues mailing list