Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.8.2-EE-GA_P02
-
Fix Version/s: EE-1.8.2.GA_P03
-
Component/s: Framework
-
Labels:None
-
Environment:ICEfaces
Description
public String encodeActionURL(String url) {
return url;
}
This does not give the opportunity for Response wrappers to add functionality.
-
- FailSafeResponseFilter.java
- 4 kB
- Ted Goddard
-
- FailSafeResponseFilter.java
- 3 kB
- Ted Goddard
-
Hide
- ice-blog.zip
- 102 kB
- Judy Guglielmin
-
- ice-blog/.classpath 3 kB
- ice-blog/.DS_Store 6 kB
- __MACOSX/ice-blog/._.DS_Store 0.1 kB
- ice-blog/.idea/.name 0.0 kB
- ice-blog/.idea/ant.xml 0.4 kB
- ice-blog/.idea/compiler.xml 0.6 kB
- ice-blog/.idea/.../jguglielmin.xml 0.1 kB
- ice-blog/.idea/encodings.xml 0.2 kB
- ice-blog/.../__example_tmp_lib_dir_.xml 1 kB
- ice-blog/.idea/libraries/Unnamed.xml 6 kB
- ice-blog/.idea/misc.xml 2 kB
- ice-blog/.idea/modules.xml 0.3 kB
- ice-blog/.idea/uiDesigner.xml 9 kB
- ice-blog/.idea/vcs.xml 0.2 kB
- ice-blog/.idea/workspace.xml 37 kB
- ice-blog/.project 0.6 kB
- ice-blog/.../org.eclipse.jdt.core.prefs 0.4 kB
- ice-blog/.../org.eclipse.wst.common.project.facet.core.xml 0.1 kB
- ice-blog/.../org.jboss.ide.eclipse.as.core.prefs 0.1 kB
- ice-blog/bin/.DS_Store 6 kB
- __MACOSX/ice-blog/bin/._.DS_Store 0.1 kB
- ice-blog/build.xml 2 kB
- __MACOSX/ice-blog/._build.xml 0.2 kB
- ice-blog/Ice-blog.iml 11 kB
- ice-blog/out/.../ApplicationCounter$1.class 1 kB
- ice-blog/out/.../ApplicationCounter.class 4 kB
- ice-blog/out/.../actions/Authenticator.class 0.9 kB
- ice-blog/out/.../BlogEntryService.class 0.8 kB
- ice-blog/out/.../actions/BlogService.class 1 kB
- ice-blog/out/.../actions/EntryAction.class 1.0 kB
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Change checked in for ICE-6791 should resolve response staleness.
Stale responses are no longer present during user interaction, but are present during Ajax Push. The proposed technique to resolve will be as follows:
Create a Servlet Filter to inject a FailSafeResponseWrapper. This must be in the Filter chain prior to the Seam Filters. The FailSafeResponseWrapper will allow encode*() to proceed using the Seam wrapper on the stale HttpServletResponse.
The attached FailSafeResponseFilter wraps the Response in a version that does not throw an Exception when it has gone out of request processing scope. It must be added to the web.xml prior to the Seam Filter:
<filter>
<filter-name>FailSafe</filter-name>
<filter-class>FailSafeResponseFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>FailSafe</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Since the specific failure seen by the customer has not been reproduced in the test application, the FailSafeResponseFilter contains substantial System.out output and is implemented in the default package so that it can be compiled directly within the "classes" directory or added to an existing project at the root level.
Updated to include FailSafeRequestWrapper.
Configured via:
<filter>
<filter-name>FailSafe</filter-name>
<filter-class>com.icesoft.faces.webapp.http.servlet.FailSafeResponseFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>FailSafe</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
This could have side-effects for anything that uses action URLs, such as command
links and forms. From the documentation, of HttpServletResponse, it looks like
this code change should have no effect under most cases. However, the jsessionid
may be encoded into the URL, so that could affect applications where the
first page visited is an ICEfaces page prior to a session being established.