TAP-2388: Reset state to allow an Error404 to display after an unknown 
component id in a component event request


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/a43e17ff
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/a43e17ff
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/a43e17ff

Branch: refs/heads/beanmodel-split
Commit: a43e17ff940e411e20c4ba7b39cd98f36a3f2f01
Parents: 3257161
Author: Howard M. Lewis Ship <hls...@apache.org>
Authored: Fri Oct 24 14:27:27 2014 -0700
Committer: Howard M. Lewis Ship <hls...@apache.org>
Committed: Fri Oct 24 14:27:27 2014 -0700

----------------------------------------------------------------------
 .../tapestry5/internal/services/ComponentEventDispatcher.java     | 3 +++
 .../apache/tapestry5/internal/services/PageRenderDispatcher.java  | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/a43e17ff/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentEventDispatcher.java
----------------------------------------------------------------------
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentEventDispatcher.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentEventDispatcher.java
index 1d0bd5d..555ff39 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentEventDispatcher.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentEventDispatcher.java
@@ -49,6 +49,9 @@ public class ComponentEventDispatcher implements Dispatcher
 
         // ... in which case, this attribute is set.
         if 
(request.getAttribute(InternalConstants.REFERENCED_COMPONENT_NOT_FOUND) != 
null) {
+            // This needs to be cleared out because the container may submit a 
request back into the filter
+            // for the 404 page and some containers reuse the existing 
HttpServletRequest. See TAP5-2388.
+            
request.setAttribute(InternalConstants.REFERENCED_COMPONENT_NOT_FOUND, null);
             return false;
         }
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/a43e17ff/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageRenderDispatcher.java
----------------------------------------------------------------------
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageRenderDispatcher.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageRenderDispatcher.java
index 1fb7b3e..2e9e255 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageRenderDispatcher.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageRenderDispatcher.java
@@ -38,7 +38,7 @@ public class PageRenderDispatcher implements Dispatcher
     {
         // If a component event request arrives (in production)
         // with an invalid component id, then we want it to be a 404
-        // See TAP5-1481
+        // See TAP5-1481 and TAP5-2388
 
         if 
(request.getAttribute(InternalConstants.REFERENCED_COMPONENT_NOT_FOUND) != null)
         {

Reply via email to