Author: pmouawad
Date: Sat Feb 27 12:53:18 2016
New Revision: 1732634

URL: http://svn.apache.org/viewvc?rev=1732634&view=rev
Log:
Bug 58756 - CookieManager : Cookie Policy select box content must depend on 
Cookie implementation
A) Fix bug introduced by commit r1732632:
1/ Save with 2.13 a Plan containing CookieManager that uses defaults
2/ Open it with trunk
3/ It is ok
4/ Close it
5/ Add a new CookieManager => KO the policy is default instead of standard


B) Also made constants explicit and removed dependency on deprecated class.

C) Forced the save of policy and implementation even if there values are set at 
defaults to avoid this headache again


Bugzilla Id: 58756

Modified:
    
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieManager.java
    
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java

Modified: 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieManager.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieManager.java?rev=1732634&r1=1732633&r2=1732634&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieManager.java
 (original)
+++ 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieManager.java
 Sat Feb 27 12:53:18 2016
@@ -30,7 +30,6 @@ import java.io.Serializable;
 import java.net.URL;
 import java.util.ArrayList;
 
-import org.apache.http.client.config.CookieSpecs;
 import org.apache.jmeter.config.ConfigTestElement;
 import org.apache.jmeter.engine.event.LoopIterationEvent;
 import org.apache.jmeter.testelement.TestIterationListener;
@@ -102,12 +101,19 @@ public class CookieManager extends Confi
 
     private transient CollectionProperty initialCookies;
 
-    // MUST NOT BE CHANGED
-    @SuppressWarnings("deprecation") // cannot be changed
-    public static final String DEFAULT_POLICY = 
CookieSpecs.BROWSER_COMPATIBILITY;
+    // MUST NOT BE CHANGED because as defaults are not saved, 
+    // when a Test Plan was loaded from an N-1 version and if defaults changed,
+    // you end up changing the previously set policy
+    // see issues with Bug 58756
+    public static final String POLICY_FOR_BACKWARD_COMPATIBILITY = 
"compatibility";
     
-    // MUST NOT BE CHANGED
-    public static final String DEFAULT_IMPLEMENTATION = 
HC3CookieHandler.class.getName();
+    // MUST NOT BE CHANGED because as defaults are not saved, 
+    // when a Test Plan was loaded from an N-1 version and if defaults changed,
+    // you end up changing the previously set policy
+    // see issues with Bug 58756
+    public static final String IMPLEMENTATION_FOR_BACKWARD_COMPATIBILITY = 
HC3CookieHandler.class.getName();
+
+    public static final String DEFAULT_IMPLEMENTATION = 
HC4CookieHandler.class.getName();
 
     public CookieManager() {
         clearCookies(); // Ensure that there is always a collection available
@@ -124,11 +130,13 @@ public class CookieManager extends Confi
     }
 
     public String getPolicy() {
-        return getPropertyAsString(POLICY, DEFAULT_POLICY);
+        return getPropertyAsString(POLICY, POLICY_FOR_BACKWARD_COMPATIBILITY);
     }
 
     public void setCookiePolicy(String policy){
-        setProperty(POLICY, policy, DEFAULT_POLICY);
+        // we must explicitely save the policy
+        // not use a default implementation
+        setProperty(POLICY, policy);
     }
 
     public CollectionProperty getCookies() {
@@ -148,11 +156,13 @@ public class CookieManager extends Confi
     }
 
     public String getImplementation() {
-        return getPropertyAsString(IMPLEMENTATION, DEFAULT_IMPLEMENTATION);
+        return getPropertyAsString(IMPLEMENTATION, 
IMPLEMENTATION_FOR_BACKWARD_COMPATIBILITY);
     }
 
     public void setImplementation(String implementation){
-        setProperty(IMPLEMENTATION, implementation, DEFAULT_IMPLEMENTATION);
+        // we must explicitely save the policy
+        // not use a default implementation
+        setProperty(IMPLEMENTATION, implementation);
     }
 
     /**

Modified: 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java?rev=1732634&r1=1732633&r2=1732634&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java
 (original)
+++ 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java
 Sat Feb 27 12:53:18 2016
@@ -280,9 +280,9 @@ public class CookiePanel extends Abstrac
 
         tableModel.clearData();
         clearEachIteration.setSelected(false);
-        policy.setText(HC4CookieHandler.DEFAULT_POLICY_NAME);
         selectHandlerPanel.setSelectedItem(DEFAULT_IMPLEMENTATION
                 .substring(DEFAULT_IMPLEMENTATION.lastIndexOf('.') + 1));
+        policy.setText(HC4CookieHandler.DEFAULT_POLICY_NAME);
         deleteButton.setEnabled(false);
         saveButton.setEnabled(false);
     }


Reply via email to