You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jc...@apache.org on 2008/10/04 23:44:29 UTC

svn commit: r701717 - /wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycleProcessor.java

Author: jcompagner
Date: Sat Oct  4 14:44:29 2008
New Revision: 701717

URL: http://svn.apache.org/viewvc?rev=701717&view=rev
Log:
from 1.3: when the request is an ajax request and the processRequest == false (onlyActivePage should be processed) then a page expired shouldnt be thrown, just a empty ajax request target should be set

Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycleProcessor.java

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycleProcessor.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycleProcessor.java?rev=701717&r1=701716&r2=701717&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycleProcessor.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycleProcessor.java Sat Oct  4 14:44:29 2008
@@ -24,6 +24,7 @@
 import org.apache.wicket.IPageMap;
 import org.apache.wicket.IRequestTarget;
 import org.apache.wicket.Page;
+import org.apache.wicket.Request;
 import org.apache.wicket.RequestCycle;
 import org.apache.wicket.Session;
 import org.apache.wicket.AccessStackPageMap.Access;
@@ -58,10 +59,10 @@
 	 *      org.apache.wicket.request.RequestParameters)
 	 */
 	public IRequestTarget resolve(final RequestCycle requestCycle,
-			final RequestParameters requestParameters)
+		final RequestParameters requestParameters)
 	{
 		IRequestCodingStrategy requestCodingStrategy = requestCycle.getProcessor()
-				.getRequestCodingStrategy();
+			.getRequestCodingStrategy();
 
 		final String path = requestParameters.getPath();
 		IRequestTarget target = null;
@@ -88,7 +89,7 @@
 
 					Session session = Session.get();
 					IPageMap pageMap = session.pageMapForName(requestParameters.getPageMapName(),
-							false);
+						false);
 					if (pageMap == null)
 					{
 						// requested pagemap no longer exists - ignore this
@@ -101,11 +102,10 @@
 						if (accessStackPageMap.getAccessStack().size() > 0)
 						{
 							final Access access = (Access)accessStackPageMap.getAccessStack()
-									.peek();
+								.peek();
 
-							final int pageId = Integer
-									.parseInt(Strings.firstPathComponent(requestParameters
-											.getComponentPath(), Component.PATH_SEPARATOR));
+							final int pageId = Integer.parseInt(Strings.firstPathComponent(
+								requestParameters.getComponentPath(), Component.PATH_SEPARATOR));
 
 							if (pageId != access.getId())
 							{
@@ -117,7 +117,7 @@
 							{
 								final int version = requestParameters.getVersionNumber();
 								if (version != Page.LATEST_VERSION &&
-										version != access.getVersion())
+									version != access.getVersion())
 								{
 									// version is no longer the active version -
 									// ignore this request
@@ -145,7 +145,16 @@
 			}
 			else
 			{
-				throw new PageExpiredException("Request cannot be processed");
+				Request request = requestCycle.getRequest();
+				if (request instanceof WebRequest && ((WebRequest)request).isAjax())
+				{
+					// if processRequest is false in an ajax request just have an empty ajax target
+					target = EmptyAjaxRequestTarget.getInstance();
+				}
+				else
+				{
+					throw new PageExpiredException("Request cannot be processed");
+				}
 			}
 		}
 		// See whether this request points to a shared resource
@@ -179,10 +188,10 @@
 				// If the target is still null and there was a component path
 				// then the Page could not be located in the session
 				throw new PageExpiredException(
-						"Cannot find the rendered page in session [pagemap=" +
-								requestParameters.getPageMapName() + ",componentPath=" +
-								requestParameters.getComponentPath() + ",versionNumber=" +
-								requestParameters.getVersionNumber() + "]");
+					"Cannot find the rendered page in session [pagemap=" +
+						requestParameters.getPageMapName() + ",componentPath=" +
+						requestParameters.getComponentPath() + ",versionNumber=" +
+						requestParameters.getVersionNumber() + "]");
 			}
 		}
 		else
@@ -190,28 +199,25 @@
 			// a target was found, but not by looking up a mount. check whether
 			// this is allowed
 			if (Application.get().getSecuritySettings().getEnforceMounts() &&
-					requestCodingStrategy.pathForTarget(target) != null)
+				requestCodingStrategy.pathForTarget(target) != null)
 			{
 				String msg = "Direct access not allowed for mounted targets";
 				// the target was mounted, but we got here via another path
 				// : deny the request
 				log.error(msg + " [request=" + requestCycle.getRequest() + ",target=" + target +
-						",session=" + Session.get() + "]");
+					",session=" + Session.get() + "]");
 				throw new AbortWithWebErrorCodeException(HttpServletResponse.SC_FORBIDDEN, msg);
 			}
 		}
 
-		// (WICKET-1356) in case no target was found, return null here. RequestCycle will deal with it
-		// possible letting wicket filter to pass the request down the filter chain		
+		// (WICKET-1356) in case no target was found, return null here. RequestCycle will deal with
+		// it
+		// possible letting wicket filter to pass the request down the filter chain
 		/*
-		if (target == null)
-		{
-			// if we get here, we have no recognized Wicket target, and thus
-			// regard this as a external (non-wicket) resource request on
-			// this server
-			return resolveExternalResource(requestCycle);
-		}
-		*/
+		 * if (target == null) { // if we get here, we have no recognized Wicket target, and thus //
+		 * regard this as a external (non-wicket) resource request on // this server return
+		 * resolveExternalResource(requestCycle); }
+		 */
 
 		return target;
 	}