Paul Nicolucci created MYFACES-3656:
---------------------------------------

             Summary: ViewScoped bean fails when SERIALIZE_STATE_IN_SESSION is 
set to true
                 Key: MYFACES-3656
                 URL: https://issues.apache.org/jira/browse/MYFACES-3656
             Project: MyFaces Core
          Issue Type: Bug
          Components: JSR-314
    Affects Versions: 2.0.15
         Environment: WebSphere V8 and Tomcat 2.0.27
            Reporter: Paul Nicolucci


My beans are defined as follows:

   <managed-bean>
                <managed-bean-name>appManagerBean</managed-bean-name>
                
<managed-bean-class>com.ibm.ws.jsf.beans.AppManagerBean</managed-bean-class>
                <managed-bean-scope>application</managed-bean-scope>
        </managed-bean>
     
        <managed-bean>
                <managed-bean-name>emailBean</managed-bean-name>
                
<managed-bean-class>com.ibm.ws.jsf.beans.EmailBean</managed-bean-class>
                <managed-bean-scope>session</managed-bean-scope>
        </managed-bean>
    <managed-bean>
        <managed-bean-name>viewScopedBean</managed-bean-name>
        
<managed-bean-class>com.ibm.ws.jsf.beans.ViewScopedManagedBean</managed-bean-class>
        <managed-bean-scope>view</managed-bean-scope>
        
        <managed-property>
                        <property-name>emailBean</property-name>
                        <value>#{emailBean}</value>
                </managed-property>
                <managed-property>
                        <property-name>appManagerBean</property-name>
                        <value>#{appManagerBean}</value>
                </managed-property>
          
    </managed-bean>

I've provided an application that reproduces this issue.  To reproduce follow 
these steps:

1) install application 
2) drive a request into the following URL 
<host>:<port>/<context-root>/ViewScopeTest1.jsf
3) leave the email field empty
4) press the submit button.
5) you should be taken to the error page
6) the following text should appear in the textArea but it does not "Invalid 
Email: Email can Not be empty"

The second test "ViewScopeTest2.jsf" is similar it does not contain the binding 
attribute and just references a value from the ViewScoped bean and the problem 
can again be reproduced.  

It seems as though the AppManager errorMessage field is null but it has not 
been reset.  I would think that the application scoped bean would still be 
accessible even though the view scoped bean is out of scope.

If you set the SERIALIZE_STATE_IN_SESSION to false and redeploy the application 
then everything works as expected, which seems odd to me but if you un-comment 
this from the web.xml you'll see we get the text on the error page as expected.

I've been working to debug this issue and can't seem to figure out where the 
problem is in the MyFaces code.  I tested the same application on WAS and 
Tomcat to ensure that it was not something specific to a server.  It seems as 
though this is a implementation issue.

Any help that folks can provide would be greatly appreciated!!

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to