You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by gs...@apache.org on 2007/11/03 19:30:14 UTC

svn commit: r591659 - /wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java

Author: gseitz
Date: Sat Nov  3 11:30:13 2007
New Revision: 591659

URL: http://svn.apache.org/viewvc?rev=591659&view=rev
Log:
WICKET-958: redirect if pageExpiredErrorPage is mounted

Modified:
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java?rev=591659&r1=591658&r2=591659&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java Sat Nov  3 11:30:13 2007
@@ -135,6 +135,8 @@
 		{
 			Class pageExpiredErrorPageClass = application.getApplicationSettings()
 					.getPageExpiredErrorPage();
+			boolean mounted = isPageMounted(pageExpiredErrorPageClass);
+			RequestCycle.get().setRedirect(mounted);
 			throw new RestartResponseException(pageExpiredErrorPageClass);
 		}
 		else if (settings.getUnexpectedExceptionDisplay() != IExceptionSettings.SHOW_NO_EXCEPTION_PAGE)
@@ -166,6 +168,21 @@
 						internalErrorPageClass, e);
 			}
 		}
+	}
+
+	/**
+	 * Checks whether the given <code>pageClass</code> is mounted.
+	 * 
+	 * @param pageClass
+	 *            the <code>Class</code> of the <code>Page</code> to be checked
+	 * @return true if the given <code>pageClass</code> is mounted, false otherwise
+	 */
+	private boolean isPageMounted(Class /* <? extends Page> */pageClass)
+	{
+		RequestCycle cycle = RequestCycle.get();
+		CharSequence path = getRequestCodingStrategy().pathForTarget(
+				new BookmarkablePageRequestTarget(pageClass));
+		return path != null;
 	}
 
 	/**