Author: jcompagner
Date: Tue Oct 30 13:16:10 2007
New Revision: 590423

URL: http://svn.apache.org/viewvc?rev=590423&view=rev
Log:
extra fix for stateless urls on not stateless pages.
Now the bookmarkablelistenerinterfacerequest will try to resolve the page from 
the session before creating a new one

Modified:
    
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java
    
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java
    
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java
    
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java
    
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java
    
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.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=590423&r1=590422&r2=590423&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
 Tue Oct 30 13:16:10 2007
@@ -238,7 +238,8 @@
                                {
                                        return new 
BookmarkableListenerInterfaceRequestTarget(requestParameters
                                                        .getPageMapName(), 
pageClass, params, requestParameters
-                                                       .getComponentPath(), 
requestParameters.getInterfaceName());
+                                                       .getComponentPath(), 
requestParameters.getInterfaceName(),
+                                                       
requestParameters.getVersionNumber());
                                }
                        }
                        else

Modified: 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java?rev=590423&r1=590422&r2=590423&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java
 Tue Oct 30 13:16:10 2007
@@ -62,7 +62,7 @@
                        throw new IllegalArgumentException("Argument 
bookmarkablePageClass must be not null");
                }
 
-               this.bookmarkablePageClassRef = new 
WeakReference(bookmarkablePageClass);
+               bookmarkablePageClassRef = new 
WeakReference(bookmarkablePageClass);
                this.pageMapName = pageMapName;
        }
 
@@ -97,7 +97,8 @@
                        
WebRequestCodingStrategy.addInterfaceParameters(interfaceParameter, 
requestParameters);
                        return new 
BookmarkableListenerInterfaceRequestTarget(pageMapName,
                                        (Class)bookmarkablePageClassRef.get(), 
parameters, requestParameters
-                                                       .getComponentPath(), 
requestParameters.getInterfaceName());
+                                                       .getComponentPath(), 
requestParameters.getInterfaceName(),
+                                       requestParameters.getVersionNumber());
                }
                else
                {
@@ -145,13 +146,13 @@
                        IBookmarkablePageRequestTarget target = 
(IBookmarkablePageRequestTarget)requestTarget;
                        if 
(((Class)bookmarkablePageClassRef.get()).equals(target.getPageClass()))
                        {
-                               if (this.pageMapName == null)
+                               if (pageMapName == null)
                                {
                                        return true;
                                }
                                else
                                {
-                                       return 
this.pageMapName.equals(target.getPageMapName());
+                                       return 
pageMapName.equals(target.getPageMapName());
                                }
                        }
                }

Modified: 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java?rev=590423&r1=590422&r2=590423&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java
 Tue Oct 30 13:16:10 2007
@@ -186,7 +186,7 @@
                        
WebRequestCodingStrategy.addInterfaceParameters(interfaceParameter, 
requestParameters);
                        return new 
BookmarkableListenerInterfaceRequestTarget(pageMapName, (Class)pageClassRef
                                        .get(), parameters, 
requestParameters.getComponentPath(), requestParameters
-                                       .getInterfaceName());
+                                       .getInterfaceName(), 
requestParameters.getVersionNumber());
                }
                else if (pageId == null)
                {

Modified: 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java?rev=590423&r1=590422&r2=590423&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java
 Tue Oct 30 13:16:10 2007
@@ -118,7 +118,7 @@
                        
WebRequestCodingStrategy.addInterfaceParameters(interfaceParameter, 
requestParameters);
                        return new 
BookmarkableListenerInterfaceRequestTarget(pageMapName,
                                        bookmarkablePageClass, parameters, 
requestParameters.getComponentPath(),
-                                       requestParameters.getInterfaceName());
+                                       requestParameters.getInterfaceName(), 
requestParameters.getVersionNumber());
                }
                else
                {

Modified: 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java?rev=590423&r1=590422&r2=590423&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java
 Tue Oct 30 13:16:10 2007
@@ -153,7 +153,8 @@
                {
                        return new 
BookmarkableListenerInterfaceRequestTarget(pageMapName,
                                        (Class)bookmarkablePageClassRef.get(), 
parameters, requestParameters
-                                                       .getComponentPath(), 
requestParameters.getInterfaceName());
+                                                       .getComponentPath(), 
requestParameters.getInterfaceName(),
+                                       requestParameters.getVersionNumber());
                }
                else
                {

Modified: 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java?rev=590423&r1=590422&r2=590423&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java
 Tue Oct 30 13:16:10 2007
@@ -21,6 +21,7 @@
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.RequestCycle;
 import org.apache.wicket.RequestListenerInterface;
+import org.apache.wicket.Session;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy;
 import org.apache.wicket.util.string.AppendingStringBuffer;
@@ -36,6 +37,7 @@
 {
        private final String componentPath;
        private final String interfaceName;
+       private final int versionNumber;
 
        /**
         * This constructor is called when a stateless link is clicked on but 
the page wasn't found in
@@ -47,13 +49,16 @@
         * @param pageParameters
         * @param componentPath
         * @param interfaceName
+        * @param versionNumber
         */
        public BookmarkableListenerInterfaceRequestTarget(String pageMapName, 
Class pageClass,
-                       PageParameters pageParameters, String componentPath, 
String interfaceName)
+                       PageParameters pageParameters, String componentPath, 
String interfaceName,
+                       int versionNumber)
        {
                super(pageMapName, pageClass, pageParameters);
                this.componentPath = componentPath;
                this.interfaceName = interfaceName;
+               this.versionNumber = versionNumber;
        }
 
        /**
@@ -73,7 +78,7 @@
                        RequestListenerInterface listenerInterface)
        {
                this(pageMapName, pageClass, pageParameters, 
component.getPath(), listenerInterface
-                               .getName());
+                               .getName(), 
component.getPage().getCurrentVersionNumber());
 
                int version = component.getPage().getCurrentVersionNumber();
 
@@ -107,7 +112,15 @@
 
        public void processEvents(RequestCycle requestCycle)
        {
-               Page page = getPage(requestCycle);
+               Page page = getPage();
+               if (page == null)
+               {
+                       page = Session.get().getPage(getPageMapName(), 
componentPath, -1);
+                       if (page == null)
+                       {
+                               page = getPage(requestCycle);
+                       }
+               }
                final String pageRelativeComponentPath = 
Strings.afterFirstPathComponent(componentPath,
                                Component.PATH_SEPARATOR);
                Component component = page.get(pageRelativeComponentPath);


Reply via email to