You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wicket.apache.org by Jean-Baptiste Quenot <jb...@apache.org> on 2007/05/13 22:24:26 UTC

WICKET-293: sending a 404 (Was: svn commit: r537428 - in /incubator/wicket/trunk/jdk-1.4/wicket/src: main/java/org/apache/wicket/protocol/http/request/ main/java/org/apache/wicket/request/target/coding/ test/java/org/apache/wicket/request/target/coding/)

* jdonnerstag@apache.org:
> Author: jdonnerstag
> Date: Sat May 12 07:10:17 2007
> New Revision: 537428
> 
> URL: http://svn.apache.org/viewvc?view=rev&rev=537428
> Log:
> wicket-293: PackageRequestTargetUrlCodingStrategy should sends a 404 when a page/class cannot be found.
> 
> fixed
> 
> Modified:
>     incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java
>     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/test/java/org/apache/wicket/request/target/coding/UrlMountingTest.java
> 
> Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java
> URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java?view=diff&rev=537428&r1=537427&r2=537428
> ==============================================================================
> --- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java (original)
> +++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java Sat May 12 07:10:17 2007
> @@ -24,6 +24,8 @@
>  import java.util.TreeSet;
>  import java.util.Map.Entry;
>  
> +import javax.servlet.http.HttpServletResponse;
> +
>  import org.apache.wicket.Application;
>  import org.apache.wicket.Component;
>  import org.apache.wicket.IPageMap;
> @@ -361,7 +363,27 @@
>  	{
>  		IRequestTargetUrlCodingStrategy encoder = urlCodingStrategyForPath(requestParameters
>  				.getPath());
> -		return (encoder != null) ? encoder.decode(requestParameters) : null;
> +		if (encoder == null)
> +		{
> +			return null;
> +		}
> +		try
> +		{
> +			return encoder.decode(requestParameters);
> +		}
> +		catch (WicketRuntimeException ex)
> +		{
> +			if (log.isDebugEnabled())
> +			{
> +				log.debug(ex.toString());
> +				
> +				return new WebErrorCodeResponseTarget(HttpServletResponse.SC_NOT_FOUND,
> +				"Unable to load Page: " + ex.toString());
> +			}
> +			
> +			return new WebErrorCodeResponseTarget(HttpServletResponse.SC_NOT_FOUND,
> +				"Unable to load Page");
> +		}

Hello Juergen,

Thanks for taking care of this.  However don't you think that we
could create a custom Exception like PageNotFoundException to
avoid catching any exception?  Otherwise some legitimate
exceptions might be swallowed.

Cheers,
-- 
     Jean-Baptiste Quenot
aka  John Banana   Qwerty
http://caraldi.com/jbq/