WICKET-831 Return response status 404 when a mapper cannot decode a request url


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

Branch: refs/heads/sandbox/component-queueing-2
Commit: e3328f1410d251e55e7a7a81dc181923a3a3a739
Parents: 3d26145
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Thu Feb 20 17:46:31 2014 +0200
Committer: Igor Vaynberg <[email protected]>
Committed: Thu Feb 20 23:24:05 2014 -0800

----------------------------------------------------------------------
 .../wicket/core/request/mapper/ResourceMapper.java   | 15 +++++++++++++--
 .../apache/wicket/request/mapper/AbstractMapper.java |  2 +-
 2 files changed, 14 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/e3328f14/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/ResourceMapper.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/ResourceMapper.java
 
b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/ResourceMapper.java
index 3455ec5..718ede2 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/ResourceMapper.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/ResourceMapper.java
@@ -18,12 +18,15 @@ package org.apache.wicket.core.request.mapper;
 
 import java.util.List;
 
+import javax.servlet.http.HttpServletResponse;
+
 import org.apache.wicket.Application;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.IRequestMapper;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
 import 
org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
+import org.apache.wicket.request.http.flow.AbortWithHttpErrorCodeException;
 import org.apache.wicket.request.mapper.AbstractMapper;
 import org.apache.wicket.request.mapper.parameter.IPageParametersEncoder;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
@@ -229,8 +232,16 @@ public class ResourceMapper extends AbstractMapper 
implements IRequestMapper
        
                                        if 
(Strings.isEmpty(cacheUrl.getFileName()))
                                        {
-                                               throw new 
IllegalStateException("caching strategy returned empty name for " +
-                                                       resource);
+                                               if (Application.exists() && 
Application.get().usesDeploymentConfig())
+                                               {
+                                                       throw new 
AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND,
+                                                               "caching 
strategy returned empty name for " + resource);
+                                               }
+                                               else
+                                               {
+                                                       throw new 
IllegalStateException(
+                                                                       
"caching strategy returned empty name for " + resource);
+                                               }
                                        }
                                        segments.set(lastSegmentAt, 
cacheUrl.getFileName());
                                }

http://git-wip-us.apache.org/repos/asf/wicket/blob/e3328f14/wicket-request/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java
----------------------------------------------------------------------
diff --git 
a/wicket-request/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java
 
b/wicket-request/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java
index 5af0fb0..1857818 100644
--- 
a/wicket-request/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java
+++ 
b/wicket-request/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java
@@ -227,4 +227,4 @@ public abstract class AbstractMapper implements 
IRequestMapper
                return res;
        }
 
-}
\ No newline at end of file
+}

Reply via email to