You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by qi...@apache.org on 2009/04/26 14:30:06 UTC

svn commit: r768698 [6/18] - in /harmony/enhanced/classlib/branches/java6: ./ modules/annotation/src/main/java/java/lang/annotation/ modules/archive/src/main/java/java/util/jar/ modules/archive/src/main/java/java/util/zip/ modules/auth/src/main/java/co...

Modified: harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DESKeySpec.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DESKeySpec.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DESKeySpec.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DESKeySpec.java Sun Apr 26 12:30:01 2009
@@ -23,12 +23,12 @@
 import org.apache.harmony.crypto.internal.nls.Messages;
 
 /**
- * @com.intel.drl.spec_ref
+ * The key specification for a DES key.
  */
 public class DESKeySpec implements KeySpec {
 
     /**
-     * @com.intel.drl.spec_ref
+     * The length of a DES key in bytes.
      */
     public static final int DES_KEY_LEN = 8;
 
@@ -92,14 +92,29 @@
                 };
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>DESKeySpec</code> from the first 8 bytes of the
+     * specified key data.
+     *
+     * @param key
+     *            the key data.
+     * @throws InvalidKeyException
+     *             if the length of the specified key data is less than 8.
      */
     public DESKeySpec(byte[] key) throws InvalidKeyException {
         this(key, 0);
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>DESKeySpec</code> from the first 8 bytes of the
+     * specified key data starting at <code>offset</code>.
+     *
+     * @param key
+     *            the key data
+     * @param offset
+     *            the offset to start at.
+     * @throws InvalidKeyException
+     *             if the length of the specified key data starting at offset is
+     *             less than 8.
      */
     public DESKeySpec(byte[] key, int offset)
                 throws InvalidKeyException {
@@ -115,7 +130,9 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns a copy of the key.
+     *
+     * @return a copy of the key.
      */
     public byte[] getKey() {
         byte[] result = new byte[DES_KEY_LEN];
@@ -124,7 +141,18 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns whether the specified key data starting at <code>offset</code> is
+     * <i>parity-adjusted</i>.
+     *
+     * @param key
+     *            the key data.
+     * @param offset
+     *            the offset to start checking at.
+     * @return {@code true} if the specified key data is parity-adjusted,
+     *            {@code false} otherwise.
+     * @throws InvalidKeyException
+     *             if the length of the key data starting at offset is less than
+     *             8, or the key is null.
      */
     public static boolean isParityAdjusted(byte[] key, int offset)
             throws InvalidKeyException {
@@ -153,7 +181,17 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns whether the specified key data starting at <code>offset</code> is
+     * weak or semi-weak.
+     *
+     * @param key
+     *            the key data.
+     * @param offset
+     *            the offset to start checking at.
+     * @return {@code true} if the specified key data is weak or semi-weak.
+     * @throws InvalidKeyException
+     *             if the length of the key data starting at offset is less than
+     *             8, or it is null.
      */
     public static boolean isWeak(byte[] key, int offset)
               throws InvalidKeyException {

Modified: harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DESedeKeySpec.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DESedeKeySpec.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DESedeKeySpec.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DESedeKeySpec.java Sun Apr 26 12:30:01 2009
@@ -27,19 +27,27 @@
 import org.apache.harmony.crypto.internal.nls.Messages;
 
 /**
- * @com.intel.drl.spec_ref
+ * The key specification for a triple-DES (DES-EDE) key.
  */
 public class DESedeKeySpec implements KeySpec {
 
     /**
-     * @com.intel.drl.spec_ref
+     * The length of a DES-EDE key in bytes.
      */
     public static final int DES_EDE_KEY_LEN = 24;
 
     private final byte[] key;
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>DESedeKeySpec</code> instance from the first 24 (
+     * {@link #DES_EDE_KEY_LEN}) bytes of the specified key data.
+     *
+     * @param key
+     *            the key data.
+     * @throws InvalidKeyException
+     *             if the length of the key data is less than 24.
+     * @throws NullPointerException
+     *             if the key data is null.
      */
     public DESedeKeySpec(byte[] key)
                 throws InvalidKeyException {
@@ -55,7 +63,19 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>DESedeKeySpec</code> instance from the first 24 (
+     * {@link #DES_EDE_KEY_LEN} ) bytes of the specified key data starting at
+     * <code>offset</code>.
+     *
+     * @param key
+     *            the key data
+     * @param offset
+     *            the offset to start at.
+     * @throws InvalidKeyException
+     *             if the length of the key data starting at offset is less than
+     *             24.
+     * @throws NullPointerException
+     *             if the key data is null.
      */
     public DESedeKeySpec(byte[] key, int offset)
                 throws InvalidKeyException {
@@ -71,7 +91,9 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns a copy of the key.
+     *
+     * @return a copy of the key.
      */
     public byte[] getKey() {
         byte[] result = new byte [DES_EDE_KEY_LEN];
@@ -80,7 +102,18 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns whether the specified key data starting at <code>offset</code> is
+     * <i>parity-adjusted</i>.
+     *
+     * @param key
+     *            the key data.
+     * @param offset
+     *            the offset to start checking at.
+     * @return {@code true} if the specified key data is parity-adjusted,
+     *            {@code false} otherwise.
+     * @throws InvalidKeyException
+     *             if the length of the key data starting at offset is less than
+     *             24.
      */
     public static boolean isParityAdjusted(byte[] key, int offset)
                 throws InvalidKeyException {

Modified: harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DHGenParameterSpec.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DHGenParameterSpec.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DHGenParameterSpec.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DHGenParameterSpec.java Sun Apr 26 12:30:01 2009
@@ -25,7 +25,8 @@
 import java.security.spec.AlgorithmParameterSpec;
 
 /**
- * @com.intel.drl.spec_ref
+ * The algorithm parameter specification for generating Diffie-Hellman
+ * parameters used in Diffie-Hellman key agreement.
  */
 public class DHGenParameterSpec implements AlgorithmParameterSpec {
 
@@ -33,7 +34,13 @@
     private final int exponentSize;
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>DHGenParameterSpec</code> instance with the specified
+     * parameters.
+     *
+     * @param primeSize
+     *            the size of the <i>prime modulus</i> in bits.
+     * @param exponentSize
+     *            the size of the <i>random exponent</i> in bits.
      */
     public DHGenParameterSpec(int primeSize, int exponentSize) {
         this.primeSize = primeSize;
@@ -41,14 +48,18 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the size of the <i>prime modulus</i> in bits.
+     *
+     * @return the size of the prime modulus in bits.
      */
     public int getPrimeSize() {
         return primeSize;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the size of the <i>random exponent</i> in bits.
+     *
+     * @return the size of the random exponent in bits.
      */
     public int getExponentSize() {
         return exponentSize;

Modified: harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DHParameterSpec.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DHParameterSpec.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DHParameterSpec.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DHParameterSpec.java Sun Apr 26 12:30:01 2009
@@ -26,7 +26,7 @@
 import java.security.spec.AlgorithmParameterSpec;
 
 /**
- * @com.intel.drl.spec_ref
+ * The algorithm parameter specification for the Diffie-Hellman algorithm.
  */
 public class DHParameterSpec implements AlgorithmParameterSpec {
 
@@ -35,7 +35,13 @@
     private final int l;
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>DHParameterSpec</code> instance with the specified
+     * <i>prime modulus</i> and <i>base generator</i>.
+     *
+     * @param p
+     *            the prime modulus.
+     * @param g
+     *            the base generator.
      */
     public DHParameterSpec(BigInteger p, BigInteger g) {
         this.p = p;
@@ -44,7 +50,16 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>DHParameterSpec</code> instance with the specified
+     * <i>prime modulus</i>, <i>base generator</i> and size (in bits) of the
+     * <i>random exponent</i>.
+     *
+     * @param p
+     *            the prime modulus.
+     * @param g
+     *            the base generator.
+     * @param l
+     *            the size of the random exponent (in bits).
      */
     public DHParameterSpec(BigInteger p, BigInteger g, int l) {
         this.p = p;
@@ -53,21 +68,27 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the <i>prime modulus</i> of this parameter specification.
+     *
+     * @return the prime modulus.
      */
     public BigInteger getP() {
         return p;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the <i>base generator</i> of this parameter specification.
+     *
+     * @return the base generator.
      */
     public BigInteger getG() {
         return g;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the size (in bits) of the <i>random exponent</i>.
+     *
+     * @return the size (in bits) of the random exponent.
      */
     public int getL() {
         return l;

Modified: harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DHPrivateKeySpec.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DHPrivateKeySpec.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DHPrivateKeySpec.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DHPrivateKeySpec.java Sun Apr 26 12:30:01 2009
@@ -26,7 +26,7 @@
 import java.security.spec.KeySpec;
 
 /**
- * @com.intel.drl.spec_ref
+ * The key specification for a Diffie-Hellman private key.
  */
 public class DHPrivateKeySpec implements KeySpec {
 
@@ -35,7 +35,16 @@
     private final BigInteger g;
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>DHPrivateKeySpec</code> with the specified <i>private
+     * value</i> <code>x</code>. <i>prime modulus</i> <code>p</code> and <i>base
+     * generator</i> <code>g</code>.
+     *
+     * @param x
+     *            the private value.
+     * @param p
+     *            the prime modulus.
+     * @param g
+     *            the base generator.
      */
     public DHPrivateKeySpec(BigInteger x, BigInteger p, BigInteger g) {
         this.x = x;
@@ -44,21 +53,27 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the <i>private value</i> <code>x</code>.
+     *
+     * @return the private value <code>x</code>.
      */
     public BigInteger getX() {
         return x;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the <i>prime modulus</i> <code>p</code>.
+     *
+     * @return the prime modulus <code>p</code>.
      */
     public BigInteger getP() {
         return p;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the <i>base generator</i> <code>g</code>.
+     *
+     * @return the base generator <code>g</code>.
      */
     public BigInteger getG() {
         return g;

Modified: harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DHPublicKeySpec.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DHPublicKeySpec.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DHPublicKeySpec.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/DHPublicKeySpec.java Sun Apr 26 12:30:01 2009
@@ -26,7 +26,7 @@
 import java.security.spec.KeySpec;
 
 /**
- * @com.intel.drl.spec_ref
+ * The key specification for a Diffie-Hellman public key.
  */
 public class DHPublicKeySpec implements KeySpec {
 
@@ -35,7 +35,16 @@
     private final BigInteger g;
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>DHPublicKeySpec</code> instance with the specified
+     * <i>public value</i> <code>y</code>, the <i>prime modulus</i>
+     * <code>p</code> and the <i>base generator</i> <code>g</code>.
+     *
+     * @param y
+     *            the public value.
+     * @param p
+     *            the prime modulus.
+     * @param g
+     *            the base generator.
      */
     public DHPublicKeySpec(BigInteger y, BigInteger p, BigInteger g) {
         this.y = y;
@@ -44,21 +53,27 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the <i>public value</i> <code>y</code>.
+     *
+     * @return the public value <code>y</code>.
      */
     public BigInteger getY() {
         return y;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the <i>prime modulus</i> <code>p</code>.
+     *
+     * @return the prime modulus <code>p</code>.
      */
     public BigInteger getP() {
         return p;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the <i>base generator</i> <code>g</code>;
+     *
+     * @return the base generator <code>g</code>;
      */
     public BigInteger getG() {
         return g;

Modified: harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/IvParameterSpec.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/IvParameterSpec.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/IvParameterSpec.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/IvParameterSpec.java Sun Apr 26 12:30:01 2009
@@ -26,14 +26,20 @@
 import org.apache.harmony.crypto.internal.nls.Messages;
 
 /**
- * @com.intel.drl.spec_ref
+ * The algorithm parameter specification for an <i>initialization vector</i>.
  */
 public class IvParameterSpec implements AlgorithmParameterSpec {
 
     private final byte[] iv;
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>IvParameterSpec</code> instance with the bytes from
+     * the specified buffer <i>iv</i> used as <i>initialization vector</i>.
+     *
+     * @param iv
+     *            the buffer used as initialization vector.
+     * @throws NullPointerException
+     *             if the specified buffer is null.
      */
     public IvParameterSpec(byte[] iv) {
         if (iv == null) {
@@ -44,7 +50,22 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>IvParameterSpec</code> instance with <code>len</code>
+     * bytes from the specified buffer <code>iv</code> starting at
+     * <code>offset</code>.
+     *
+     * @param iv
+     *            the buffer used as initialization vector.
+     * @param offset
+     *            the offset to start in the buffer.
+     * @param len
+     *            the length of the data.
+     * @throws IllegalArgumentException
+     *             if the specified buffer is null or <code>offset</code> and
+     *             <code>len</code> do not specify a valid chunk in the
+     *             specified buffer.
+     * @throws ArrayIndexOutOfBoundsException
+     *             if <code>offset</code> or <code>len</code> are negative.
      */
     public IvParameterSpec(byte[] iv, int offset, int len) {
         if ((iv == null) || (iv.length - offset < len)) {
@@ -59,7 +80,9 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns a copy of the <i>initialization vector</i> data.
+     *
+     * @return a copy of the initialization vector data.
      */
     public byte[] getIV() {
         byte[] res = new byte[iv.length];

Modified: harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/OAEPParameterSpec.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/OAEPParameterSpec.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/OAEPParameterSpec.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/OAEPParameterSpec.java Sun Apr 26 12:30:01 2009
@@ -27,7 +27,10 @@
 import javax.crypto.spec.PSource;
 
 /**
- * @com.intel.drl.spec_ref
+ * The algorithm parameter specification for the <i>OAEP Padding</i> algorithm.
+ * <p>
+ * This padding algorithm is defined in the <a
+ * href="http://www.ietf.org/rfc/rfc3447.txt">PKCS #1</a> standard.
  */
 public class OAEPParameterSpec implements AlgorithmParameterSpec {
 
@@ -37,7 +40,14 @@
     private final PSource pSrc;
 
     /**
-     * @com.intel.drl.spec_ref
+     * The algorithm parameter instance with default values.
+     * <p>
+     * It uses the following parameters:
+     * <ul><li>message digest : <code>"SHA-1"</code></li>
+     * <li>mask generation function (<i>mgf</i>) : <code>"MGF1"</code></li>
+     * <li>parameters for the <i>mgf</i> : "SHA-1" {@link MGF1ParameterSpec#SHA1}</li>
+     * <li>the source of the label <code>L</code>: {@link PSource.PSpecified#DEFAULT}</li>
+     * </ul>
      */
     public static final OAEPParameterSpec DEFAULT = new OAEPParameterSpec();
 
@@ -49,7 +59,23 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>OAEPParameterSpec</code> instance with the specified
+     * <i>message digest</i> algorithm name, <i>mask generation function</i>
+     * (<i>mgf</i>) algorithm name, <i>parameters</i> for the <i>mgf</i>
+     * algorithm and the <i>source of the label <code>L</code></i>.
+     *
+     * @param mdName
+     *            the message digest algorithm name.
+     * @param mgfName
+     *            the mask generation function algorithm name.
+     * @param mgfSpec
+     *            the algorithm parameter specification for the mask generation
+     *            function algorithm.
+     * @param pSrc
+     *            the source of the label <code>L</code>.
+     * @throws NullPointerException
+     *             if one of <code>mdName</code>, <code>mgfName</code> or
+     *             <code>pSrc</code> is null.
      */
     public OAEPParameterSpec(String mdName, String mgfName,
                                 AlgorithmParameterSpec mgfSpec, PSource pSrc) {
@@ -63,28 +89,38 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the algorithm name of the <i>message digest</i>.
+     *
+     * @return the algorithm name of the message digest.
      */
     public String getDigestAlgorithm() {
         return mdName;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the algorithm name of the <i>mask generation function</i>.
+     *
+     * @return the algorithm name of the mask generation function.
      */
     public String getMGFAlgorithm() {
         return mgfName;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the algorithm parameter specification for the mask generation
+     * function algorithm.
+     *
+     * @return the algorithm parameter specification for the mask generation
+     *         function algorithm.
      */
     public AlgorithmParameterSpec getMGFParameters() {
         return mgfSpec;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the source of the label <code>L</code>.
+     *
+     * @return the source of the label <code>L</code>.
      */
     public PSource getPSource() {
         return pSrc;

Modified: harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/PBEKeySpec.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/PBEKeySpec.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/PBEKeySpec.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/PBEKeySpec.java Sun Apr 26 12:30:01 2009
@@ -28,7 +28,10 @@
 import org.apache.harmony.crypto.internal.nls.Messages;
 
 /**
- * @com.intel.drl.spec_ref
+ * The key specification for a <i>password based encryption</i> key.
+ * <p>
+ * Password based encryption is described in <a
+ * href="http://www.ietf.org/rfc/rfc2898.txt">PKCS #5</a>.
  */
 public class PBEKeySpec implements KeySpec {
 
@@ -38,7 +41,10 @@
     private final int keyLength;
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>PBEKeySpec</code> with the specified password.
+     *
+     * @param password
+     *            the password.
      */
     public PBEKeySpec(char[] password) {
         if (password == null) {
@@ -53,7 +59,22 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>PBEKeySpec</code> with the specified password, salt,
+     * iteration count and the desired length of the derived key.
+     *
+     * @param password
+     *            the password.
+     * @param salt
+     *            the salt.
+     * @param iterationCount
+     *            the iteration count.
+     * @param keyLength
+     *            the desired key length of the derived key,
+     * @throws NullPointerException
+     *             if the salt is null.
+     * @throws IllegalArgumentException
+     *             if the salt is empty, iteration count is zero or negative or
+     *             the key length is zero or negative.
      */
     public PBEKeySpec(char[] password, byte[] salt, int iterationCount,
                       int keyLength) {
@@ -84,7 +105,19 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>PBEKeySpec</code> with the specified password, salt
+     * and iteration count.
+     *
+     * @param password
+     *            the password.
+     * @param salt
+     *            the salt.
+     * @param iterationCount
+     *            the iteration count.
+     * @throws NullPointerException
+     *             if salt is null.
+     * @throws IllegalArgumentException
+     *             if the salt is empty or iteration count is zero or negative.
      */
     public PBEKeySpec(char[] password, byte[] salt, int iterationCount) {
         if (salt == null) {
@@ -111,7 +144,7 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Clears the password by overwriting it.
      */
     public final void clearPassword() {
         Arrays.fill(password, '?');
@@ -119,7 +152,11 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns a copy of the password of this key specification.
+     *
+     * @return a copy of the password of this key specification.
+     * @throws IllegalStateException
+     *             if the password has been cleared before.
      */
     public final char[] getPassword() {
         if (password == null) {
@@ -131,7 +168,10 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns a copy of the salt of this key specification.
+     *
+     * @return a copy of the salt of this key specification or null if none is
+     *         specified.
      */
     public final byte[] getSalt() {
         if (salt == null) {
@@ -143,14 +183,18 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the iteration count of this key specification.
+     *
+     * @return the iteration count of this key specification.
      */
     public final int getIterationCount() {
         return iterationCount;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the desired key length of the derived key.
+     *
+     * @return the desired key length of the derived key.
      */
     public final int getKeyLength() {
         return keyLength;

Modified: harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/PBEParameterSpec.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/PBEParameterSpec.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/PBEParameterSpec.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/PBEParameterSpec.java Sun Apr 26 12:30:01 2009
@@ -27,7 +27,12 @@
 import org.apache.harmony.crypto.internal.nls.Messages;
 
 /**
- * @com.intel.drl.spec_ref
+ * The algorithm parameter specification for a <i>password based encryption</i>
+ * algorithm.
+ * <p>
+ * Password based encryption is described in <a
+ * href="http://www.ietf.org/rfc/rfc2898.txt">PKCS #5</a>.
+ *
  */
 public class PBEParameterSpec implements AlgorithmParameterSpec {
 
@@ -35,7 +40,15 @@
     private final int iterationCount;
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>PBEParameterSpec</code> with the specified salt and
+     * iteration count.
+     *
+     * @param salt
+     *            the salt.
+     * @param iterationCount
+     *            the iteration count.
+     * @throws NullPointerException
+     *             if salt is null.
      */
     public PBEParameterSpec(byte[] salt, int iterationCount) {
         if (salt == null) {
@@ -47,7 +60,9 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns a copy to the salt.
+     *
+     * @return a copy to the salt.
      */
     public byte[] getSalt() {
         byte[] result = new byte[salt.length];
@@ -56,7 +71,9 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the iteration count.
+     *
+     * @return the iteration count.
      */
     public int getIterationCount() {
         return iterationCount;

Modified: harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/PSource.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/PSource.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/PSource.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/PSource.java Sun Apr 26 12:30:01 2009
@@ -25,7 +25,8 @@
 import org.apache.harmony.crypto.internal.nls.Messages;
 
 /**
- * @com.intel.drl.spec_ref
+ * The source of the label <code>L</code> as specified in <a
+ * href="http://www.ietf.org/rfc/rfc3447.txt"> PKCS #1</a>.
  */
 public class PSource {
 
@@ -34,7 +35,13 @@
     private PSource() {}
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>PSource</code> instance with the specified source
+     * algorithm identifier.
+     *
+     * @param pSrcName
+     *            the source algorithm identifier.
+     * @throws NullPointerException
+     *             if pSrcName is null.
      */
     protected PSource(String pSrcName) {
         if (pSrcName == null) {
@@ -44,21 +51,25 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the source algorithm identifier.
+     *
+     * @return the source algorithm identifier.
      */
     public String getAlgorithm() {
         return pSrcName;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * The explicit specification of the parameter <code>P</code> used in the
+     * source algorithm.
      */
     public static final class PSpecified extends PSource {
 
         private final byte[] p;
 
         /**
-         * @com.intel.drl.spec_ref
+         * The instance of <code>PSpecified</code> with the default value
+         * <code>byte[0]</code> for <code>P</code>
          */
         public static final PSpecified DEFAULT = new PSpecified();
 
@@ -68,7 +79,13 @@
         }
 
         /**
-         * @com.intel.drl.spec_ref
+         * Creates a new instance of <code>PSpecified</code> with the specified
+         * parameter <code>P</code>.
+         *
+         * @param p
+         *            the parameter <code>P</code>.
+         * @throws NullPointerException
+         *             if <code>p</code> is null.
          */
         public PSpecified(byte[] p) {
             super("PSpecified"); //$NON-NLS-1$
@@ -82,7 +99,9 @@
         }
 
         /**
-         * @com.intel.drl.spec_ref
+         * Returns a copy of the value of the parameter <code>P</code>.
+         *
+         * @return a copy of the value of the parameter <code>P</code>
          */
         public byte[] getValue() {
             byte[] result = new byte[p.length];

Modified: harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/RC2ParameterSpec.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/RC2ParameterSpec.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/RC2ParameterSpec.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/RC2ParameterSpec.java Sun Apr 26 12:30:01 2009
@@ -28,7 +28,8 @@
 import org.apache.harmony.crypto.internal.nls.Messages;
 
 /**
- * @com.intel.drl.spec_ref
+ * The algorithm parameter specification for the <a
+ * href="http://www.ietf.org/rfc/rfc2268.txt">RC2</a> algorithm.
  */
 public class RC2ParameterSpec implements AlgorithmParameterSpec {
 
@@ -36,7 +37,11 @@
     private final byte[] iv;
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>RC2ParameterSpec</code> instance with the specified
+     * effective key length (in bits),
+     *
+     * @param effectiveKeyBits
+     *            the effective key length (in bits).
      */
     public RC2ParameterSpec(int effectiveKeyBits) {
         this.effectiveKeyBits = effectiveKeyBits;
@@ -44,7 +49,18 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>RC2ParameterSpec</code> instance with the specified
+     * effective key length (in bits) and <i>initialization vector</i>.
+     * <p>
+     * The size of the <i>initialization vector</i> must be at least 8 bytes
+     * which are copied to protect them against modification.
+     *
+     * @param effectiveKeyBits
+     *            the effective key length (in bits).
+     * @param iv
+     *            the initialization vector.
+     * @throws IllegalArgumentException
+     *             if the initialization vector is null or shorter than 8 bytes.
      */
     public RC2ParameterSpec(int effectiveKeyBits, byte[] iv) {
         if (iv == null) {
@@ -59,7 +75,22 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>RC2ParameterSpec</code> instance with the specified
+     * effective key length (in bits) and <i>initialization vector<i>.
+     * <p>
+     * The size of the <i>initialization vector</i> starting at
+     * <code>offset</code> must be at least 8 bytes which are copied to protect
+     * them against modification.
+     *
+     * @param effectiveKeyBits
+     *            the effective key length (in bits).
+     * @param iv
+     *            the initialization vector.
+     * @param offset
+     *            the offset in the initialization vector to start at.
+     * @throws IllegalArgumentException
+     *             if the initialization vector is null or starting at
+     *             <code>offset</code> is shorter than 8 bytes.
      */
     public RC2ParameterSpec(int effectiveKeyBits, byte[] iv, int offset) {
         if (iv == null) {
@@ -74,14 +105,18 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the effective key length (in bits).
+     *
+     * @return the effective key length (in bits).
      */
     public int getEffectiveKeyBits() {
         return effectiveKeyBits;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns a copy of the initialization vector.
+     *
+     * @return a copy of the initialization vector, or null if none specified.
      */
     public byte[] getIV() {
         if (iv == null) {
@@ -93,7 +128,13 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Compares the specified object to this <code>RC2ParameterSpec</code>
+     * instance.
+     *
+     * @param obj
+     *            the object to compare.
+     * @return true if the effective key length and the initialization vector of
+     *         both objects are equal, otherwise false.
      */
     @Override
     public boolean equals(Object obj) {
@@ -109,7 +150,9 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the hash code of this <code>RC2ParameterSpec</code> instance.
+     *
+     * @return the hash code.
      */
     @Override
     public int hashCode() {

Modified: harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/RC5ParameterSpec.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/RC5ParameterSpec.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/RC5ParameterSpec.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/RC5ParameterSpec.java Sun Apr 26 12:30:01 2009
@@ -28,7 +28,8 @@
 import org.apache.harmony.crypto.internal.nls.Messages;
 
 /**
- * @com.intel.drl.spec_ref
+ * The algorithm parameter specification for the <a
+ * href="http://www.ietf.org/rfc/rfc2040.txt">RC5</a> algorithm.
  */
 public class RC5ParameterSpec implements AlgorithmParameterSpec {
 
@@ -38,7 +39,15 @@
     private final byte[] iv;
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>RC5ParameterSpec</code> instance with the specified
+     * version, round count an word size (in bits).
+     *
+     * @param version
+     *            the version.
+     * @param rounds
+     *            the round count.
+     * @param wordSize
+     *            the word size (in bits).
      */
     public RC5ParameterSpec(int version, int rounds, int wordSize) {
         this.version = version;
@@ -48,7 +57,25 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>RC5ParameterSpec</code> instance with the specified
+     * version, round count, word size (in bits) and an <i>initialization
+     * vector</i>.
+     * <p>
+     * The size of the <i>initialization vector</i> must be at least
+     * <code>2 * (wordSize / 8)</code> bytes which are copied to protect them
+     * against modification.
+     *
+     * @param version
+     *            the version.
+     * @param rounds
+     *            the round count.
+     * @param wordSize
+     *            the word size (in bits).
+     * @param iv
+     *            the initialization vector.
+     * @throws IllegalArgumentException
+     *             if the initialization vector is null or shorter than <code>2
+     *             * (wordSize / 8)</code>.
      */
     public RC5ParameterSpec(int version, int rounds, int wordSize, byte[] iv) {
         if (iv == null) {
@@ -66,7 +93,29 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>RC5ParameterSpec</code> instance with the specified
+     * version, round count, wordSize (in bits), an <i>initialization vector</i>
+     * and an offset.
+     * <p>
+     * The size of the <i>initialization vector</i> must be at least
+     * <code>offset + (2 * (wordSize / 8))</code> bytes. The bytes starting at
+     * <code>offset</code> are copied to protect them against modification.
+     *
+     * @param version
+     *            the version.
+     * @param rounds
+     *            the round count.
+     * @param wordSize
+     *            the word size (in bits).
+     * @param iv
+     *            the initialization vector.
+     * @param offset
+     *            the offset in the initialization vector.
+     * @throws IllegalArgumentException
+     *             if the initialization vector is null of shorter than
+     *             <code>offset + (2 * (wordSize / 8))</code>.
+     * @throws ArrayIndexOutOfBoundsException
+     *             if <code>offset</code> is negative.
      */
     public RC5ParameterSpec(int version, int rounds,
                                 int wordSize, byte[] iv, int offset) {
@@ -88,28 +137,36 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the version.
+     *
+     * @return the version.
      */
     public int getVersion() {
         return version;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the round count.
+     *
+     * @return the round count.
      */
     public int getRounds() {
         return rounds;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the word size (in bits).
+     *
+     * @return the word size (in bits).
      */
     public int getWordSize() {
         return wordSize;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns a copy of the initialization vector.
+     *
+     * @return a copy of the initialization vector, or null if none specified.
      */
     public byte[] getIV() {
         if (iv == null) {
@@ -121,7 +178,13 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Compares the specified object with this <code>RC5ParameterSpec</code>
+     * instance.
+     *
+     * @param obj
+     *            the object to compare.
+     * @return true if version, round count, word size and initializaion vector
+     *         of both objects are equal, otherwise false.
      */
     @Override
     public boolean equals(Object obj) {
@@ -139,7 +202,9 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the hash code of this <code>RC5ParameterSpec</code> instance.
+     *
+     * @return the hash code.
      */
     @Override
     public int hashCode() {

Modified: harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/SecretKeySpec.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/SecretKeySpec.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/SecretKeySpec.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/crypto/src/main/java/javax/crypto/spec/SecretKeySpec.java Sun Apr 26 12:30:01 2009
@@ -30,7 +30,9 @@
 import org.apache.harmony.crypto.internal.nls.Messages;
 
 /**
- * @com.intel.drl.spec_ref
+ * A key specification for a <code>SecretKey</code> and also a secret key
+ * implementation that is provider-independent. It can be used for raw secret
+ * keys that can be specified as <code>byte[]</code>.
  */
 public class SecretKeySpec implements SecretKey, KeySpec, Serializable {
 
@@ -44,15 +46,24 @@
     private final String format = "RAW"; //$NON-NLS-1$
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>SecretKeySpec</code> for the specified key data and
+     * algorithm name.
+     *
+     * @param key
+     *            the key data.
+     * @param algorithm
+     *            the algorithm name.
+     * @throws IllegalArgumentException
+     *             if the key data or the algorithm name is null or if the key
+     *             data is empty.
      */
     public SecretKeySpec(byte[] key, String algorithm) {
-    	if (key == null) {
-    		throw new IllegalArgumentException(Messages.getString("crypto.05")); //$NON-NLS-1$
-    	}
-    	if (key.length == 0) {
-    		throw new IllegalArgumentException(Messages.getString("crypto.35")); //$NON-NLS-1$
-    	}
+        if (key == null) {
+            throw new IllegalArgumentException(Messages.getString("crypto.05")); //$NON-NLS-1$
+        }
+        if (key.length == 0) {
+            throw new IllegalArgumentException(Messages.getString("crypto.35")); //$NON-NLS-1$
+        }
         if (algorithm == null) {
             throw new IllegalArgumentException(Messages.getString("crypto.02")); //$NON-NLS-1$
         }
@@ -63,21 +74,38 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Creates a new <code>SecretKeySpec</code> for the key data from the
+     * specified buffer <code>key</code> starting at <code>offset</code> with
+     * length <code>len</code> and the specified <code>algorithm</code> name.
+     *
+     * @param key
+     *            the key data.
+     * @param offset
+     *            the offset.
+     * @param len
+     *            the size of the key data.
+     * @param algorithm
+     *            the algorithm name.
+     * @throws IllegalArgumentException
+     *             if the key data or the algorithm name is null, the key data
+     *             is empty or <code>offset</code> and <code>len</code> do not
+     *             specify a valid chunk in the buffer <code>key</code>.
+     * @throws ArrayIndexOutOfBoundsException
+     *             if <code>offset</code> or <code>len</code> is negative.
      */
     public SecretKeySpec(byte[] key, int offset, int len, String algorithm) {
-    	if (key == null) {
-    		throw new IllegalArgumentException(Messages.getString("crypto.05")); //$NON-NLS-1$
-    	}
-    	if (key.length == 0) {
-    		throw new IllegalArgumentException(Messages.getString("crypto.35")); //$NON-NLS-1$
-    	}
+        if (key == null) {
+            throw new IllegalArgumentException(Messages.getString("crypto.05")); //$NON-NLS-1$
+        }
+        if (key.length == 0) {
+            throw new IllegalArgumentException(Messages.getString("crypto.35")); //$NON-NLS-1$
+        }
         if (len < 0) {
             throw new ArrayIndexOutOfBoundsException(Messages.getString("crypto.36")); //$NON-NLS-1$
         }
-    	if ((key.length - offset < len)) {
-    		throw new IllegalArgumentException(Messages.getString("crypto.37")); //$NON-NLS-1$
-    	}
+        if ((key.length - offset < len)) {
+            throw new IllegalArgumentException(Messages.getString("crypto.37")); //$NON-NLS-1$
+        }
         if (algorithm == null) {
             throw new IllegalArgumentException(Messages.getString("crypto.02")); //$NON-NLS-1$
         }
@@ -87,21 +115,27 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the algorithm name.
+     *
+     * @return the algorithm name.
      */
     public String getAlgorithm() {
         return algorithm;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the name of the format used to encode the key.
+     *
+     * @return the format name "RAW".
      */
     public String getFormat() {
         return format;
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the encoded form of this secret key.
+     *
+     * @return the encoded form of this secret key.
      */
     public byte[] getEncoded() {
         byte[] result = new byte[key.length];
@@ -110,7 +144,9 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Returns the hash code of this <code>SecretKeySpec</code> object.
+     *
+     * @return the hash code.
      */
     @Override
     public int hashCode() {
@@ -122,7 +158,13 @@
     }
 
     /**
-     * @com.intel.drl.spec_ref
+     * Compares the specified object with this <code>SecretKeySpec</code>
+     * instance.
+     *
+     * @param obj
+     *            the object to compare.
+     * @return true if the algorithm name and key of both object are equal,
+     *         otherwise false.
      */
     @Override
     public boolean equals(Object obj) {

Modified: harmony/enhanced/classlib/branches/java6/modules/lang-management/src/main/java/java/lang/management/MemoryNotificationInfo.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/lang-management/src/main/java/java/lang/management/MemoryNotificationInfo.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/lang-management/src/main/java/java/lang/management/MemoryNotificationInfo.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/lang-management/src/main/java/java/lang/management/MemoryNotificationInfo.java Sun Apr 26 12:30:01 2009
@@ -37,11 +37,14 @@
      * </p>
      * 
      * @param cd The CompositeDate object to retrieve data from.
-     * @return A MemoryNotificationInfo instance.
+     * @return A MemoryNotificationInfo instance or {@code null} if {@code cd} is {@code null}
      * @throws IllegalArgumentException if <code>cd</code> does not contain
      *         MemoryUsage data.
      */
     public static MemoryNotificationInfo from(CompositeData cd) {
+        if (cd == null) {
+            return null;
+        }
         String poolName = (String) cd.get("poolName");
         MemoryUsage usage = MemoryUsage.from((CompositeData) cd.get("usage"));
         long count = ((Long) cd.get("count")).longValue();
@@ -62,9 +65,19 @@
      * @param poolName The memory pool name.
      * @param usage The memory usage snapshot.
      * @param count The threshold crossing count.
+     * 
+     * @throws NullPointerException if {@code poolName} or {@code usage} is {@code null}
      */
     public MemoryNotificationInfo(String poolName, MemoryUsage usage, long count) {
         super();
+        if (poolName == null) {
+            throw new NullPointerException("pooName is null"); //$NON-NLS-1$
+        }
+        
+        if (usage == null) {
+            throw new NullPointerException("usage is null"); //$NON-NLS-1$
+        }
+        
         this.poolName = poolName;
         this.usage = usage;
         this.count = count;

Modified: harmony/enhanced/classlib/branches/java6/modules/lang-management/src/main/java/java/lang/management/MemoryUsage.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/lang-management/src/main/java/java/lang/management/MemoryUsage.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/lang-management/src/main/java/java/lang/management/MemoryUsage.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/lang-management/src/main/java/java/lang/management/MemoryUsage.java Sun Apr 26 12:30:01 2009
@@ -39,6 +39,9 @@
      *         MemoryUsage data.
      */
     public static MemoryUsage from(CompositeData cd) {
+        if (cd == null) {
+            return null;
+        }
         try {
             long init = ((Long) cd.get("init")).longValue();
             long used = ((Long) cd.get("used")).longValue();

Modified: harmony/enhanced/classlib/branches/java6/modules/lang-management/src/test/api/java/org/apache/harmony/lang/management/tests/java/lang/management/MemoryUsageTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/lang-management/src/test/api/java/org/apache/harmony/lang/management/tests/java/lang/management/MemoryUsageTest.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/lang-management/src/test/api/java/org/apache/harmony/lang/management/tests/java/lang/management/MemoryUsageTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/lang-management/src/test/api/java/org/apache/harmony/lang/management/tests/java/lang/management/MemoryUsageTest.java Sun Apr 26 12:30:01 2009
@@ -90,6 +90,10 @@
         }
     }
 
+    public void test_from_NullCompositeData() {
+        assertNull(MemoryUsage.from(null));
+    }
+
     public void testConstructor() {
         try {
             new MemoryUsage(-2, 2048, 4096, 8128);

Modified: harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/ConsoleHandler.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/ConsoleHandler.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/ConsoleHandler.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/ConsoleHandler.java Sun Apr 26 12:30:01 2009
@@ -19,42 +19,39 @@
 
 /**
  * A handler that writes log messages to the standard output stream
- * <code>System.err</code>.
+ * {@code System.err}.
  * <p>
  * This handler reads the following properties from the log manager to
  * initialize itself:
  * <ul>
  * <li>java.util.logging.ConsoleHandler.level specifies the logging level,
- * defaults to <code>Level.INFO</code> if this property is not found or has an
- * invalid value;
+ * defaults to {@code Level.INFO} if this property is not found or has an
+ * invalid value.
  * <li>java.util.logging.ConsoleHandler.filter specifies the name of the filter
- * class to be associated with this handler, defaults to <code>null</code> if
- * this property is not found or has an invalid value;
+ * class to be associated with this handler, defaults to {@code null} if this
+ * property is not found or has an invalid value.
  * <li>java.util.logging.ConsoleHandler.formatter specifies the name of the
  * formatter class to be associated with this handler, defaults to
- * <code>java.util.logging.SimpleFormatter</code> if this property is not
- * found or has an invalid value;
+ * {@code java.util.logging.SimpleFormatter} if this property is not found or
+ * has an invalid value.
  * <li>java.util.logging.ConsoleHandler.encoding specifies the encoding this
- * handler will use to encode log messages, defaults to <code>null</code> if
- * this property is not found or has an invalid value.
+ * handler will use to encode log messages, defaults to {@code null} if this
+ * property is not found or has an invalid value.
  * </ul>
- * </p>
  * <p>
  * This class is not thread-safe.
- * </p>
  */
 public class ConsoleHandler extends StreamHandler {
 
     /**
-     * Constructs a <code>ConsoleHandler</code> object.
+     * Constructs a {@code ConsoleHandler} object.
      */
     public ConsoleHandler() {
         super(System.err);
     }
 
     /**
-     * Closes this handler. The <code>System.err</code> is flushed but not
-     * closed.
+     * Closes this handler. The {@code System.err} is flushed but not closed.
      */
     @Override
     public void close() {
@@ -65,7 +62,7 @@
      * Logs a record if necessary. A flush operation will be done.
      * 
      * @param record
-     *            the log record to be logged
+     *            the log record to be logged.
      */
     @Override
     public void publish(LogRecord record) {

Modified: harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/ErrorManager.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/ErrorManager.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/ErrorManager.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/ErrorManager.java Sun Apr 26 12:30:01 2009
@@ -21,9 +21,9 @@
 
 /**
  * An error reporting facility for {@link Handler} implementations to record any
- * error that may happen during logging. <code>Handlers</code> should report
- * errors to an <code>ErrorManager</code>, instead of throwing exceptions,
- * which would interfere with the log issuer's execution.
+ * error that may happen during logging. {@code Handlers} should report errors
+ * to an {@code ErrorManager}, instead of throwing exceptions, which would
+ * interfere with the log issuer's execution.
  */
 public class ErrorManager {
 
@@ -70,7 +70,7 @@
     private boolean called;
 
     /**
-     * Constructs an instance of <code>ErrorManager</code>.
+     * Constructs an instance of {@code ErrorManager}.
      */
     public ErrorManager() {
         super();
@@ -83,13 +83,13 @@
      * should override this method.
      * 
      * @param message
-     *            The error message, which may be <code>null</code>.
+     *            the error message, which may be {@code null}.
      * @param exception
-     *            The exception associated with the error, which may be
-     *            <code>null</code>.
+     *            the exception associated with the error, which may be
+     *            {@code null}.
      * @param errorCode
-     *            The error code that identifies the type of error; see the
-     *            constant fields on this class.
+     *            the error code that identifies the type of error; see the
+     *            constant fields of this class for possible values.
      */
     public void error(String message, Exception exception, int errorCode) {
         synchronized (this) {

Modified: harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/FileHandler.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/FileHandler.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/FileHandler.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/FileHandler.java Sun Apr 26 12:30:01 2009
@@ -32,75 +32,68 @@
 import org.apache.harmony.logging.internal.nls.Messages;
 
 /**
- * A <code>FileHandler</code> is a Handler that writes logging events to one
- * or more files.
- * 
+ * A {@code FileHandler} writes logging records into a specified file or a
+ * rotating set of files.
  * <p>
- * If multiple files are used, when a given amount of data has been written to
- * one file, this file is closed, and the next file is opened. The names of
- * these files are generated by the given name pattern, see below for details.
- * When all the files have all been filled the Handler returns to the first one
- * and goes through the set again.
- * </p>
- * 
+ * When a set of files is used and a given amount of data has been written to
+ * one file, then this file is closed and another file is opened. The name of
+ * these files are generated by given name pattern, see below for details.
+ * When the files have all been filled the Handler returns to the first and goes
+ * through the set again.
  * <p>
- * <code>FileHandler</code> defines the following configuration properties,
- * which are read by the <code>LogManager</code> on initialization. If the
- * properties have not been specified then defaults will be used. The properties
- * and defaults are as follows:
+ * By default, the I/O buffering mechanism is enabled, but when each log record
+ * is complete, it is flushed out.
+ * <p>
+ * {@code XMLFormatter} is the default formatter for {@code FileHandler}.
+ * <p>
+ * {@code FileHandler} reads the following {@code LogManager} properties for
+ * initialization; if a property is not defined or has an invalid value, a
+ * default value is used.
  * <ul>
- * <li>java.util.logging.FileHandler.append - If true then this
- * <code>FileHandler</code> appends to a file's existing content, if false it
- * overwrites it. Default is false.</li>
- * <li>java.util.logging.FileHandler.count - the number of output files to
- * rotate. Default is 1.</li>
- * <li>java.util.logging.FileHandler.filter - the name of the
- * <code>Filter</code> class. No <code>Filter</code> is used by default.</li>
- * <li>java.util.logging.FileHandler.formatter - the name of the
- * <code>Formatter</code> class. Default is
- * <code>java.util.logging.XMLFormatter</code>.</li>
- * <li>java.util.logging.FileHandler.encoding - the name of the character set
- * encoding. Default is the encoding used by the current platform.</li>
- * <li>java.util.logging.FileHandler.level - the log level for this
- * <code>Handler</code>. Default is <code>Level.ALL</code>.</li>
- * <li>java.util.logging.FileHandler.limit - the limit at which no more bytes
- * should be written to the current file. Default is no limit.</li>
- * <li>java.util.logging.FileHandler.pattern - the pattern for the name of log
- * files. Default is "%h/java%u.log".</li>
+ * <li>java.util.logging.FileHandler.append specifies whether this
+ * {@code FileHandler} should append onto existing files, defaults to
+ * {@code false}.</li>
+ * <li>java.util.logging.FileHandler.count specifies how many output files to
+ * rotate, defaults to 1.</li>
+ * <li>java.util.logging.FileHandler.filter specifies the {@code Filter} class
+ * name, defaults to no {@code Filter}.</li>
+ * <li>java.util.logging.FileHandler.formatter specifies the {@code Formatter}
+ * class, defaults to {@code java.util.logging.XMLFormatter}.</li>
+ * <li>java.util.logging.FileHandler.encoding specifies the character set
+ * encoding name, defaults to the default platform encoding.</li>
+ * <li>java.util.logging.FileHandler.level specifies the level for this
+ * {@code Handler}, defaults to {@code Level.ALL}.</li>
+ * <li>java.util.logging.FileHandler.limit specifies the maximum number of
+ * bytes to write to any one file, defaults to zero, which means no limit.</li>
+ * <li>java.util.logging.FileHandler.pattern specifies name pattern for the
+ * output files. See below for details. Defaults to "%h/java%u.log".</li>
  * </ul>
- * </p>
- * 
  * <p>
- * The name pattern is a String that can contain some of the following
- * sub-strings, which will be replaced to generate the output file names:
+ * Name pattern is a string that may include some special substrings, which will
+ * be replaced to generate output files:
  * <ul>
- * <li>"/" represents the local path separator</li>
- * <li>"%g" represents the generation number used to enumerate log files</li>
+ * <li>"/" represents the local pathname separator</li>
+ * <li>"%g" represents the generation number to distinguish rotated logs</li>
  * <li>"%h" represents the home directory of the current user, which is
- * specified by the "user.home" system property</li>
+ * specified by "user.home" system property</li>
  * <li>"%t" represents the system's temporary directory</li>
- * <li>"%u" represents a unique number added to the file name if the original
- * file required is in use</li>
+ * <li>"%u" represents a unique number to resolve conflicts</li>
  * <li>"%%" represents the percent sign character '%'</li>
  * </ul>
- * </p>
- * 
  * <p>
- * The generation numbers, denoted by "%g" in the filename pattern will be
- * created in ascending numerical order from 0, i.e. 0,1,2,3... If "%g" was not
- * present in the pattern and more than one file is being used then a dot and a
- * generation number is appended to the filename at the end. This is equivalent
- * to appending ".%g" to the pattern.
- * </p>
- * 
+ * Normally, the generation numbers are not larger than the given file count and
+ * follow the sequence 0, 1, 2.... If the file count is larger than one, but the
+ * generation field("%g") has not been specified in the pattern, then the
+ * generation number after a dot will be added to the end of the file name.
  * <p>
- * The unique identifier, denoted by "%u" in the filename pattern will always be
- * 0 unless the <code>FileHandler</code> is unable to open the file. In that
- * case 1 is tried, then 2, and so on until a file is found that can be opened.
- * If "%u" was not present in the pattern but a unique number is required then a
- * dot and a unique number is added to the end of the filename, equivalent to
- * appending ".%u" to the pattern.
- * </p>
+ * The "%u" unique field is used to avoid conflicts and is set to 0 at first. If
+ * one {@code FileHandler} tries to open the filename which is currently in use
+ * by another process, it will repeatedly increment the unique number field and
+ * try again. If the "%u" component has not been included in the file name
+ * pattern and some contention on a file does occur, then a unique numerical
+ * value will be added to the end of the filename in question immediately to the
+ * right of a dot. The generation of unique IDs for avoiding conflicts is only
+ * guaranteed to work reliably when using a local disk file system.
  */
 public class FileHandler extends StreamHandler {
 
@@ -149,17 +142,17 @@
     int uniqueID = -1;
 
     /**
-     * Construct a <code>FileHandler</code> using <code>LogManager</code>
-     * properties or their default value
+     * Construct a {@code FileHandler} using {@code LogManager} properties or
+     * their default value.
      * 
      * @throws IOException
-     *             if any IO exception happened
+     *             if any I/O error occurs.
      * @throws SecurityException
-     *             if security manager exists and it determines that caller does
-     *             not have the required permissions to control this handler,
-     *             required permissions include
-     *             <code>LogPermission("control")</code> and other permission
-     *             like <code>FilePermission("write")</code>, etc.
+     *             if a security manager exists and it determines that the
+     *             caller does not have the required permissions to control this
+     *             handler; required permissions include
+     *             {@code LogPermission("control")},
+     *             {@code FilePermission("write")} etc.
      */
     public FileHandler() throws IOException {
         init(null, null, null, null);
@@ -386,27 +379,26 @@
     }
 
     /**
-     * Construct a <code>FileHandler</code>, the given name pattern is used
-     * as output filename, the file limit is set to zero(no limit), and the file
-     * count is set to one, other configuration using <code>LogManager</code>
-     * properties or their default value
-     * 
-     * This handler write to only one file and no amount limit.
-     * 
+     * Constructs a new {@code FileHandler}. The given name pattern is used as
+     * output filename, the file limit is set to zero (no limit), the file count
+     * is set to one; the remaining configuration is done using
+     * {@code LogManager} properties or their default values. This handler
+     * writes to only one file with no size limit.
+     *
      * @param pattern
-     *            the name pattern of output file
+     *            the name pattern for the output file.
      * @throws IOException
-     *             if any IO exception happened
+     *             if any I/O error occurs.
      * @throws SecurityException
-     *             if security manager exists and it determines that caller does
-     *             not have the required permissions to control this handler,
-     *             required permissions include
-     *             <code>LogPermission("control")</code> and other permission
-     *             like <code>FilePermission("write")</code>, etc.
-     * @throws NullPointerException
-     *             if the pattern is <code>null</code>.
+     *             if a security manager exists and it determines that the
+     *             caller does not have the required permissions to control this
+     *             handler; required permissions include
+     *             {@code LogPermission("control")},
+     *             {@code FilePermission("write")} etc.
      * @throws IllegalArgumentException
      *             if the pattern is empty.
+     * @throws NullPointerException
+     *             if the pattern is {@code null}.
      */
     public FileHandler(String pattern) throws IOException {
         if (pattern.equals("")) { //$NON-NLS-1$
@@ -418,30 +410,29 @@
     }
 
     /**
-     * Construct a <code>FileHandler</code>, the given name pattern is used
-     * as output filename, the file limit is set to zero(i.e. no limit applies),
-     * the file count is initialized to one, and the value of
-     * <code>append</code> becomes the new instance's append mode. Other
-     * configuration is done using <code>LogManager</code> properties.
-     * 
-     * This handler write to only one file and no amount limit.
-     * 
+     * Construct a new {@code FileHandler}. The given name pattern is used as
+     * output filename, the file limit is set to zero (no limit), the file count
+     * is initialized to one and the value of {@code append} becomes the new
+     * instance's append mode. The remaining configuration is done using
+     * {@code LogManager} properties. This handler writes to only one file
+     * with no size limit.
+     *
      * @param pattern
-     *            the name pattern of output file
+     *            the name pattern for the output file.
      * @param append
-     *            the append mode
+     *            the append mode.
      * @throws IOException
-     *             if any IO exception happened
+     *             if any I/O error occurs.
      * @throws SecurityException
-     *             if security manager exists and it determines that caller does
-     *             not have the required permissions to control this handler,
-     *             required permissions include
-     *             <code>LogPermission("control")</code> and other permission
-     *             like <code>FilePermission("write")</code>, etc.
-     * @throws NullPointerException
-     *             if the pattern is <code>null</code>.
+     *             if a security manager exists and it determines that the
+     *             caller does not have the required permissions to control this
+     *             handler; required permissions include
+     *             {@code LogPermission("control")},
+     *             {@code FilePermission("write")} etc.
      * @throws IllegalArgumentException
-     *             if the pattern is empty.
+     *             if {@code pattern} is empty.
+     * @throws NullPointerException
+     *             if {@code pattern} is {@code null}.
      */
     public FileHandler(String pattern, boolean append) throws IOException {
         if (pattern.equals("")) { //$NON-NLS-1$
@@ -453,34 +444,33 @@
     }
 
     /**
-     * Construct a <code>FileHandler</code>, the given name pattern is used
-     * as output filename, the file limit is set to given limit argument, and
-     * the file count is set to given count argument, other configuration using
-     * <code>LogManager</code> properties or their default value
-     * 
-     * This handler is configured to write to a rotating set of count files,
-     * when the limit of bytes has been written to one output file, another file
-     * will be opened instead.
-     * 
+     * Construct a new {@code FileHandler}. The given name pattern is used as
+     * output filename, the maximum file size is set to {@code limit} and the
+     * file count is initialized to {@code count}. The remaining configuration
+     * is done using {@code LogManager} properties. This handler is configured
+     * to write to a rotating set of count files, when the limit of bytes has
+     * been written to one output file, another file will be opened instead.
+     *
      * @param pattern
-     *            the name pattern of output file
+     *            the name pattern for the output file.
      * @param limit
-     *            the data amount limit in bytes of one output file, cannot less
-     *            than one
+     *            the data amount limit in bytes of one output file, can not be
+     *            negative.
      * @param count
-     *            the maximum number of files can be used, cannot less than one
+     *            the maximum number of files to use, can not be less than one.
      * @throws IOException
-     *             if any IO exception happened
+     *             if any I/O error occurs.
      * @throws SecurityException
-     *             if security manager exists and it determines that caller does
-     *             not have the required permissions to control this handler,
-     *             required permissions include
-     *             <code>LogPermission("control")</code> and other permission
-     *             like <code>FilePermission("write")</code>, etc.
-     * @throws NullPointerException
-     *             if pattern is <code>null</code>.
+     *             if a security manager exists and it determines that the
+     *             caller does not have the required permissions to control this
+     *             handler; required permissions include
+     *             {@code LogPermission("control")},
+     *             {@code FilePermission("write")} etc.
      * @throws IllegalArgumentException
-     *             if count<1, or limit<0
+     *             if {@code pattern} is empty, {@code limit < 0} or
+     *             {@code count < 1}.
+     * @throws NullPointerException
+     *             if {@code pattern} is {@code null}.
      */
     public FileHandler(String pattern, int limit, int count) throws IOException {
         if (pattern.equals("")) { //$NON-NLS-1$
@@ -495,37 +485,36 @@
     }
 
     /**
-     * Construct a <code>FileHandler</code>, the given name pattern is used
-     * as output filename, the file limit is set to given limit argument, the
-     * file count is set to given count argument, and the append mode is set to
-     * given append argument, other configuration using <code>LogManager</code>
-     * properties or their default value
-     * 
-     * This handler is configured to write to a rotating set of count files,
-     * when the limit of bytes has been written to one output file, another file
-     * will be opened instead.
-     * 
+     * Construct a new {@code FileHandler}. The given name pattern is used as
+     * output filename, the maximum file size is set to {@code limit}, the file
+     * count is initialized to {@code count} and the append mode is set to
+     * {@code append}. The remaining configuration is done using
+     * {@code LogManager} properties. This handler is configured to write to a
+     * rotating set of count files, when the limit of bytes has been written to
+     * one output file, another file will be opened instead.
+     *
      * @param pattern
-     *            the name pattern of output file
+     *            the name pattern for the output file.
      * @param limit
-     *            the data amount limit in bytes of one output file, cannot less
-     *            than one
+     *            the data amount limit in bytes of one output file, can not be
+     *            negative.
      * @param count
-     *            the maximum number of files can be used, cannot less than one
+     *            the maximum number of files to use, can not be less than one.
      * @param append
-     *            the append mode
+     *            the append mode.
      * @throws IOException
-     *             if any IO exception happened
+     *             if any I/O error occurs.
      * @throws SecurityException
-     *             if security manager exists and it determines that caller does
-     *             not have the required permissions to control this handler,
-     *             required permissions include
-     *             <code>LogPermission("control")</code> and other permission
-     *             like <code>FilePermission("write")</code>, etc.
-     * @throws NullPointerException
-     *             if pattern is <code>null</code>.
+     *             if a security manager exists and it determines that the
+     *             caller does not have the required permissions to control this
+     *             handler; required permissions include
+     *             {@code LogPermission("control")},
+     *             {@code FilePermission("write")} etc.
      * @throws IllegalArgumentException
-     *             if count<1, or limit<0
+     *             if {@code pattern} is empty, {@code limit < 0} or
+     *             {@code count < 1}.
+     * @throws NullPointerException
+     *             if {@code pattern} is {@code null}.
      */
     public FileHandler(String pattern, int limit, int count, boolean append)
             throws IOException {
@@ -542,14 +531,14 @@
     }
 
     /**
-     * Flush and close all opened files.
+     * Flushes and closes all opened files.
      * 
      * @throws SecurityException
-     *             if security manager exists and it determines that caller does
-     *             not have the required permissions to control this handler,
-     *             required permissions include
-     *             <code>LogPermission("control")</code> and other permission
-     *             like <code>FilePermission("write")</code>, etc.
+     *             if a security manager exists and it determines that the
+     *             caller does not have the required permissions to control this
+     *             handler; required permissions include
+     *             {@code LogPermission("control")},
+     *             {@code FilePermission("write")} etc.
      */
     @Override
     public void close() {
@@ -568,10 +557,10 @@
     }
 
     /**
-     * Publish a <code>LogRecord</code>
+     * Publish a {@code LogRecord}.
      * 
      * @param record
-     *            the log record to be published
+     *            the log record to publish.
      */
     @Override
     public void publish(LogRecord record) {
@@ -588,9 +577,9 @@
     }
 
     /**
-     * This output stream use decorator pattern to add measure feature to
-     * OutputStream which can detect the total size(in bytes) of output, the
-     * initial size can be set
+     * This output stream uses the decorator pattern to add measurement features
+     * to OutputStream which can detect the total size(in bytes) of output, the
+     * initial size can be set.
      */
     static class MeasureOutputStream extends OutputStream {
 

Modified: harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/Filter.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/Filter.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/Filter.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/Filter.java Sun Apr 26 12:30:01 2009
@@ -18,18 +18,18 @@
 package java.util.logging;
 
 /**
- * A Filter provides a mechanism for exercising fine-grained control over what
- * records get logged.
+ * A {@code Filter} provides a mechanism for exercising fine-grained control
+ * over which records get logged.
  */
 public interface Filter {
 
     /**
-     * Checks the {@link LogRecord} to determine if it should be logged.
+     * Checks {@code record} to determine if it should be logged.
      * 
      * @param record
-     *            The {@link LogRecord} to be checked.
-     * @return <code>true</code> if the supplied log record needs to be
-     *         logged, otherwise <code>false</code>
+     *            the {@link LogRecord} to be checked.
+     * @return {@code true} if the supplied log record needs to be logged,
+     *         {@code false} otherwise.
      */
     boolean isLoggable(LogRecord record);
 }

Modified: harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/Formatter.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/Formatter.java?rev=768698&r1=768697&r2=768698&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/Formatter.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/logging/src/main/java/java/util/logging/Formatter.java Sun Apr 26 12:30:01 2009
@@ -21,44 +21,45 @@
 import java.util.ResourceBundle;
 
 /**
- * <code>Formatter</code> objects are used to format <code>LogRecord</code>
- * objects into a string representation. Head and tail strings are sometime used
- * to wrap a set of records. The <code>getHead</code> and <code>getTail</code>
- * methods are presented for this purpose.
+ * {@code Formatter} objects are used to format {@link LogRecord} objects into a
+ * string representation. Head and tail strings are sometimes used to wrap a set
+ * of records. The {@code getHead} and {@code getTail} methods are used for this
+ * purpose.
  */
 public abstract class Formatter {
 
     /**
-     * Constructs a <code>Formatter</code> object.
+     * Constructs a {@code Formatter} object.
      */
     protected Formatter() {
         super();
     }
 
     /**
-     * Formats a <code>LogRecord</code> object into a string representation.
-     * The resulted string is usually localized and includes the message field
-     * of the supplied <code>LogRecord</code> object.
+     * Converts a {@link LogRecord} object into a string representation. The
+     * resulted string is usually localized and includes the message field of
+     * the record.
      * 
      * @param r
-     *            the log record to be formatted into a string
-     * @return the string resulted from the formatting
+     *            the log record to be formatted into a string.
+     * @return the formatted string.
      */
     public abstract String format(LogRecord r);
 
     /**
-     * Formats a <code>LogRecord</code> object into a localized string
-     * representation. This method can be regarded as a convenience for
-     * subclasses of <code>Formatter</code> to use.
+     * Formats a {@code LogRecord} object into a localized string
+     * representation. This is a convenience method for subclasses of {@code
+     * Formatter}.
      * <p>
-     * The message string is firstly localized using the
-     * <code>ResourceBundle</code> object associated with the supplied
-     * <code>LogRecord</code>.
-     * </p>
-     * 
+     * The message string is firstly localized using the {@code ResourceBundle}
+     * object associated with the supplied {@code LogRecord}.
+     * <p>
+     * Notice : if message contains "{0", then java.text.MessageFormat is used.
+     * Otherwise no formatting is performed.
+     *
      * @param r
-     *            the log record to be formatted
-     * @return the string resulted from the formatting
+     *            the log record to be formatted.
+     * @return the string resulted from the formatting.
      */
     public String formatMessage(LogRecord r) {
         String pattern = r.getMessage();
@@ -91,11 +92,12 @@
 
     /**
      * Gets the head string used to wrap a set of log records. This base class
-     * always returns the empty string.
+     * always returns an empty string.
      * 
      * @param h
-     *            the target handler
-     * @return the head string used to wrap a set of log records
+     *            the target handler.
+     * @return the head string used to wrap a set of log records, empty in this
+     *         implementation.
      */
     @SuppressWarnings("unused")
     public String getHead(Handler h) {
@@ -107,8 +109,9 @@
      * always returns the empty string.
      * 
      * @param h
-     *            the target handler
-     * @return the tail string used to wrap a set of log records
+     *            the target handler.
+     * @return the tail string used to wrap a set of log records, empty in this
+     *         implementation.
      */
     @SuppressWarnings("unused")
     public String getTail(Handler h) {