You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Nick Belaevski (JIRA)" <de...@myfaces.apache.org> on 2011/01/11 15:34:46 UTC

[jira] Created: (MYFACES-3013) ExternalContext: setRequest(...) method does not reset cached request maps

ExternalContext: setRequest(...) method does not reset cached request maps 
---------------------------------------------------------------------------

                 Key: MYFACES-3013
                 URL: https://issues.apache.org/jira/browse/MYFACES-3013
             Project: MyFaces Core
          Issue Type: Bug
          Components: General
    Affects Versions: 2.0.3
            Reporter: Nick Belaevski


When org.apache.myfaces.context.servlet.ServletExternalContextImpl.setRequest(Object) is called, cached request maps (e.g. _requestHeaderMap) are not reset, so data from new request is not used.

Here is what Mojarra does: 


    public void setRequest(Object request) {
        if (request instanceof ServletRequest) {
            this.request = (ServletRequest) request;
            requestHeaderMap = null;
            requestHeaderValuesMap = null;
            requestHeaderValuesMap = null;
            requestMap = null;
            requestParameterMap = null;
            requestParameterValuesMap = null;
        }
    }


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (MYFACES-3013) ExternalContext: setRequest(...) method does not reset cached request maps

Posted by "Leonardo Uribe (JIRA)" <de...@myfaces.apache.org>.
     [ https://issues.apache.org/jira/browse/MYFACES-3013?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Leonardo Uribe resolved MYFACES-3013.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 2.0.4-SNAPSHOT
         Assignee: Leonardo Uribe

Yes, if someone call setRequest, the new object should be used and all wrappers should be recreated (coincidentially assign null will do the trick). Thanks to Nick Belaevski for note this issue.

> ExternalContext: setRequest(...) method does not reset cached request maps 
> ---------------------------------------------------------------------------
>
>                 Key: MYFACES-3013
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3013
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: General
>    Affects Versions: 2.0.3
>            Reporter: Nick Belaevski
>            Assignee: Leonardo Uribe
>             Fix For: 2.0.4-SNAPSHOT
>
>
> When org.apache.myfaces.context.servlet.ServletExternalContextImpl.setRequest(Object) is called, cached request maps (e.g. _requestHeaderMap) are not reset, so data from new request is not used.
> Here is what Mojarra does: 
>     public void setRequest(Object request) {
>         if (request instanceof ServletRequest) {
>             this.request = (ServletRequest) request;
>             requestHeaderMap = null;
>             requestHeaderValuesMap = null;
>             requestHeaderValuesMap = null;
>             requestMap = null;
>             requestParameterMap = null;
>             requestParameterValuesMap = null;
>         }
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.