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; + } } /**