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


Reply via email to