You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2012/05/03 12:21:12 UTC

svn commit: r1333397 - in /commons/proper/codec/trunk/src/main/java/org/apache/commons/codec: ./ binary/ digest/ language/ language/bm/ net/

Author: sebb
Date: Thu May  3 10:21:11 2012
New Revision: 1333397

URL: http://svn.apache.org/viewvc?rev=1333397&view=rev
Log:
Add thread-safety Javadoc

Modified:
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/CharEncoding.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/Charsets.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/StringEncoderComparator.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/BinaryCodec.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/Hex.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/StringUtils.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/B64.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Crypt.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Sha2Crypt.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/UnixCrypt.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/AbstractCaverphone.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Caverphone1.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Caverphone2.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/ColognePhonetic.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/DoubleMetaphone.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Metaphone.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Nysiis.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/RefinedSoundex.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Soundex.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/SoundexUtils.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Languages.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/ResourceConstants.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/BCodec.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/QCodec.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/QuotedPrintableCodec.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/RFC1522Codec.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/URLCodec.java
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/Utils.java

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/CharEncoding.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/CharEncoding.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/CharEncoding.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/CharEncoding.java Thu May  3 10:21:11 2012
@@ -47,6 +47,8 @@ package org.apache.commons.codec;
  * This perhaps would best belong in the [lang] project. Even if a similar interface is defined in [lang], it is not
  * foreseen that [codec] would be made to depend on [lang].
  * 
+ * This class is immutable and thread-safe.
+ * 
  * @see <a href="http://download.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
  * @since 1.4
  * @version $Id$

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/Charsets.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/Charsets.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/Charsets.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/Charsets.java Thu May  3 10:21:11 2012
@@ -49,6 +49,8 @@ import java.nio.charset.UnsupportedChars
  * This perhaps would best belong in the Commons Lang project. Even if a similar class is defined in Commons Lang, it is
  * not foreseen that Commons Codec would be made to depend on Commons Lang.
  * 
+ * This class is immutable and thread-safe.
+ * 
  * @see <a href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
  * @since 1.7
  * @version $Id: CharEncoding.java 1173287 2011-09-20 18:16:19Z ggregory $

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/StringEncoderComparator.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/StringEncoderComparator.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/StringEncoderComparator.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/StringEncoderComparator.java Thu May  3 10:21:11 2012
@@ -24,6 +24,8 @@ import java.util.Comparator;
  * Soundex, Metaphone, etc. This class can come in handy if one need to sort Strings by an encoded form of a name such
  * as Soundex.
  * 
+ * This class is immutable and thread-safe.
+ * 
  * @version $Id$
  */
 public class StringEncoderComparator implements Comparator {

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/BinaryCodec.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/BinaryCodec.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/BinaryCodec.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/BinaryCodec.java Thu May  3 10:21:11 2012
@@ -25,6 +25,8 @@ import org.apache.commons.codec.EncoderE
 /**
  * Converts between byte arrays and strings of "0"s and "1"s.
  * 
+ * This class is immutable and thread-safe.
+ * 
  * TODO: may want to add more bit vector functions like and/or/xor/nand 
  * TODO: also might be good to generate boolean[] from byte[] et cetera.
  * 

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/Hex.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/Hex.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/Hex.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/Hex.java Thu May  3 10:21:11 2012
@@ -31,6 +31,8 @@ import org.apache.commons.codec.EncoderE
  * Converts hexadecimal Strings. The charset used for certain operation can be set, the default is set in
  * {@link #DEFAULT_CHARSET_NAME}
  * 
+ * This class is thread-safe.
+ * 
  * @since 1.1
  * @version $Id$
  */

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/StringUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/StringUtils.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/StringUtils.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/StringUtils.java Thu May  3 10:21:11 2012
@@ -27,6 +27,8 @@ import org.apache.commons.codec.Charsets
  * Converts String to and from bytes using the encodings required by the Java specification. These encodings are specified in <a
  * href="http://download.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
  * 
+ * This class is immutable and thread-safe.
+ *
  * @see CharEncoding
  * @see <a href="http://download.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
  * @version $Id$

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/B64.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/B64.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/B64.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/B64.java Thu May  3 10:21:11 2012
@@ -23,6 +23,8 @@ import java.util.Random;
  * 
  * TODO: Can Base64 be reused?
  * 
+ * This class is immutable and thread-safe.
+ * 
  * @version $Id$
  * @since 1.7
  */

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Crypt.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Crypt.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Crypt.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Crypt.java Thu May  3 10:21:11 2012
@@ -23,6 +23,8 @@ import org.apache.commons.codec.Charsets
  * 
  * See {@link #crypt(String, String)} for further details.
  * 
+ * This class is immutable and thread-safe.
+ * 
  * @version $Id$
  * @since 1.7
  */

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java Thu May  3 10:21:11 2012
@@ -39,6 +39,8 @@ import org.apache.commons.codec.Charsets
  * The C style comments are from the original C code, the ones with "//" from the port.
  * </p>
  * 
+ * This class is immutable and thread-safe.
+ * 
  * @version $Id$
  * @since 1.7
  */

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Sha2Crypt.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Sha2Crypt.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Sha2Crypt.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Sha2Crypt.java Thu May  3 10:21:11 2012
@@ -34,6 +34,8 @@ import java.util.regex.Pattern;
  * into the Public Domain.
  * </p>
  * 
+ * This class is immutable and thread-safe.
+ * 
  * @version $Id$
  * @since 1.7
  */

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/UnixCrypt.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/UnixCrypt.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/UnixCrypt.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/UnixCrypt.java Thu May  3 10:21:11 2012
@@ -33,6 +33,8 @@ import org.apache.commons.codec.Charsets
  * This class is slightly incompatible if the given salt contains characters
  * that are not part of the allowed range [a-zA-Z0-9./].
  *
+ * This class is immutable and thread-safe.
+ *
  * @version $Id$
  * @since 1.7
  */
@@ -372,7 +374,9 @@ public class UnixCrypt {
             throw new IllegalArgumentException("Invalid salt value: " + salt);
         }
 
-        for (; salt.length() < 2; salt = salt + "A");
+        for (; salt.length() < 2; salt = salt + "A") {
+            // NOOP
+        }
         StringBuilder buffer = new StringBuilder("             ");
         char charZero = salt.charAt(0);
         char charOne = salt.charAt(1);

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/AbstractCaverphone.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/AbstractCaverphone.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/AbstractCaverphone.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/AbstractCaverphone.java Thu May  3 10:21:11 2012
@@ -26,6 +26,8 @@ import org.apache.commons.codec.StringEn
  * This is an algorithm created by the Caversham Project at the University of Otago. It implements the Caverphone 2.0
  * algorithm:
  * 
+ * This class is immutable and thread-safe.
+ * 
  * @version $Id: Caverphone.java 1075947 2011-03-01 17:56:14Z ggregory $
  * @see <a href="http://en.wikipedia.org/wiki/Caverphone">Wikipedia - Caverphone</a>
  * @since 1.5

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Caverphone1.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Caverphone1.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Caverphone1.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Caverphone1.java Thu May  3 10:21:11 2012
@@ -27,6 +27,8 @@ package org.apache.commons.codec.languag
  * @see <a href="http://en.wikipedia.org/wiki/Caverphone">Wikipedia - Caverphone</a>
  * @see <a href="http://caversham.otago.ac.nz/files/working/ctp060902.pdf">Caverphone 1.0 specification</a>
  * @since 1.5
+ * 
+ * This class is immutable and thread-safe.
  */
 public class Caverphone1 extends AbstractCaverphone {
 

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Caverphone2.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Caverphone2.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Caverphone2.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Caverphone2.java Thu May  3 10:21:11 2012
@@ -27,6 +27,8 @@ package org.apache.commons.codec.languag
  * @see <a href="http://en.wikipedia.org/wiki/Caverphone">Wikipedia - Caverphone</a>
  * @see <a href="http://caversham.otago.ac.nz/files/working/ctp150804.pdf">Caverphone 2.0 specification</a>
  * @since 1.5
+ * 
+ * This class is immutable and thread-safe.
  */
 public class Caverphone2 extends AbstractCaverphone {
 

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/ColognePhonetic.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/ColognePhonetic.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/ColognePhonetic.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/ColognePhonetic.java Thu May  3 10:21:11 2012
@@ -176,11 +176,18 @@ import org.apache.commons.codec.StringEn
  * 
  * </ul>
  * 
+ * This class is thread-safe.
+ * 
  * @see <a href="http://de.wikipedia.org/wiki/K%C3%B6lner_Phonetik">Wikipedia (de): K&ouml;lner Phonetik (in German)</a>
  * @since 1.5
  */
 public class ColognePhonetic implements StringEncoder {
 
+    /**
+     * This class is not thread-safe; the field {@link #length} is mutable.
+     * However, it is not shared between threads, as it is constructed on demand
+     * by the method {@link ColognePhonetic#colognePhonetic(String)}
+     */
     private abstract class CologneBuffer {
 
         protected final char[] data;

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/DoubleMetaphone.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/DoubleMetaphone.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/DoubleMetaphone.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/DoubleMetaphone.java Thu May  3 10:21:11 2012
@@ -27,6 +27,13 @@ import org.apache.commons.codec.StringEn
  * @see <a href="http://drdobbs.com/184401251?pgno=2">Original Article</a>
  * @see <a href="http://en.wikipedia.org/wiki/Metaphone">http://en.wikipedia.org/wiki/Metaphone</a>
  *
+ * This class is conditionally thread-safe.
+ * The instance field {@link #maxCodeLen} is mutable {@link #setMaxCodeLen(int)}
+ * but is not volatile, and accesses are not synchronised.
+ * If an instance of the class is shared between threads, the caller needs to ensure that suitable synchronisation
+ * is used to ensure safe publication of the value between threads, and must not invoke {@link #setMaxCodeLen(int)}
+ * after initial setup. 
+ * 
  * @version $Id$
  */
 public class DoubleMetaphone implements StringEncoder {

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Metaphone.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Metaphone.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Metaphone.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Metaphone.java Thu May  3 10:21:11 2012
@@ -37,6 +37,13 @@ import org.apache.commons.codec.StringEn
  * For more information, see <a href="https://issues.apache.org/jira/browse/CODEC-57">CODEC-57</a>.
  * </p>
  * 
+ * This class is conditionally thread-safe.
+ * The instance field {@link #maxCodeLen} is mutable {@link #setMaxCodeLen(int)}
+ * but is not volatile, and accesses are not synchronised.
+ * If an instance of the class is shared between threads, the caller needs to ensure that suitable synchronisation
+ * is used to ensure safe publication of the value between threads, and must not invoke {@link #setMaxCodeLen(int)}
+ * after initial setup. 
+ * 
  * @version $Id$
  */
 public class Metaphone implements StringEncoder {

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Nysiis.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Nysiis.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Nysiis.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Nysiis.java Thu May  3 10:21:11 2012
@@ -61,6 +61,8 @@ import org.apache.commons.codec.StringEn
  * 9. Add original first character of name as first character of key
  * </pre></p>
  *
+ * This class is immutable and thread-safe.
+ * 
  * @see <a href="http://en.wikipedia.org/wiki/NYSIIS">NYSIIS on Wikipedia</a>
  * @see <a href="http://www.dropby.com/NYSIIS.html">NYSIIS on dropby.com</a>
  * @see Soundex

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/RefinedSoundex.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/RefinedSoundex.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/RefinedSoundex.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/RefinedSoundex.java Thu May  3 10:21:11 2012
@@ -25,6 +25,8 @@ import org.apache.commons.codec.StringEn
  * optimized for spell checking words. Soundex method originally developed by
  * <CITE>Margaret Odell</CITE> and <CITE>Robert Russell</CITE>.
  * 
+ * This class is immutable and thread-safe.
+ * 
  * @version $Id$
  */
 public class RefinedSoundex implements StringEncoder {

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Soundex.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Soundex.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Soundex.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Soundex.java Thu May  3 10:21:11 2012
@@ -24,6 +24,9 @@ import org.apache.commons.codec.StringEn
  * Encodes a string into a Soundex value. Soundex is an encoding used to relate similar names, but can also be used as a
  * general purpose scheme to find word with similar phonemes.
  * 
+ * This class is thread-safe.
+ * Although not strictly immutable, the {@link #maxLength} field is not actually used.
+ * 
  * @version $Id$
  */
 public class Soundex implements StringEncoder {

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/SoundexUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/SoundexUtils.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/SoundexUtils.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/SoundexUtils.java Thu May  3 10:21:11 2012
@@ -23,6 +23,8 @@ import org.apache.commons.codec.StringEn
 /**
  * Utility methods for {@link Soundex} and {@link RefinedSoundex} classes.
  * 
+ * This class is immutable and thread-safe.
+ * 
  * @version $Id$
  * @since 1.3
  */

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Languages.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Languages.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Languages.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Languages.java Thu May  3 10:21:11 2012
@@ -50,6 +50,8 @@ import java.util.Set;
  * </p>
  * 
  * @since 1.6
+ * 
+ * This class is immutable and thread-safe.
  */
 public class Languages {
     // Iimplementation note: This class is divided into two sections. The first part is a static factory interface that

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java Thu May  3 10:21:11 2012
@@ -163,6 +163,8 @@ public class PhoneticEngine {
      * matching rule was found, <code>phonemeBuilder</code> is replaced with a new buidler containing the phonemes
      * updated by the matching rule.
      *
+     * Although this class is not thread-safe (it has mutable unprotected fields), it is not shared between threads
+     * as it is constructed as needed by the calling methods.
      * @since 1.6
      */
     private static final class RulesApplication {

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/ResourceConstants.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/ResourceConstants.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/ResourceConstants.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/ResourceConstants.java Thu May  3 10:21:11 2012
@@ -22,6 +22,8 @@ import org.apache.commons.codec.CharEnco
 /**
  * Constants used to process resource files.
  * 
+ * This class is immutable and thread-safe.
+ * 
  * @since 1.6
  */
 class ResourceConstants {

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/BCodec.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/BCodec.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/BCodec.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/BCodec.java Thu May  3 10:21:11 2012
@@ -40,6 +40,8 @@ import org.apache.commons.codec.binary.B
  * handling software.
  * </p>
  * 
+ * This class is immutable and thread-safe.
+ * 
  * @see <a href="http://www.ietf.org/rfc/rfc1522.txt">MIME (Multipurpose Internet Mail Extensions) Part Two: Message
  *          Header Extensions for Non-ASCII Text</a>
  * 

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/QCodec.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/QCodec.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/QCodec.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/QCodec.java Thu May  3 10:21:11 2012
@@ -41,6 +41,13 @@ import org.apache.commons.codec.StringEn
  * handling software.
  * </p>
  * 
+ * This class is conditionally thread-safe.
+ * The instance field {@link #encodeBlanks} is mutable {@link #setEncodeBlanks(boolean)}
+ * but is not volatile, and accesses are not synchronised.
+ * If an instance of the class is shared between threads, the caller needs to ensure that suitable synchronisation
+ * is used to ensure safe publication of the value between threads, and must not invoke {@link #setEncodeBlanks(boolean)}
+ * after initial setup. 
+ * 
  * @see <a href="http://www.ietf.org/rfc/rfc1522.txt">MIME (Multipurpose Internet Mail Extensions) Part Two: Message
  *          Header Extensions for Non-ASCII Text</a>
  * 

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/QuotedPrintableCodec.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/QuotedPrintableCodec.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/QuotedPrintableCodec.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/QuotedPrintableCodec.java Thu May  3 10:21:11 2012
@@ -55,6 +55,8 @@ import org.apache.commons.codec.binary.S
  * for those applications that do not require quoted-printable line formatting (rules #3, #4, #5), for instance Q codec.
  * </p>
  * 
+ * This class is immutable and thread-safe.
+ * 
  * @see <a href="http://www.ietf.org/rfc/rfc1521.txt"> RFC 1521 MIME (Multipurpose Internet Mail Extensions) Part One:
  *          Mechanisms for Specifying and Describing the Format of Internet Message Bodies </a>
  * 

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/RFC1522Codec.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/RFC1522Codec.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/RFC1522Codec.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/RFC1522Codec.java Thu May  3 10:21:11 2012
@@ -41,6 +41,8 @@ import org.apache.commons.codec.binary.S
  * Message Header Extensions for Non-ASCII Text</a>
  * </p>
  * 
+ * This class is immutable and thread-safe.
+ * 
  * @since 1.3
  * @version $Id$
  */

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=1333397&r1=1333396&r2=1333397&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 Thu May  3 10:21:11 2012
@@ -46,6 +46,8 @@ import org.apache.commons.codec.binary.S
  * 1.4 rely on the platform's default charset encoding.
  * </p>
  * 
+ * This class is immutable and thread-safe.
+ * 
  * @since 1.2
  * @version $Id$
  */

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/Utils.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/Utils.java?rev=1333397&r1=1333396&r2=1333397&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/Utils.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/Utils.java Thu May  3 10:21:11 2012
@@ -22,6 +22,8 @@ import org.apache.commons.codec.DecoderE
 /**
  * Utility methods for this package.
  * 
+ * This class is immutable and thread-safe.
+ * 
  * @version $Id$
  * @since 1.4
  */



Re: svn commit: r1333397 - in /commons/proper/codec/trunk/src/main/java/org/apache/commons/codec: ./ binary/ digest/ language/ language/bm/ net/

Posted by Gary Gregory <ga...@gmail.com>.
On Wed, May 23, 2012 at 6:40 PM, Konstantin Kolinko
<kn...@gmail.com>wrote:

> 2012/5/5 Thomas Neidhart <th...@gmail.com>:
> > On 05/03/2012 12:21 PM, sebb@apache.org wrote:
> >> Author: sebb
> >> Date: Thu May  3 10:21:11 2012
> >> New Revision: 1333397
> >>
> >> URL: http://svn.apache.org/viewvc?rev=1333397&view=rev
> >> Log:
> >> Add thread-safety Javadoc
> >>
> >> Modified:
> >>
> commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/CharEncoding.java
> >>
> commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/Charsets.java
> >> (...)
>
>  *
> + * This class is immutable and thread-safe.
> + *
>
> This needs explicit "<p>" before it to be formatted nicely. Otherwise
> it will be just appended to the previous paragraph.
>

Fixed in SVN. Thank you!

Gary


>
> Best regards,
> Konstantin Kolinko
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>
>


-- 
E-Mail: garydgregory@gmail.com | ggregory@apache.org
JUnit in Action, 2nd Ed: <http://goog_1249600977>http://bit.ly/ECvg0
Spring Batch in Action: <http://s.apache.org/HOq>http://bit.ly/bqpbCK
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Re: svn commit: r1333397 - in /commons/proper/codec/trunk/src/main/java/org/apache/commons/codec: ./ binary/ digest/ language/ language/bm/ net/

Posted by Konstantin Kolinko <kn...@gmail.com>.
2012/5/5 Thomas Neidhart <th...@gmail.com>:
> On 05/03/2012 12:21 PM, sebb@apache.org wrote:
>> Author: sebb
>> Date: Thu May  3 10:21:11 2012
>> New Revision: 1333397
>>
>> URL: http://svn.apache.org/viewvc?rev=1333397&view=rev
>> Log:
>> Add thread-safety Javadoc
>>
>> Modified:
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/CharEncoding.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/Charsets.java
>> (...)

  *
+ * This class is immutable and thread-safe.
+ *

This needs explicit "<p>" before it to be formatted nicely. Otherwise
it will be just appended to the previous paragraph.

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: svn commit: r1333397 - in /commons/proper/codec/trunk/src/main/java/org/apache/commons/codec: ./ binary/ digest/ language/ language/bm/ net/

Posted by sebb <se...@gmail.com>.
On 5 May 2012 10:52, Thomas Neidhart <th...@gmail.com> wrote:
> On 05/03/2012 12:21 PM, sebb@apache.org wrote:
>> Author: sebb
>> Date: Thu May  3 10:21:11 2012
>> New Revision: 1333397
>>
>> URL: http://svn.apache.org/viewvc?rev=1333397&view=rev
>> Log:
>> Add thread-safety Javadoc
>>
>> Modified:
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/CharEncoding.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/Charsets.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/StringEncoderComparator.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/BinaryCodec.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/Hex.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/StringUtils.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/B64.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Crypt.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Sha2Crypt.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/UnixCrypt.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/AbstractCaverphone.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Caverphone1.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Caverphone2.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/ColognePhonetic.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/DoubleMetaphone.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Metaphone.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Nysiis.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/RefinedSoundex.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Soundex.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/SoundexUtils.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Languages.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/ResourceConstants.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/BCodec.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/QCodec.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/QuotedPrintableCodec.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/RFC1522Codec.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/URLCodec.java
>>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/Utils.java
>
> +1 and thanks.
>
> Do you still investigate the BeiderMorseEncoder / PhoneticEngine for
> thread-safety?

Their thread safety is documented already.

> Thomas
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: svn commit: r1333397 - in /commons/proper/codec/trunk/src/main/java/org/apache/commons/codec: ./ binary/ digest/ language/ language/bm/ net/

Posted by Thomas Neidhart <th...@gmail.com>.
On 05/03/2012 12:21 PM, sebb@apache.org wrote:
> Author: sebb
> Date: Thu May  3 10:21:11 2012
> New Revision: 1333397
> 
> URL: http://svn.apache.org/viewvc?rev=1333397&view=rev
> Log:
> Add thread-safety Javadoc
> 
> Modified:
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/CharEncoding.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/Charsets.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/StringEncoderComparator.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/BinaryCodec.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/Hex.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/StringUtils.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/B64.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Crypt.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Sha2Crypt.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/UnixCrypt.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/AbstractCaverphone.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Caverphone1.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Caverphone2.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/ColognePhonetic.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/DoubleMetaphone.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Metaphone.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Nysiis.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/RefinedSoundex.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/Soundex.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/SoundexUtils.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Languages.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/ResourceConstants.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/BCodec.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/QCodec.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/QuotedPrintableCodec.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/RFC1522Codec.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/URLCodec.java
>     commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/net/Utils.java

+1 and thanks.

Do you still investigate the BeiderMorseEncoder / PhoneticEngine for
thread-safety?

Thomas

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org