You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2016/12/27 14:06:11 UTC

svn commit: r1776135 - in /jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http: control/CookieHandler.java control/HC3CookieHandler.java control/HC4CookieHandler.java gui/CookiePanel.java

Author: pmouawad
Date: Tue Dec 27 14:06:11 2016
New Revision: 1776135

URL: http://svn.apache.org/viewvc?rev=1776135&view=rev
Log:
Sonar : Fix errors, vulnerabilities

Modified:
    jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieHandler.java
    jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC3CookieHandler.java
    jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC4CookieHandler.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/CookieHandler.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieHandler.java?rev=1776135&r1=1776134&r2=1776135&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieHandler.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieHandler.java Tue Dec 27 14:06:11 2016
@@ -53,5 +53,10 @@ public interface CookieHandler {
      * @return Cookie default policy name
      */
     String getDefaultPolicy();
+    
+    /**
+     * @return Supported cookie policies
+     */
+    String[] getPolicies();
 
 }

Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC3CookieHandler.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC3CookieHandler.java?rev=1776135&r1=1776134&r2=1776135&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC3CookieHandler.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC3CookieHandler.java Tue Dec 27 14:06:11 2016
@@ -39,7 +39,7 @@ public class HC3CookieHandler implements
    private static final Logger log = LoggingManager.getLoggerForClass();
 
    static final String DEFAULT_POLICY_NAME = "compatibility";
-   public static final String[] AVAILABLE_POLICIES = new String[] {
+   private static final String[] AVAILABLE_POLICIES = new String[] { 
        DEFAULT_POLICY_NAME,
        "default",
        "rfc2109",
@@ -51,6 +51,13 @@ public class HC3CookieHandler implements
     private final transient CookieSpec cookieSpec;
 
     /**
+     * Default constructor that uses {@link HC3CookieHandler#DEFAULT_POLICY_NAME}
+     */
+    public HC3CookieHandler() {
+        this(DEFAULT_POLICY_NAME);
+    }
+    
+    /**
      * @param policy
      *            cookie policy to which to conform (see
      *            {@link CookiePolicy#getCookieSpec(String)}
@@ -212,4 +219,9 @@ public class HC3CookieHandler implements
     public String getDefaultPolicy() {
         return DEFAULT_POLICY_NAME; 
     }
+
+    @Override
+    public String[] getPolicies() {
+        return AVAILABLE_POLICIES;
+    }
 }

Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC4CookieHandler.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC4CookieHandler.java?rev=1776135&r1=1776134&r2=1776135&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC4CookieHandler.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC4CookieHandler.java Tue Dec 27 14:06:11 2016
@@ -55,9 +55,9 @@ public class HC4CookieHandler implements
     private static final Logger log = LoggingManager.getLoggerForClass();
 
     // Needed by CookiePanel
-    public static final String DEFAULT_POLICY_NAME = CookieSpecs.STANDARD; 
+    public static final String DEFAULT_POLICY_NAME = CookieSpecs.STANDARD; // NOSONAR 
 
-    public static final String[] AVAILABLE_POLICIES = new String[]{
+    private static final String[] AVAILABLE_POLICIES = new String[]{ 
         DEFAULT_POLICY_NAME,
         CookieSpecs.STANDARD_STRICT,
         CookieSpecs.IGNORE_COOKIES,
@@ -87,6 +87,13 @@ public class HC4CookieHandler implements
             .register(CookieSpecs.NETSCAPE, new NetscapeDraftSpecProvider())
             .build();
 
+    /**
+     * Default constructor that uses {@link HC4CookieHandler#DEFAULT_POLICY_NAME}
+     */
+    public HC4CookieHandler() {
+        this(DEFAULT_POLICY_NAME);
+    }
+    
     public HC4CookieHandler(String policy) {
         super();
         if (policy.equals(org.apache.commons.httpclient.cookie.CookiePolicy.DEFAULT)) { // tweak diff HC3 vs HC4
@@ -250,4 +257,9 @@ public class HC4CookieHandler implements
     public String getDefaultPolicy() {
         return DEFAULT_POLICY_NAME; 
     }
+
+    @Override
+    public String[] getPolicies() {
+        return AVAILABLE_POLICIES;
+    }
 }

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=1776135&r1=1776134&r2=1776135&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 Tue Dec 27 14:06:11 2016
@@ -40,6 +40,7 @@ import javax.swing.JScrollPane;
 import javax.swing.JTable;
 import javax.swing.ListSelectionModel;
 
+import org.apache.commons.lang3.ClassUtils;
 import org.apache.jmeter.config.gui.AbstractConfigGui;
 import org.apache.jmeter.gui.util.FileDialoger;
 import org.apache.jmeter.gui.util.HeaderAsPropertyRenderer;
@@ -47,7 +48,6 @@ import org.apache.jmeter.gui.util.PowerT
 import org.apache.jmeter.protocol.http.control.Cookie;
 import org.apache.jmeter.protocol.http.control.CookieHandler;
 import org.apache.jmeter.protocol.http.control.CookieManager;
-import org.apache.jmeter.protocol.http.control.HC3CookieHandler;
 import org.apache.jmeter.protocol.http.control.HC4CookieHandler;
 import org.apache.jmeter.testelement.TestElement;
 import org.apache.jmeter.testelement.property.JMeterProperty;
@@ -238,13 +238,14 @@ public class CookiePanel extends Abstrac
      * @return cookie policies
      */
     private static String[] getPolicies(String className) {
-        // TODO it would be better if CookieHandler had a method getSupportedPolicies() and empty constructor 
-        if(HC3CookieHandler.class.getName().equals(className)) {
-            return HC3CookieHandler.AVAILABLE_POLICIES;
-        } else if(HC4CookieHandler.class.getName().equals(className)) {
-            return HC4CookieHandler.AVAILABLE_POLICIES;
+        try {
+            CookieHandler cookieHandler = (CookieHandler) 
+                    ClassUtils.getClass(className).newInstance();
+            return cookieHandler.getPolicies();
+        } catch (Exception e) {
+            log.error("Error getting cookie policies from implementation:"+className, e);
+            return getPolicies(DEFAULT_IMPLEMENTATION);
         }
-        return HC4CookieHandler.AVAILABLE_POLICIES;
     }
 
     private void addCookieToTable(Cookie cookie) {



Re: svn commit: r1776135 - in /jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http: control/CookieHandler.java control/HC3CookieHandler.java control/HC4CookieHandler.java gui/CookiePanel.java

Posted by Philippe Mouawad <ph...@gmail.com>.
On Tue, Dec 27, 2016 at 3:22 PM, Felix Schumacher <
felix.schumacher@internetallee.de> wrote:

> Am 27.12.2016 um 15:06 schrieb pmouawad@apache.org:
>
>> Author: pmouawad
>> Date: Tue Dec 27 14:06:11 2016
>> New Revision: 1776135
>>
>> URL: http://svn.apache.org/viewvc?rev=1776135&view=rev
>> Log:
>> Sonar : Fix errors, vulnerabilities
>>
>> Modified:
>>      jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/
>> http/control/CookieHandler.java
>>      jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/
>> http/control/HC3CookieHandler.java
>>      jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/
>> http/control/HC4CookieHandler.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/CookieHandler.java
>> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/
>> org/apache/jmeter/protocol/http/control/CookieHandler.
>> java?rev=1776135&r1=1776134&r2=1776135&view=diff
>> ============================================================
>> ==================
>> --- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/
>> http/control/CookieHandler.java (original)
>> +++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/
>> http/control/CookieHandler.java Tue Dec 27 14:06:11 2016
>> @@ -53,5 +53,10 @@ public interface CookieHandler {
>>        * @return Cookie default policy name
>>        */
>>       String getDefaultPolicy();
>> +
>> +    /**
>> +     * @return Supported cookie policies
>> +     */
>> +    String[] getPolicies();
>>     }
>>
>> Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/
>> http/control/HC3CookieHandler.java
>> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/
>> org/apache/jmeter/protocol/http/control/HC3CookieHandler.
>> java?rev=1776135&r1=1776134&r2=1776135&view=diff
>> ============================================================
>> ==================
>> --- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/
>> http/control/HC3CookieHandler.java (original)
>> +++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/
>> http/control/HC3CookieHandler.java Tue Dec 27 14:06:11 2016
>> @@ -39,7 +39,7 @@ public class HC3CookieHandler implements
>>      private static final Logger log = LoggingManager.getLoggerForCla
>> ss();
>>        static final String DEFAULT_POLICY_NAME = "compatibility";
>> -   public static final String[] AVAILABLE_POLICIES = new String[] {
>> +   private static final String[] AVAILABLE_POLICIES = new String[] {
>>          DEFAULT_POLICY_NAME,
>>          "default",
>>          "rfc2109",
>> @@ -51,6 +51,13 @@ public class HC3CookieHandler implements
>>       private final transient CookieSpec cookieSpec;
>>         /**
>> +     * Default constructor that uses {@link
>> HC3CookieHandler#DEFAULT_POLICY_NAME}
>> +     */
>> +    public HC3CookieHandler() {
>> +        this(DEFAULT_POLICY_NAME);
>> +    }
>> +
>> +    /**
>>        * @param policy
>>        *            cookie policy to which to conform (see
>>        *            {@link CookiePolicy#getCookieSpec(String)}
>> @@ -212,4 +219,9 @@ public class HC3CookieHandler implements
>>       public String getDefaultPolicy() {
>>           return DEFAULT_POLICY_NAME;
>>       }
>> +
>> +    @Override
>> +    public String[] getPolicies() {
>> +        return AVAILABLE_POLICIES;
>> +    }
>>   }
>>
>> Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/
>> http/control/HC4CookieHandler.java
>> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/
>> org/apache/jmeter/protocol/http/control/HC4CookieHandler.
>> java?rev=1776135&r1=1776134&r2=1776135&view=diff
>> ============================================================
>> ==================
>> --- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/
>> http/control/HC4CookieHandler.java (original)
>> +++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/
>> http/control/HC4CookieHandler.java Tue Dec 27 14:06:11 2016
>> @@ -55,9 +55,9 @@ public class HC4CookieHandler implements
>>       private static final Logger log = LoggingManager.getLoggerForCla
>> ss();
>>         // Needed by CookiePanel
>> -    public static final String DEFAULT_POLICY_NAME =
>> CookieSpecs.STANDARD;
>> +    public static final String DEFAULT_POLICY_NAME =
>> CookieSpecs.STANDARD; // NOSONAR
>>   -    public static final String[] AVAILABLE_POLICIES = new String[]{
>> +    private static final String[] AVAILABLE_POLICIES = new String[]{
>>           DEFAULT_POLICY_NAME,
>>           CookieSpecs.STANDARD_STRICT,
>>           CookieSpecs.IGNORE_COOKIES,
>> @@ -87,6 +87,13 @@ public class HC4CookieHandler implements
>>               .register(CookieSpecs.NETSCAPE, new
>> NetscapeDraftSpecProvider())
>>               .build();
>>   +    /**
>> +     * Default constructor that uses {@link
>> HC4CookieHandler#DEFAULT_POLICY_NAME}
>> +     */
>> +    public HC4CookieHandler() {
>> +        this(DEFAULT_POLICY_NAME);
>> +    }
>> +
>>       public HC4CookieHandler(String policy) {
>>           super();
>>           if (policy.equals(org.apache.commons.httpclient.cookie.CookiePolicy.DEFAULT))
>> { // tweak diff HC3 vs HC4
>> @@ -250,4 +257,9 @@ public class HC4CookieHandler implements
>>       public String getDefaultPolicy() {
>>           return DEFAULT_POLICY_NAME;
>>       }
>> +
>> +    @Override
>> +    public String[] getPolicies() {
>> +        return AVAILABLE_POLICIES;
>>
> You would have to clone the array to make this operation safe. Another
> possibility would be to return an unmodifiable collection. I would prefer
> the second option, as we are breaking backwards compatibility here anyway.

Ok for me

>
> +    }
>>   }
>>
>> 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=
>> 1776135&r1=1776134&r2=1776135&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
>> Tue Dec 27 14:06:11 2016
>> @@ -40,6 +40,7 @@ import javax.swing.JScrollPane;
>>   import javax.swing.JTable;
>>   import javax.swing.ListSelectionModel;
>>   +import org.apache.commons.lang3.ClassUtils;
>>   import org.apache.jmeter.config.gui.AbstractConfigGui;
>>   import org.apache.jmeter.gui.util.FileDialoger;
>>   import org.apache.jmeter.gui.util.HeaderAsPropertyRenderer;
>> @@ -47,7 +48,6 @@ import org.apache.jmeter.gui.util.PowerT
>>   import org.apache.jmeter.protocol.http.control.Cookie;
>>   import org.apache.jmeter.protocol.http.control.CookieHandler;
>>   import org.apache.jmeter.protocol.http.control.CookieManager;
>> -import org.apache.jmeter.protocol.http.control.HC3CookieHandler;
>>   import org.apache.jmeter.protocol.http.control.HC4CookieHandler;
>>   import org.apache.jmeter.testelement.TestElement;
>>   import org.apache.jmeter.testelement.property.JMeterProperty;
>> @@ -238,13 +238,14 @@ public class CookiePanel extends Abstrac
>>        * @return cookie policies
>>        */
>>       private static String[] getPolicies(String className) {
>> -        // TODO it would be better if CookieHandler had a method
>> getSupportedPolicies() and empty constructor
>> -        if(HC3CookieHandler.class.getName().equals(className)) {
>> -            return HC3CookieHandler.AVAILABLE_POLICIES;
>> -        } else if(HC4CookieHandler.class.getName().equals(className)) {
>> -            return HC4CookieHandler.AVAILABLE_POLICIES;
>> +        try {
>> +            CookieHandler cookieHandler = (CookieHandler)
>> +                    ClassUtils.getClass(className).newInstance();
>> +            return cookieHandler.getPolicies();
>> +        } catch (Exception e) {
>> +            log.error("Error getting cookie policies from
>> implementation:"+className, e);
>> +            return getPolicies(DEFAULT_IMPLEMENTATION);
>>
> What Exceptions are you expecting here? Can we specify them a bit more?
>

Ones related to instantiation of class or class not implementing default
constructor I guess

>
> Regards,
>  Felix
>
>           }
>> -        return HC4CookieHandler.AVAILABLE_POLICIES;
>>       }
>>         private void addCookieToTable(Cookie cookie) {
>>
>>
>>
>


-- 
Cordialement.
Philippe Mouawad.

Re: svn commit: r1776135 - in /jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http: control/CookieHandler.java control/HC3CookieHandler.java control/HC4CookieHandler.java gui/CookiePanel.java

Posted by Felix Schumacher <fe...@internetallee.de>.
Am 27.12.2016 um 15:06 schrieb pmouawad@apache.org:
> Author: pmouawad
> Date: Tue Dec 27 14:06:11 2016
> New Revision: 1776135
>
> URL: http://svn.apache.org/viewvc?rev=1776135&view=rev
> Log:
> Sonar : Fix errors, vulnerabilities
>
> Modified:
>      jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieHandler.java
>      jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC3CookieHandler.java
>      jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC4CookieHandler.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/CookieHandler.java
> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieHandler.java?rev=1776135&r1=1776134&r2=1776135&view=diff
> ==============================================================================
> --- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieHandler.java (original)
> +++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieHandler.java Tue Dec 27 14:06:11 2016
> @@ -53,5 +53,10 @@ public interface CookieHandler {
>        * @return Cookie default policy name
>        */
>       String getDefaultPolicy();
> +
> +    /**
> +     * @return Supported cookie policies
> +     */
> +    String[] getPolicies();
>   
>   }
>
> Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC3CookieHandler.java
> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC3CookieHandler.java?rev=1776135&r1=1776134&r2=1776135&view=diff
> ==============================================================================
> --- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC3CookieHandler.java (original)
> +++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC3CookieHandler.java Tue Dec 27 14:06:11 2016
> @@ -39,7 +39,7 @@ public class HC3CookieHandler implements
>      private static final Logger log = LoggingManager.getLoggerForClass();
>   
>      static final String DEFAULT_POLICY_NAME = "compatibility";
> -   public static final String[] AVAILABLE_POLICIES = new String[] {
> +   private static final String[] AVAILABLE_POLICIES = new String[] {
>          DEFAULT_POLICY_NAME,
>          "default",
>          "rfc2109",
> @@ -51,6 +51,13 @@ public class HC3CookieHandler implements
>       private final transient CookieSpec cookieSpec;
>   
>       /**
> +     * Default constructor that uses {@link HC3CookieHandler#DEFAULT_POLICY_NAME}
> +     */
> +    public HC3CookieHandler() {
> +        this(DEFAULT_POLICY_NAME);
> +    }
> +
> +    /**
>        * @param policy
>        *            cookie policy to which to conform (see
>        *            {@link CookiePolicy#getCookieSpec(String)}
> @@ -212,4 +219,9 @@ public class HC3CookieHandler implements
>       public String getDefaultPolicy() {
>           return DEFAULT_POLICY_NAME;
>       }
> +
> +    @Override
> +    public String[] getPolicies() {
> +        return AVAILABLE_POLICIES;
> +    }
>   }
>
> Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC4CookieHandler.java
> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC4CookieHandler.java?rev=1776135&r1=1776134&r2=1776135&view=diff
> ==============================================================================
> --- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC4CookieHandler.java (original)
> +++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HC4CookieHandler.java Tue Dec 27 14:06:11 2016
> @@ -55,9 +55,9 @@ public class HC4CookieHandler implements
>       private static final Logger log = LoggingManager.getLoggerForClass();
>   
>       // Needed by CookiePanel
> -    public static final String DEFAULT_POLICY_NAME = CookieSpecs.STANDARD;
> +    public static final String DEFAULT_POLICY_NAME = CookieSpecs.STANDARD; // NOSONAR
>   
> -    public static final String[] AVAILABLE_POLICIES = new String[]{
> +    private static final String[] AVAILABLE_POLICIES = new String[]{
>           DEFAULT_POLICY_NAME,
>           CookieSpecs.STANDARD_STRICT,
>           CookieSpecs.IGNORE_COOKIES,
> @@ -87,6 +87,13 @@ public class HC4CookieHandler implements
>               .register(CookieSpecs.NETSCAPE, new NetscapeDraftSpecProvider())
>               .build();
>   
> +    /**
> +     * Default constructor that uses {@link HC4CookieHandler#DEFAULT_POLICY_NAME}
> +     */
> +    public HC4CookieHandler() {
> +        this(DEFAULT_POLICY_NAME);
> +    }
> +
>       public HC4CookieHandler(String policy) {
>           super();
>           if (policy.equals(org.apache.commons.httpclient.cookie.CookiePolicy.DEFAULT)) { // tweak diff HC3 vs HC4
> @@ -250,4 +257,9 @@ public class HC4CookieHandler implements
>       public String getDefaultPolicy() {
>           return DEFAULT_POLICY_NAME;
>       }
> +
> +    @Override
> +    public String[] getPolicies() {
> +        return AVAILABLE_POLICIES;
You would have to clone the array to make this operation safe. Another 
possibility would be to return an unmodifiable collection. I would 
prefer the second option, as we are breaking backwards compatibility 
here anyway.
> +    }
>   }
>
> 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=1776135&r1=1776134&r2=1776135&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 Tue Dec 27 14:06:11 2016
> @@ -40,6 +40,7 @@ import javax.swing.JScrollPane;
>   import javax.swing.JTable;
>   import javax.swing.ListSelectionModel;
>   
> +import org.apache.commons.lang3.ClassUtils;
>   import org.apache.jmeter.config.gui.AbstractConfigGui;
>   import org.apache.jmeter.gui.util.FileDialoger;
>   import org.apache.jmeter.gui.util.HeaderAsPropertyRenderer;
> @@ -47,7 +48,6 @@ import org.apache.jmeter.gui.util.PowerT
>   import org.apache.jmeter.protocol.http.control.Cookie;
>   import org.apache.jmeter.protocol.http.control.CookieHandler;
>   import org.apache.jmeter.protocol.http.control.CookieManager;
> -import org.apache.jmeter.protocol.http.control.HC3CookieHandler;
>   import org.apache.jmeter.protocol.http.control.HC4CookieHandler;
>   import org.apache.jmeter.testelement.TestElement;
>   import org.apache.jmeter.testelement.property.JMeterProperty;
> @@ -238,13 +238,14 @@ public class CookiePanel extends Abstrac
>        * @return cookie policies
>        */
>       private static String[] getPolicies(String className) {
> -        // TODO it would be better if CookieHandler had a method getSupportedPolicies() and empty constructor
> -        if(HC3CookieHandler.class.getName().equals(className)) {
> -            return HC3CookieHandler.AVAILABLE_POLICIES;
> -        } else if(HC4CookieHandler.class.getName().equals(className)) {
> -            return HC4CookieHandler.AVAILABLE_POLICIES;
> +        try {
> +            CookieHandler cookieHandler = (CookieHandler)
> +                    ClassUtils.getClass(className).newInstance();
> +            return cookieHandler.getPolicies();
> +        } catch (Exception e) {
> +            log.error("Error getting cookie policies from implementation:"+className, e);
> +            return getPolicies(DEFAULT_IMPLEMENTATION);
What Exceptions are you expecting here? Can we specify them a bit more?

Regards,
  Felix
>           }
> -        return HC4CookieHandler.AVAILABLE_POLICIES;
>       }
>   
>       private void addCookieToTable(Cookie cookie) {
>
>