Author: jbq
Date: Sun Jun 10 15:24:03 2007
New Revision: 545955

URL: http://svn.apache.org/viewvc?view=rev&rev=545955
Log:
WICKET-293 PackageRequestTargetUrlCodingStrategy should interrupts the cycle 
and sends a 404 when a page/class cannot be found

Modified:
    
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java
    
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestTarget.java
    
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/resource/WebExternalResourceStream.java

Modified: 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java?view=diff&rev=545955&r1=545954&r2=545955
==============================================================================
--- 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java
 (original)
+++ 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java
 Sun Jun 10 15:24:03 2007
@@ -89,8 +89,17 @@
                }
 
                final String bookmarkablePageClassName = packageName + "." + 
remainder.substring(0, ix);
-               Class bookmarkablePageClass = 
Session.get().getClassResolver().resolveClass(
-                               bookmarkablePageClassName);
+               Class bookmarkablePageClass;
+               try
+               {
+                       bookmarkablePageClass = 
Session.get().getClassResolver().resolveClass(
+                                       bookmarkablePageClassName);
+               }
+               catch (Exception e)
+               {
+                       log.debug(e.getMessage());
+                       return null;
+               }               
                PageParameters parameters = new 
PageParameters(decodeParameters(parametersFragment,
                                requestParameters.getParameters()));
 

Modified: 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestTarget.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestTarget.java?view=diff&rev=545955&r1=545954&r2=545955
==============================================================================
--- 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestTarget.java
 (original)
+++ 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestTarget.java
 Sun Jun 10 15:24:03 2007
@@ -16,11 +16,13 @@
  */
 package org.apache.wicket.request.target.resource;
 
+import javax.servlet.http.HttpServletResponse;
+
 import org.apache.wicket.IRequestTarget;
 import org.apache.wicket.RequestCycle;
 import org.apache.wicket.Response;
-import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.protocol.http.WebResponse;
+import org.apache.wicket.protocol.http.request.WebErrorCodeResponseTarget;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
 import org.slf4j.Logger;
@@ -126,7 +128,7 @@
                }
                catch (ResourceStreamNotFoundException e)
                {
-                       throw new WicketRuntimeException(e);
+                       requestCycle.setRequestTarget(new 
WebErrorCodeResponseTarget(HttpServletResponse.SC_NOT_FOUND));
                }
        }
 

Modified: 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/resource/WebExternalResourceStream.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/resource/WebExternalResourceStream.java?view=diff&rev=545955&r1=545954&r2=545955
==============================================================================
--- 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/resource/WebExternalResourceStream.java
 (original)
+++ 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/resource/WebExternalResourceStream.java
 Sun Jun 10 15:24:03 2007
@@ -96,7 +96,7 @@
                in = context.getResourceAsStream(url);
                if (in == null)
                {
-                       throw new WicketRuntimeException("The requested 
resource was not found: " + url);
+                       throw new ResourceStreamNotFoundException("The 
requested resource was not found: " + url);
                }
                return in;
        }


Reply via email to