I've developed a patch witch should be applied to com.icesoft.faces.webapp.http.servlet.ServletExternalContext.
Ive used 1.6.1 source code.
Here is a patch:
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<? extends HttpServletRequest> 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;
}
This bug also make application unable to call secured EJB methods.