Author: almaw
Date: Tue May 22 07:08:10 2007
New Revision: 540591

URL: http://svn.apache.org/viewvc?view=rev&rev=540591
Log:
WICKET-554

Modified:
    
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/application/DefaultClassResolver.java
    
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java

Modified: 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/application/DefaultClassResolver.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/application/DefaultClassResolver.java?view=diff&rev=540591&r1=540590&r2=540591
==============================================================================
--- 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/application/DefaultClassResolver.java
 (original)
+++ 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/application/DefaultClassResolver.java
 Tue May 22 07:08:10 2007
@@ -67,7 +67,7 @@
                }
                catch (ClassNotFoundException ex)
                {
-                       throw new WicketRuntimeException("Unable to load class 
with name: " + classname);
+                       throw new WicketRuntimeException("Unable to load class 
with name: " + classname, ex);
                }
        }
 }

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=540591&r1=540590&r2=540591
==============================================================================
--- 
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
 Tue May 22 07:08:10 2007
@@ -92,17 +92,31 @@
                log.debug("remainder=" + remainder);
                log.debug("parametersFragment=" + parametersFragment);
                final String bookmarkablePageClassName = packageName + "." + 
remainder.substring(0, ix);
-               Class bookmarkablePageClass = 
Session.get().getClassResolver().resolveClass(
-                               bookmarkablePageClassName);
-               PageParameters parameters = new 
PageParameters(decodeParameters(parametersFragment,
-                               requestParameters.getParameters()));
-
-               final String pageMapName = 
(String)parameters.remove(WebRequestCodingStrategy.PAGEMAP);
-               requestParameters.setPageMapName(pageMapName);
-
-               BookmarkablePageRequestTarget target = new 
BookmarkablePageRequestTarget(pageMapName,
-                               bookmarkablePageClass, parameters);
-               return target;
+               try
+               {
+                       Class bookmarkablePageClass = 
Session.get().getClassResolver().resolveClass(
+                                       bookmarkablePageClassName);
+                       PageParameters parameters = new 
PageParameters(decodeParameters(parametersFragment,
+                                       requestParameters.getParameters()));
+       
+                       final String pageMapName = 
(String)parameters.remove(WebRequestCodingStrategy.PAGEMAP);
+                       requestParameters.setPageMapName(pageMapName);
+       
+                       BookmarkablePageRequestTarget target = new 
BookmarkablePageRequestTarget(pageMapName,
+                                       bookmarkablePageClass, parameters);
+                       return target;
+               }
+               catch (RuntimeException ex)
+               {
+                       // If the class resolver wraps a ClassNotFoundException 
with a
+                       // RuntimeException, just return null here, which will 
cause a 404
+                       // or similar.
+                       if (ex.getCause() instanceof ClassNotFoundException)
+                       {
+                               return null;
+                       }
+                       throw ex;
+               }
        }
 
        /**


Reply via email to