Author: mgrigorov
Date: Fri Jun 10 14:08:27 2011
New Revision: 1134330

URL: http://svn.apache.org/viewvc?rev=1134330&view=rev
Log:
WICKET-3764 Ajax behaviors are failing in stateless pages

Use the old getStatelessHint(Component) to decide whether to instantly create 
an index for the behavior or not.
No need of the newly introduced #isStateless(Component).


Modified:
    wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Behaviors.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/basic/SimplePageExpectedResult_13.html

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Behaviors.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Behaviors.java?rev=1134330&r1=1134329&r2=1134330&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Behaviors.java 
(original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Behaviors.java Fri 
Jun 10 14:08:27 2011
@@ -70,7 +70,7 @@ final class Behaviors implements IDetach
        private void internalAdd(final Behavior behavior)
        {
                component.data_add(behavior);
-               if (behavior.isStateless(component))
+               if (behavior.getStatelessHint(component))
                {
                        getBehaviorId(behavior);
                }

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java?rev=1134330&r1=1134329&r2=1134330&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java 
(original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java 
Fri Jun 10 14:08:27 2011
@@ -178,23 +178,6 @@ public abstract class Behavior
        }
 
        /**
-        * Returns whether or not this behavior is stateless. Most behaviors 
should either not override
-        * this method or return {@code false} because most behavior are not 
stateless.
-        * 
-        * A small subset of behaviors are made specifically to be stateless 
and as such should override
-        * this method and return {@code true}. One sideeffect of this method 
is that the behavior id
-        * will be generated eagerly when the behavior is added to the 
component instead of before
-        * render when a method to create the url is called - this allows for 
stateless callback urls.
-        * 
-        * @param component
-        * @return whether or not this behavior is stateless
-        */
-       public boolean isStateless(Component component)
-       {
-               return false;
-       }
-
-       /**
         * Checks if a listener can be invoked on this behavior
         * 
         * @param component

Modified: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java?rev=1134330&r1=1134329&r2=1134330&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java
 (original)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java
 Fri Jun 10 14:08:27 2011
@@ -64,8 +64,8 @@ public class ImmutableBehaviorIdsTest ex
                assertTrue(output.contains("autocomplete=\"off\""));
                assertTrue(output.contains("class2=\"border\""));
                assertTrue(output.contains("autocomplete2=\"off\""));
-               assertTrue(output.contains("IBehaviorListener.0"));
-               assertTrue(output.contains("IBehaviorListener.1"));
+               assertTrue(output.contains("IBehaviorListener.2"));
+               assertTrue(output.contains("IBehaviorListener.4"));
 
                // if we remove a behavior that is before the ibehaviorlistener 
its url index should not
                // change
@@ -76,8 +76,9 @@ public class ImmutableBehaviorIdsTest ex
                page.getContainer().remove(auto2);
                tester.startPage(page);
                output = tester.getLastResponseAsString();
-               assertTrue(output.contains("IBehaviorListener.0"));
-               assertTrue(output.contains("IBehaviorListener.1"));
+               System.out.println(output);
+               assertTrue(output.contains("IBehaviorListener.2"));
+               assertTrue(output.contains("IBehaviorListener.4"));
        }
 
        /**

Modified: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/basic/SimplePageExpectedResult_13.html
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/basic/SimplePageExpectedResult_13.html?rev=1134330&r1=1134329&r2=1134330&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/basic/SimplePageExpectedResult_13.html
 (original)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/basic/SimplePageExpectedResult_13.html
 Fri Jun 10 14:08:27 2011
@@ -1,7 +1,7 @@
 <? xml version= "1.0" encoding ="UTF-8" ?>
 <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
 
-<html wicket:id="html" xmlns:wicket="" xmlns="http://www.w3.org/1999/xhtml"; 
xmlns:lang="[current language]" lang="de" id="html1" onclick="var 
wcall=wicketAjaxGet(&#039;../page?0-1.IBehaviorListener.0-html&#039;,function() 
{ }.bind(this),function() { }.bind(this), function() {return 
Wicket.$(&#039;html1&#039;) != null;}.bind(this));return !wcall;">
+<html wicket:id="html" xmlns:wicket="" xmlns="http://www.w3.org/1999/xhtml"; 
xmlns:lang="[current language]" lang="de" id="html1" onclick="var 
wcall=wicketAjaxGet(&#039;../page?0-1.IBehaviorListener.1-html&#039;,function() 
{ }.bind(this),function() { }.bind(this), function() {return 
Wicket.$(&#039;html1&#039;) != null;}.bind(this));return !wcall;">
   <head><script type="text/javascript" 
src="../resource/org.apache.wicket.markup.html.WicketEventReference/wicket-event.js"></script>
 <script type="text/javascript" 
src="../resource/org.apache.wicket.ajax.WicketAjaxReference/wicket-ajax.js"></script>
 <script type="text/javascript" 
src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/wicket-ajax-debug.js"></script>


Reply via email to