Index: ServletExternalContext.java =================================================================== --- ServletExternalContext.java (revision 14843) +++ ServletExternalContext.java (working copy) @@ -18,6 +18,7 @@ import java.io.InputStream; import java.io.OutputStreamWriter; import java.io.Writer; +import java.lang.reflect.Constructor; import java.net.MalformedURLException; import java.net.URL; import java.security.Principal; @@ -144,6 +145,22 @@ } responseCookieMap = Collections.synchronizedMap(new HashMap()); + // we need to keep request updated. + String requestClassName = this.request.getClass().getName(); + if (requestClassName.equals("com.icesoft.faces.env.ServletEnvironmentRequest") + || requestClassName.equals("com.icesoft.faces.env.PortletEnvironmentRenderRequest")) { + try { + Constructor construcotr = this.request + .getClass().getConstructor(Object.class); + this.request = construcotr.newInstance(request); + } catch (Exception e) { + // this situation should never happened + this.request = request; + } + } else { + this.request = request; + } + this.response = response; }