[richfaces-issues] [JBoss JIRA] (RF-12352) rich:fileUpload does not work properly with Mojarra 2.1.7 when FacesContext.isPostback() is executed before FacesContext.getPartialViewContext()

Tomasz Kurpios (JIRA) jira-events at lists.jboss.org
Wed Jul 4 04:18:12 EDT 2012


Tomasz Kurpios created RF-12352:
-----------------------------------

             Summary: rich:fileUpload does not work properly with Mojarra 2.1.7 when FacesContext.isPostback() is executed before FacesContext.getPartialViewContext()
                 Key: RF-12352
                 URL: https://issues.jboss.org/browse/RF-12352
             Project: RichFaces
          Issue Type: Bug
      Security Level: Public (Everyone can see)
          Components: component-input
    Affects Versions: 4.0.0.Final
         Environment: Mojarra 2.1.7, Jetty or JBoss 5.1
            Reporter: Tomasz Kurpios


In Mojarra 2.1.7 the value of first invocation of FacesContextImpl.isPostback() is cached as a request attribute. It checks for the existence of javax.faces.ViewState parameter. If we are processing MultipartRequest and FacesContextImpl.isPostback() is executed before FacesContextImpl.getPartialViewContext(), FileUploadPartialViewContextFactory hasn't had yet chance to parse this MultipartRequest's parameters, so FacesContextImpl.isPostback() returns (and caches) false. Therefore no processing (decodes, validations, updates) happens and as a consequence properly registered FileUploadListener is not executed.

The only reason why it normally works is because completely unrelated method, com.sun.faces.context.ExceptionHandlerFactoryImpl.getExceptionHandler(), *happens to* call FacesContext.getPartialViewContext() and this happens during creation of FacesContext instance.

In my environment, I used my custom ExceptionHandlerFactory (registered in faces-config.xml) which did not call FacesContext.getPartialViewContext() and the problem appeared, because FacesContext.isPostback() was called first.

This means that currently FileUploadPartialViewContextFactory is very tightly coupled to FacesContextImpl, which in my opinion should be fixed.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the richfaces-issues mailing list