Details
- 
        Type: Bug Bug
- 
        Status: Closed
- 
            Priority: Major Major
- 
            Resolution: Fixed
- 
            Affects Version/s: 3.0
- 
            Fix Version/s: EE-3.0.0.GA
- 
            Component/s: Framework
- 
            Labels:None
- 
            Environment:ICEFaces 3.0 + Myfaces 2.1.6 + WebSphere 7 + Portal 2
Description
                    During processing of a push request, the ICEfaces CharacterEncodingHandler class tries to change the characterEncoding. In a WebSphere environment, this call throws an IllegalStateException 
Caused by: java.lang.IllegalStateException: This method must not be called after the HTTP-Body was accessed !
at com.ibm.ws.portletcontainer.core.impl.PortletRequestImpl.setCharacterEncoding(PortletRequestImpl.java:1103)
at org.portletfaces.bridge.context.ExternalContextImpl.setRequestCharacterEncoding(ExternalContextImpl.java:791)
at org.icefaces.impl.util.CharacterEncodingHandler.setCharacterEncoding(CharacterEncodingHandler.java:76)
at org.icefaces.impl.util.CharacterEncodingHandler.isResourceRequest(CharacterEncodingHandler.java:65)
at javax.faces.application.ResourceHandlerWrapper.isResourceRequest(ResourceHandlerWrapper.java:68)
at javax.faces.application.ResourceHandlerWrapper.isResourceRequest(ResourceHandlerWrapper.java:68)
at javax.faces.application.ResourceHandlerWrapper.isResourceRequest(ResourceHandlerWrapper.java:68)
at org.portletfaces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:506)
There are some additional comments here:
https://issues.apache.org/jira/browse/PORTLETBRIDGE-48
            
Caused by: java.lang.IllegalStateException: This method must not be called after the HTTP-Body was accessed !
at com.ibm.ws.portletcontainer.core.impl.PortletRequestImpl.setCharacterEncoding(PortletRequestImpl.java:1103)
at org.portletfaces.bridge.context.ExternalContextImpl.setRequestCharacterEncoding(ExternalContextImpl.java:791)
at org.icefaces.impl.util.CharacterEncodingHandler.setCharacterEncoding(CharacterEncodingHandler.java:76)
at org.icefaces.impl.util.CharacterEncodingHandler.isResourceRequest(CharacterEncodingHandler.java:65)
at javax.faces.application.ResourceHandlerWrapper.isResourceRequest(ResourceHandlerWrapper.java:68)
at javax.faces.application.ResourceHandlerWrapper.isResourceRequest(ResourceHandlerWrapper.java:68)
at javax.faces.application.ResourceHandlerWrapper.isResourceRequest(ResourceHandlerWrapper.java:68)
at org.portletfaces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:506)
There are some additional comments here:
https://issues.apache.org/jira/browse/PORTLETBRIDGE-48
Issue Links
- blocks
- 
             IPCK-259
        Add ICEfaces EE Support for WebSphere Portal 7 IPCK-259
        Add ICEfaces EE Support for WebSphere Portal 7-           
- Closed
 
-         
A workaround in the code exists by quietly catching the IllegalStateException in our class and carrying on. The code, for the purposes of testing in WebSphere can ignore this attempt. Deryk thought this behaviour should be farmed out to a WebSphere specific class in the EE delivery. How that might be and how it would be loaded first in the resourceHandler chain was open to debate.