Author: sebb
Date: Sun Mar 26 18:34:51 2017
New Revision: 1788761

URL: http://svn.apache.org/viewvc?rev=1788761&view=rev
Log:
CODEC-230 URLCodec.WWW_FORM_URL should be private

Modified:
    commons/proper/codec/trunk/src/changes/changes.xml
    
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/URLCodec.java

Modified: commons/proper/codec/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/changes/changes.xml?rev=1788761&r1=1788760&r2=1788761&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/changes/changes.xml (original)
+++ commons/proper/codec/trunk/src/changes/changes.xml Sun Mar 26 18:34:51 2017
@@ -45,6 +45,7 @@ The <action> type attribute can be add,u
     <release version="1.11" date="2017-MM-DD" description="Feature and fix 
release.">
       <!-- The first attribute below should be the issue id; makes it easier 
to navigate in the IDE outline -->
 
+      <action issue="CODEC-230" dev="sebb" type="fix">URLCodec.WWW_FORM_URL 
should be private</action>
       <action issue="CODEC-229" dev="sebb" 
type="fix">StringUtils.newStringxxx(null) should return null, not NPE</action>
       <action issue="CODEC-220" dev="sebb" type="add">Fluent interface for 
DigestUtils</action>
       <action issue="CODEC-222" dev="sebb" type="add">Fluent interface for 
HmacUtils</action>

Modified: 
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/URLCodec.java
URL: 
http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/URLCodec.java?rev=1788761&r1=1788760&r2=1788761&view=diff
==============================================================================
--- 
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/URLCodec.java
 (original)
+++ 
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/URLCodec.java
 Sun Mar 26 18:34:51 2017
@@ -64,31 +64,39 @@ public class URLCodec implements BinaryE
      * Release 1.5 made this field final.
      */
     protected static final byte ESCAPE_CHAR = '%';
+
     /**
      * BitSet of www-form-url safe characters.
+     * @deprecated Will be removed in 2.0 (CODEC-230)
      */
-    protected static final BitSet WWW_FORM_URL = new BitSet(256);
+    @Deprecated
+    protected static final BitSet WWW_FORM_URL;
+
+    private static final BitSet WWW_FORM_URL_SAFE = new BitSet(256);
 
     // Static initializer for www_form_url
     static {
         // alpha characters
         for (int i = 'a'; i <= 'z'; i++) {
-            WWW_FORM_URL.set(i);
+            WWW_FORM_URL_SAFE.set(i);
         }
         for (int i = 'A'; i <= 'Z'; i++) {
-            WWW_FORM_URL.set(i);
+            WWW_FORM_URL_SAFE.set(i);
         }
         // numeric characters
         for (int i = '0'; i <= '9'; i++) {
-            WWW_FORM_URL.set(i);
+            WWW_FORM_URL_SAFE.set(i);
         }
         // special chars
-        WWW_FORM_URL.set('-');
-        WWW_FORM_URL.set('_');
-        WWW_FORM_URL.set('.');
-        WWW_FORM_URL.set('*');
+        WWW_FORM_URL_SAFE.set('-');
+        WWW_FORM_URL_SAFE.set('_');
+        WWW_FORM_URL_SAFE.set('.');
+        WWW_FORM_URL_SAFE.set('*');
         // blank to be replaced with +
-        WWW_FORM_URL.set(' ');
+        WWW_FORM_URL_SAFE.set(' ');
+
+        // Create a copy in case anyone (ab)uses it
+        WWW_FORM_URL = (BitSet) WWW_FORM_URL_SAFE.clone();
     }
 
 
@@ -123,7 +131,7 @@ public class URLCodec implements BinaryE
             return null;
         }
         if (urlsafe == null) {
-            urlsafe = WWW_FORM_URL;
+            urlsafe = WWW_FORM_URL_SAFE;
         }
 
         final ByteArrayOutputStream buffer = new ByteArrayOutputStream();
@@ -191,7 +199,7 @@ public class URLCodec implements BinaryE
      */
     @Override
     public byte[] encode(final byte[] bytes) {
-        return encodeUrl(WWW_FORM_URL, bytes);
+        return encodeUrl(WWW_FORM_URL_SAFE, bytes);
     }
 
 


Reply via email to