Author: ivaynberg
Date: Tue Jan 19 00:26:09 2010
New Revision: 900619

URL: http://svn.apache.org/viewvc?rev=900619&view=rev
Log:
WICKET-2312
Issue: WICKET-2312

Modified:
    
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java?rev=900619&r1=900618&r2=900619&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java
 Tue Jan 19 00:26:09 2010
@@ -253,9 +253,16 @@
                boolean portletRequest = requestContext.isPortletRequest();
                boolean sharedResourceURL = false;
 
+               boolean isAjax = 
((WebRequestCycle)requestCycle).getWebRequest().isAjax();
+               boolean skipRelativePathPrefix = false;
+
                if (url != null && !portletRequest)
                {
-                       // Do nothing - we've found the URL and it's mounted.
+                       // We've found the URL and it's mounted.
+
+                       // In the case of Ajax, we don't want to prepend a 
relative path
+                       // to the mounted URL. See WICKET-2312.
+                       skipRelativePathPrefix = isAjax;
                }
                else if (requestTarget instanceof 
IBookmarkablePageRequestTarget)
                {
@@ -299,7 +306,7 @@
                                else if 
(IRedirectListener.class.isAssignableFrom(rli.getMethod()
                                        .getDeclaringClass()))
                                {
-                                       if 
(((WebRequestCycle)requestCycle).getWebRequest().isAjax())
+                                       if (isAjax)
                                        {
                                                // TODO: Probably not all Ajax 
based redirects need to break out of
                                                // ResourceURL encoding
@@ -353,7 +360,8 @@
                if (url != null)
                {
                        String result = null;
-                       if (!UrlUtils.isRelative(url.toString()) || 
(!sharedResourceURL && portletRequest))
+                       if (!UrlUtils.isRelative(url.toString()) || 
(!sharedResourceURL && portletRequest) ||
+                               skipRelativePathPrefix)
                        {
                                result = url.toString();
                        }


Reply via email to