mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Ludovic Poitou
02.45.2010 7bdcb41c0f62967ec42d552f6002577dfb7019ca
sdk/examples/org/opends/sdk/examples/client/asyncsearch/Main.java
@@ -116,7 +116,7 @@
      Main.connection = connection;
      final BindRequest request = Requests.newSimpleBindRequest(userName,
          password);
          password.toCharArray());
      connection.bind(request, new BindResultHandlerImpl());
    }
sdk/examples/org/opends/sdk/examples/client/modify/Main.java
@@ -108,7 +108,7 @@
    try
    {
      connection = factory.getConnection();
      connection.bind(userName, password);
      connection.bind(userName, password.toCharArray());
      // Write the changes.
      final ConnectionChangeRecordWriter writer = new ConnectionChangeRecordWriter(
sdk/examples/org/opends/sdk/examples/client/search/Main.java
@@ -120,7 +120,7 @@
    try
    {
      connection = factory.getConnection();
      connection.bind(userName, password);
      connection.bind(userName, password.toCharArray());
      // Read the entries and output them as LDIF.
      final ConnectionEntryReader reader = connection.search(baseDN, scope,
sdk/src/com/sun/opends/sdk/tools/ApplicationKeyManager.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2008-2009 Sun Microsystems, Inc.
 *      Copyright 2008-2010 Sun Microsystems, Inc.
 *      Portions Copyright 2009 Parametric Technology Corporation (PTC)
 */
@@ -41,8 +41,6 @@
import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.X509KeyManager;
import com.sun.opends.sdk.util.Platform;
/**
@@ -88,13 +86,17 @@
    // Handle IBM specific cases if the user did not specify a algorithm
    // and/or provider.
    if (userSpecifiedAlgo == null && Platform.isVendor("IBM"))
    final String vendor = System.getProperty("java.vendor");
    if (vendor.startsWith("IBM"))
    {
      userSpecifiedAlgo = "IbmX509";
    }
    if (userSpecifiedProvider == null && Platform.isVendor("IBM"))
    {
      userSpecifiedProvider = "IBMJSSE2";
      if (userSpecifiedAlgo == null)
      {
        userSpecifiedAlgo = "IbmX509";
      }
      if (userSpecifiedProvider == null)
      {
        userSpecifiedProvider = "IBMJSSE2";
      }
    }
    // Have some fallbacks to choose the provider and algorith of the
sdk/src/com/sun/opends/sdk/tools/AuthRate.java
@@ -212,7 +212,7 @@
          if(successRecentCount.get() * ((float)invalidCredPercent/100) >
              invalidCredRecentCount.get())
          {
            sbr.setPassword("invalid-password");
            sbr.setPassword("invalid-password".toCharArray());
          }
          else
          {
@@ -244,7 +244,7 @@
          if(successRecentCount.get() * ((float)invalidCredPercent/100) >
              invalidCredRecentCount.get())
          {
            sbr.setPassword("invalid-password");
            sbr.setPassword("invalid-password".toCharArray());
          }
          else
          {
@@ -268,7 +268,7 @@
          if(successRecentCount.get() * ((float)invalidCredPercent/100) >
              invalidCredRecentCount.get())
          {
            sbr.setPassword("invalid-password");
            sbr.setPassword("invalid-password".toCharArray());
          }
          else
          {
@@ -300,7 +300,7 @@
          if(successRecentCount.get() * ((float)invalidCredPercent/100) >
              invalidCredRecentCount.get())
          {
            sbr.setPassword("invalid-password");
            sbr.setPassword("invalid-password".toCharArray());
          }
          else
          {
@@ -346,7 +346,7 @@
          if(successRecentCount.get() * ((float)invalidCredPercent/100) >
              invalidCredRecentCount.get())
          {
            sbr.setPassword("invalid-password");
            sbr.setPassword("invalid-password".toCharArray());
          }
          else
          {
sdk/src/com/sun/opends/sdk/tools/AuthenticatedConnectionFactory.java
@@ -249,7 +249,7 @@
     * method will always throw {@code UnsupportedOperationException}.
     */
    @Override
    public BindResult bind(final String name, final String password)
    public BindResult bind(final String name, final char[] password)
        throws UnsupportedOperationException
    {
      throw new UnsupportedOperationException();
sdk/src/com/sun/opends/sdk/tools/ConnectionFactoryProvider.java
@@ -594,8 +594,8 @@
        if (bindNameArg.isPresent() || bindPasswordFileArg.isPresent()
            || bindPasswordArg.isPresent())
        {
          bindRequest =
              Requests.newSimpleBindRequest(getBindName(), getPassword());
          bindRequest = Requests.newSimpleBindRequest(getBindName(),
              getPassword().toCharArray());
        }
      }
      else if (mech.equals(DigestMD5SASLBindRequest.SASL_MECHANISM_NAME))
@@ -836,13 +836,14 @@
    {
      tm = TrustManagers.checkValidityDates(TrustManagers.checkHostName(
          hostNameArg.getValue(), TrustManagers.checkUsingTrustStore(
              trustStorePathArg.getValue(), getTrustStorePIN(), null)));
              trustStorePathArg.getValue(), getTrustStorePIN().toCharArray(),
              null)));
    }
    else if (getTrustStore() != null)
    {
      tm = TrustManagers.checkValidityDates(TrustManagers.checkHostName(
          hostNameArg.getValue(), TrustManagers.checkUsingTrustStore(
              getTrustStore(), getTrustStorePIN(), null)));
              getTrustStore(), getTrustStorePIN().toCharArray(), null)));
    }
    if (app != null && !app.isQuiet())
sdk/src/com/sun/opends/sdk/tools/LDAPPasswordModify.java
@@ -488,7 +488,7 @@
    if (result.getGeneratedPassword() != null)
    {
      message = INFO_LDAPPWMOD_GENERATED_PASSWORD.get(result
          .getGeneratedPasswordAsString());
          .getGeneratedPassword().toString());
      println(message);
    }
sdk/src/com/sun/opends/sdk/util/Platform.java
File was deleted
sdk/src/com/sun/opends/sdk/util/StringPrepProfile.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2009 Sun Microsystems, Inc.
 *      Copyright 2010 Sun Microsystems, Inc.
 */
package com.sun.opends.sdk.util;
@@ -30,6 +30,8 @@
import static com.sun.opends.sdk.util.Validator.ensureNotNull;
import java.text.Normalizer;
import java.text.Normalizer.Form;
import java.util.HashMap;
import java.util.HashSet;
@@ -492,7 +494,9 @@
        // Map the attribute value.
        map(buffer, sequence.subSequence(i, length), trim, foldCase);
        // Normalize the attribute value.
        normalize(buffer);
        String normalizedForm = Normalizer.normalize(buffer, Form.NFKD);
        buffer.setLength(0);
        buffer.append(normalizedForm);
        break;
      }
      int buffLen = buffer.length();
@@ -575,14 +579,6 @@
  // Normalizes the input string with NFKC Form.
  private static void normalize(final StringBuilder buffer)
  {
    Platform.normalize(buffer);
  }
  // Prevent instantiation.
  private StringPrepProfile()
  {
sdk/src/org/opends/sdk/AbstractConnection.java
@@ -147,7 +147,7 @@
  /**
   * {@inheritDoc}
   */
  public BindResult bind(final String name, final String password)
  public BindResult bind(final String name, final char[] password)
      throws ErrorResultException, InterruptedException,
      LocalizedIllegalArgumentException, UnsupportedOperationException,
      IllegalStateException, NullPointerException
sdk/src/org/opends/sdk/ByteString.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2009 Sun Microsystems, Inc.
 *      Copyright 2009-2010 Sun Microsystems, Inc.
 */
package org.opends.sdk;
@@ -30,6 +30,9 @@
import java.io.IOException;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
import java.util.logging.Level;
import com.sun.opends.sdk.util.StaticUtils;
@@ -144,6 +147,26 @@
  /**
   * Returns a byte string containing the UTF-8 encoded bytes of the provided
   * char array.
   *
   * @param chars
   *          The char array to use.
   * @return A byte string containing the UTF-8 encoded bytes of the provided
   *         char array.
   */
  public static ByteString valueOf(final char[] chars)
  {
    Charset utf8 = Charset.forName("UTF-8");
    ByteBuffer buffer = utf8.encode(CharBuffer.wrap(chars));
    byte[] bytes = new byte[buffer.remaining()];
    buffer.get(bytes);
    return wrap(bytes);
  }
  /**
   * Returns a byte string that wraps the provided byte array.
   * <p>
   * <b>NOTE:</b> this method takes ownership of the provided byte array and,
@@ -613,6 +636,23 @@
  /**
   * Returns the UTF-8 decoded char array representation of this byte sequence.
   *
   * @return The UTF-8 decoded char array representation of this byte sequence.
   */
  public char[] toCharArray()
  {
    Charset utf8 = Charset.forName("UTF-8");
    CharBuffer charBuffer = utf8
        .decode(ByteBuffer.wrap(buffer, offset, length));
    char[] chars = new char[charBuffer.remaining()];
    charBuffer.get(chars);
    return chars;
  }
  /**
   * Returns the integer value represented by the first four bytes of this byte
   * string in big-endian order.
   *
sdk/src/org/opends/sdk/Connection.java
@@ -249,7 +249,7 @@
   * @throws NullPointerException
   *           If {@code name} or {@code password} was {@code null}.
   */
  BindResult bind(String name, String password) throws ErrorResultException,
  BindResult bind(String name, char[] password) throws ErrorResultException,
      InterruptedException, LocalizedIllegalArgumentException,
      UnsupportedOperationException, IllegalStateException,
      NullPointerException;
sdk/src/org/opends/sdk/KeyManagers.java
@@ -267,14 +267,12 @@
   *           If {@code file} was {@code null}.
   */
  public static X509KeyManager useKeyStoreFile(final String file,
      final String password, final String format)
      final char[] password, final String format)
      throws GeneralSecurityException, IOException, NullPointerException
  {
    Validator.ensureNotNull(file);
    final File keyStoreFile = new File(file);
    final char[] keyStorePassword = password != null ? password.toCharArray()
        : null;
    final String keyStoreFormat = format != null ? format : KeyStore
        .getDefaultType();
@@ -284,7 +282,7 @@
    try
    {
      fos = new FileInputStream(keyStoreFile);
      keyStore.load(fos, keyStorePassword);
      keyStore.load(fos, password);
    }
    finally
    {
@@ -303,7 +301,7 @@
    final KeyManagerFactory kmf = KeyManagerFactory
        .getInstance(KeyManagerFactory.getDefaultAlgorithm());
    kmf.init(keyStore, keyStorePassword);
    kmf.init(keyStore, password);
    X509KeyManager x509km = null;
    for (final KeyManager km : kmf.getKeyManagers())
@@ -340,16 +338,14 @@
   * @throws IOException
   *           If the PKCS#11 token could not be found or could not be read.
   */
  public static X509KeyManager usePKCS11Token(final String password)
  public static X509KeyManager usePKCS11Token(final char[] password)
      throws GeneralSecurityException, IOException
  {
    final char[] keyStorePassword = password != null ? password.toCharArray()
        : null;
    final KeyStore keyStore = KeyStore.getInstance("PKCS11");
    keyStore.load(null, keyStorePassword);
    keyStore.load(null, password);
    final KeyManagerFactory kmf = KeyManagerFactory
        .getInstance(KeyManagerFactory.getDefaultAlgorithm());
    kmf.init(keyStore, keyStorePassword);
    kmf.init(keyStore, password);
    X509KeyManager x509km = null;
    for (final KeyManager km : kmf.getKeyManagers())
sdk/src/org/opends/sdk/TrustManagers.java
@@ -442,14 +442,12 @@
   *           If {@code file} was {@code null}.
   */
  public static X509TrustManager checkUsingTrustStore(final String file,
      final String password, final String format)
      final char[] password, final String format)
      throws GeneralSecurityException, IOException, NullPointerException
  {
    Validator.ensureNotNull(file);
    final File trustStoreFile = new File(file);
    final char[] trustStorePassword = password != null ? password.toCharArray()
        : null;
    final String trustStoreFormat = format != null ? format : KeyStore
        .getDefaultType();
@@ -459,7 +457,7 @@
    try
    {
      fos = new FileInputStream(trustStoreFile);
      keyStore.load(fos, trustStorePassword);
      keyStore.load(fos, password);
    }
    finally
    {
sdk/src/org/opends/sdk/requests/CRAMMD5SASLBindRequest.java
@@ -195,7 +195,7 @@
   * @throws NullPointerException
   *           If {@code password} was {@code null}.
   */
  CRAMMD5SASLBindRequest setPassword(String password)
  CRAMMD5SASLBindRequest setPassword(char[] password)
      throws UnsupportedOperationException, NullPointerException;
}
sdk/src/org/opends/sdk/requests/CRAMMD5SASLBindRequestImpl.java
@@ -256,7 +256,7 @@
  /**
   * {@inheritDoc}
   */
  public CRAMMD5SASLBindRequest setPassword(final String password)
  public CRAMMD5SASLBindRequest setPassword(final char[] password)
      throws NullPointerException
  {
    Validator.ensureNotNull(password);
sdk/src/org/opends/sdk/requests/DigestMD5SASLBindRequest.java
@@ -508,7 +508,7 @@
   * @throws NullPointerException
   *           If {@code password} was {@code null}.
   */
  DigestMD5SASLBindRequest setPassword(String password)
  DigestMD5SASLBindRequest setPassword(char[] password)
      throws UnsupportedOperationException, NullPointerException;
sdk/src/org/opends/sdk/requests/DigestMD5SASLBindRequestImpl.java
@@ -596,7 +596,7 @@
   * {@inheritDoc}
   */
  @Override
  public DigestMD5SASLBindRequest setPassword(final String password)
  public DigestMD5SASLBindRequest setPassword(final char[] password)
      throws NullPointerException
  {
    Validator.ensureNotNull(password);
sdk/src/org/opends/sdk/requests/GSSAPISASLBindRequest.java
@@ -457,7 +457,7 @@
   * @throws NullPointerException
   *           If {@code password} was {@code null}.
   */
  GSSAPISASLBindRequest setPassword(String password)
  GSSAPISASLBindRequest setPassword(char[] password)
      throws UnsupportedOperationException, NullPointerException;
sdk/src/org/opends/sdk/requests/GSSAPISASLBindRequestImpl.java
@@ -699,7 +699,7 @@
   * {@inheritDoc}
   */
  @Override
  public GSSAPISASLBindRequest setPassword(final String password)
  public GSSAPISASLBindRequest setPassword(final char[] password)
      throws NullPointerException
  {
    Validator.ensureNotNull(password);
sdk/src/org/opends/sdk/requests/PasswordModifyExtendedRequest.java
@@ -107,17 +107,6 @@
  /**
   * Returns the desired password for the user decoded as a UTF-8 string, or
   * {@code null} if a new password should be generated.
   *
   * @return The desired password for the user decoded as a UTF-8 string, or
   *         {@code null} if a new password should be generated.
   */
  String getNewPasswordAsString();
  /**
   * {@inheritDoc}
   */
  String getOID();
@@ -135,17 +124,6 @@
  /**
   * Returns the current password for the user, if known, decoded as a UTF-8
   * string.
   *
   * @return The current password for the user decoded as a UTF-8 string, or
   *         {@code null} if the password is not known.
   */
  String getOldPasswordAsString();
  /**
   * {@inheritDoc}
   */
  ExtendedResultDecoder<PasswordModifyExtendedResult> getResultDecoder();
@@ -222,7 +200,7 @@
   *           If this password modify extended request does not permit the new
   *           password to be set.
   */
  PasswordModifyExtendedRequest setNewPassword(String newPassword)
  PasswordModifyExtendedRequest setNewPassword(char[] newPassword)
      throws UnsupportedOperationException;
@@ -255,7 +233,7 @@
   *           If this password modify extended request does not permit the old
   *           password to be set.
   */
  PasswordModifyExtendedRequest setOldPassword(String oldPassword)
  PasswordModifyExtendedRequest setOldPassword(char[] oldPassword)
      throws UnsupportedOperationException;
sdk/src/org/opends/sdk/requests/PasswordModifyExtendedRequestImpl.java
@@ -243,16 +243,6 @@
  /**
   * {@inheritDoc}
   */
  public String getNewPasswordAsString()
  {
    return newPassword != null ? newPassword.toString() : null;
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public String getOID()
  {
@@ -274,16 +264,6 @@
  /**
   * {@inheritDoc}
   */
  public String getOldPasswordAsString()
  {
    return oldPassword != null ? oldPassword.toString() : null;
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public ExtendedResultDecoder<PasswordModifyExtendedResult> getResultDecoder()
  {
@@ -375,7 +355,7 @@
  /**
   * {@inheritDoc}
   */
  public PasswordModifyExtendedRequest setNewPassword(final String newPassword)
  public PasswordModifyExtendedRequest setNewPassword(final char[] newPassword)
  {
    this.newPassword = (newPassword != null) ? ByteString.valueOf(newPassword)
        : null;
@@ -399,7 +379,7 @@
  /**
   * {@inheritDoc}
   */
  public PasswordModifyExtendedRequest setOldPassword(final String oldPassword)
  public PasswordModifyExtendedRequest setOldPassword(final char[] oldPassword)
  {
    this.oldPassword = (oldPassword != null) ? ByteString.valueOf(oldPassword)
        : null;
sdk/src/org/opends/sdk/requests/PlainSASLBindRequest.java
@@ -224,6 +224,6 @@
   * @throws NullPointerException
   *           If {@code password} was {@code null}.
   */
  PlainSASLBindRequest setPassword(String password)
  PlainSASLBindRequest setPassword(char[] password)
      throws UnsupportedOperationException, NullPointerException;
}
sdk/src/org/opends/sdk/requests/PlainSASLBindRequestImpl.java
@@ -242,7 +242,7 @@
  /**
   * {@inheritDoc}
   */
  public PlainSASLBindRequest setPassword(final String password)
  public PlainSASLBindRequest setPassword(final char[] password)
      throws NullPointerException
  {
    Validator.ensureNotNull(password);
sdk/src/org/opends/sdk/requests/Requests.java
@@ -835,7 +835,7 @@
   *           If {@code name} or {@code password} was {@code null}.
   */
  public static SimpleBindRequest newSimpleBindRequest(final String name,
      final String password) throws NullPointerException
      final char[] password) throws NullPointerException
  {
    Validator.ensureNotNull(name, password);
    return new SimpleBindRequestImpl(name, ByteString.valueOf(password));
sdk/src/org/opends/sdk/requests/SimpleBindRequest.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2009 Sun Microsystems, Inc.
 *      Copyright 2009-2010 Sun Microsystems, Inc.
 */
package org.opends.sdk.requests;
@@ -114,18 +114,6 @@
  /**
   * Returns the password of the Directory object that the client wishes to bind
   * as decoded as a UTF-8 string. The password may be empty (but never {@code
   * null}) when used for of anonymous or unauthenticated binds.
   *
   * @return The password of the Directory object that the client wishes to bind
   *         as decoded as a UTF-8 string.
   */
  String getPasswordAsString();
  /**
   * Sets the name of the Directory object that the client wishes to bind as.
   * The name may be empty (but never {@code null} when used for of anonymous
   * binds, or when using SASL authentication. The server shall not dereference
@@ -174,7 +162,8 @@
   * Sets the password of the Directory object that the client wishes to bind
   * as. The password will be converted to a UTF-8 octet string. The password
   * may be empty (but never {@code null}) when used for of anonymous or
   * unauthenticated binds.
   * unauthenticated binds. Subsequent modifications to the {@code password}
   * array will not alter this bind request.
   *
   * @param password
   *          The password of the Directory object that the client wishes to
@@ -186,7 +175,7 @@
   * @throws NullPointerException
   *           If {@code password} was {@code null}.
   */
  SimpleBindRequest setPassword(String password)
  SimpleBindRequest setPassword(char[] password)
      throws UnsupportedOperationException, NullPointerException;
}
sdk/src/org/opends/sdk/requests/SimpleBindRequestImpl.java
@@ -131,16 +131,6 @@
  /**
   * {@inheritDoc}
   */
  public String getPasswordAsString()
  {
    return password.toString();
  }
  /**
   * {@inheritDoc}
   */
  public SimpleBindRequest setName(final String name)
      throws UnsupportedOperationException, NullPointerException
  {
@@ -167,7 +157,7 @@
  /**
   * {@inheritDoc}
   */
  public SimpleBindRequest setPassword(final String password)
  public SimpleBindRequest setPassword(final char[] password)
      throws UnsupportedOperationException, NullPointerException
  {
    Validator.ensureNotNull(password);
@@ -188,7 +178,7 @@
    builder.append(getName());
    builder.append(", authentication=simple");
    builder.append(", password=");
    builder.append(getPasswordAsString());
    builder.append(getPassword());
    builder.append(", controls=");
    builder.append(getControls());
    builder.append(")");
sdk/src/org/opends/sdk/requests/UnmodifiableCRAMMD5SASLBindRequestImpl.java
@@ -64,7 +64,7 @@
  }
  @Override
  public CRAMMD5SASLBindRequest setPassword(String password)
  public CRAMMD5SASLBindRequest setPassword(char[] password)
      throws UnsupportedOperationException, NullPointerException {
    throw new UnsupportedOperationException();
  }
sdk/src/org/opends/sdk/requests/UnmodifiableDigestMD5SASLBindRequestImpl.java
@@ -146,7 +146,7 @@
  }
  @Override
  public DigestMD5SASLBindRequest setPassword(String password)
  public DigestMD5SASLBindRequest setPassword(char[] password)
      throws UnsupportedOperationException, NullPointerException {
    throw new UnsupportedOperationException();
  }
sdk/src/org/opends/sdk/requests/UnmodifiableGSSAPISASLBindRequestImpl.java
@@ -150,7 +150,7 @@
  }
  @Override
  public GSSAPISASLBindRequest setPassword(String password)
  public GSSAPISASLBindRequest setPassword(char[] password)
      throws UnsupportedOperationException, NullPointerException {
    throw new UnsupportedOperationException();
  }
sdk/src/org/opends/sdk/requests/UnmodifiablePasswordModifyExtendedRequestImpl.java
@@ -47,18 +47,10 @@
    return impl.getNewPassword();
  }
  public String getNewPasswordAsString() {
    return impl.getNewPasswordAsString();
  }
  public ByteString getOldPassword() {
    return impl.getOldPassword();
  }
  public String getOldPasswordAsString() {
    return impl.getOldPasswordAsString();
  }
  public ByteString getUserIdentity() {
    return impl.getUserIdentity();
  }
@@ -72,7 +64,7 @@
    throw new UnsupportedOperationException();
  }
  public PasswordModifyExtendedRequest setNewPassword(String newPassword) {
  public PasswordModifyExtendedRequest setNewPassword(char[] newPassword) {
    throw new UnsupportedOperationException();
  }
@@ -81,7 +73,7 @@
    throw new UnsupportedOperationException();
  }
  public PasswordModifyExtendedRequest setOldPassword(String oldPassword) {
  public PasswordModifyExtendedRequest setOldPassword(char[] oldPassword) {
    throw new UnsupportedOperationException();
  }
sdk/src/org/opends/sdk/requests/UnmodifiablePlainSASLBindRequestImpl.java
@@ -76,7 +76,7 @@
  }
  @Override
  public PlainSASLBindRequest setPassword(String password)
  public PlainSASLBindRequest setPassword(char[] password)
      throws UnsupportedOperationException, NullPointerException {
    throw new UnsupportedOperationException();
  }
sdk/src/org/opends/sdk/requests/UnmodifiableSimpleBindRequestImpl.java
@@ -44,10 +44,6 @@
    return impl.getPassword();
  }
  public String getPasswordAsString() {
    return impl.getPasswordAsString();
  }
  public SimpleBindRequest setName(String name)
      throws UnsupportedOperationException, NullPointerException {
    throw new UnsupportedOperationException();
@@ -58,7 +54,7 @@
    throw new UnsupportedOperationException();
  }
  public SimpleBindRequest setPassword(String password)
  public SimpleBindRequest setPassword(char[] password)
      throws UnsupportedOperationException, NullPointerException {
    throw new UnsupportedOperationException();
  }
sdk/src/org/opends/sdk/responses/PasswordModifyExtendedResult.java
@@ -109,19 +109,6 @@
  /**
   * Returns the newly generated password decoded as a UTF-8 string, but only if
   * the password modify request succeeded and a generated password was
   * requested.
   *
   * @return The newly generated password decoded as a UTF-8 string, or {@code
   *         null} if the password modify request failed or a generated password
   *         was not requested.
   */
  String getGeneratedPasswordAsString();
  /**
   * {@inheritDoc}
   */
  String getMatchedDN();
@@ -221,7 +208,7 @@
   *           If this password modify extended result does not permit the
   *           generated password to be set.
   */
  PasswordModifyExtendedResult setGeneratedPassword(String password)
  PasswordModifyExtendedResult setGeneratedPassword(char[] password)
      throws UnsupportedOperationException;
sdk/src/org/opends/sdk/responses/PasswordModifyExtendedResultImpl.java
@@ -97,16 +97,6 @@
  /**
   * {@inheritDoc}
   */
  public String getGeneratedPasswordAsString()
  {
    return password != null ? password.toString() : null;
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public String getOID()
  {
@@ -174,7 +164,7 @@
   * {@inheritDoc}
   */
  public PasswordModifyExtendedResult setGeneratedPassword(
      final String password) throws UnsupportedOperationException
      final char[] password) throws UnsupportedOperationException
  {
    this.password = (password != null) ? ByteString.valueOf(password) : null;
    return this;
sdk/src/org/opends/sdk/responses/UnmodifiablePasswordModifyExtendedResultImpl.java
@@ -47,11 +47,6 @@
  }
  @Override
  public String getGeneratedPasswordAsString() {
    return impl.getGeneratedPasswordAsString();
  }
  @Override
  public PasswordModifyExtendedResult setGeneratedPassword(ByteString password)
      throws UnsupportedOperationException
  {
@@ -59,7 +54,7 @@
  }
  @Override
  public PasswordModifyExtendedResult setGeneratedPassword(String password)
  public PasswordModifyExtendedResult setGeneratedPassword(char[] password)
      throws UnsupportedOperationException {
    throw new UnsupportedOperationException();
  }
sdk/tests/unit-tests-testng/src/org/opends/sdk/ByteStringTestCase.java
@@ -29,6 +29,8 @@
import java.util.Arrays;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -102,7 +104,7 @@
  @DataProvider(name = "byteStringIntegerProvier")
  @DataProvider(name = "byteStringIntegerProvider")
  public Object[][] byteStringIntegerProvider()
  {
    return new Object[][] { { ByteString.valueOf(0), 0 },
@@ -113,7 +115,7 @@
  @DataProvider(name = "byteStringLongProvier")
  @DataProvider(name = "byteStringLongProvider")
  public Object[][] byteStringLongProvider()
  {
    return new Object[][] { { ByteString.valueOf(0L), 0L },
@@ -124,6 +126,14 @@
  @DataProvider(name = "byteStringCharArrayProvider")
  public Object[][] byteStringCharArrayProvider()
  {
    return new Object[][] { { "" }, { "1" }, { "1234567890" } };
  }
  @Test(expectedExceptions = IndexOutOfBoundsException.class)
  public void testInvalidWrapLength()
  {
@@ -149,6 +159,24 @@
  @Test(dataProvider = "byteStringCharArrayProvider")
  public void testToCharArray(final String s)
  {
    ByteString bs = ByteString.valueOf(s);
    Assert.assertTrue(Arrays.equals(bs.toCharArray(), s.toCharArray()));
  }
  @Test(dataProvider = "byteStringCharArrayProvider")
  public void testValueOfCharArray(final String s)
  {
    ByteString bs = ByteString.valueOf(s.toCharArray());
    Assert.assertEquals(bs.toString(), s);
  }
  @Test(expectedExceptions = IndexOutOfBoundsException.class)
  public void testUndersizedToInteger()
  {
sdk/tests/unit-tests-testng/src/org/opends/sdk/ConnectionFactoryTestCase.java
@@ -149,7 +149,7 @@
    // AuthenticatedConnectionFactory
    factories[2][0] = new AuthenticatedConnectionFactory(
        new LDAPConnectionFactory("localhost", TestCaseUtils.getLdapPort()),
        Requests.newSimpleBindRequest("", ""));
        Requests.newSimpleBindRequest("", new char[0]));
    // AuthenticatedConnectionFactory with multi-stage SASL
    factories[3][0] = new AuthenticatedConnectionFactory(
sdk/tests/unit-tests-testng/src/org/opends/sdk/DNTestCase.java
@@ -37,8 +37,6 @@
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import com.sun.opends.sdk.util.Platform;
/**
sdk/tests/unit-tests-testng/src/org/opends/sdk/LDAPListenerTestCase.java
@@ -748,7 +748,7 @@
            proxyListener.getSocketAddress()).getConnection();
        try
        {
          connection.bind("cn=test", "password");
          connection.bind("cn=test", "password".toCharArray());
          Assert.assertTrue(proxyServerConnection.isConnected.await(10,
              TimeUnit.SECONDS));
@@ -961,7 +961,7 @@
            proxyListener.getSocketAddress()).getConnection();
        try
        {
          connection.bind("cn=test", "password");
          connection.bind("cn=test", "password".toCharArray());
          Assert.assertTrue(proxyServerConnection.isConnected.await(10,
              TimeUnit.SECONDS));
@@ -1012,7 +1012,7 @@
          onlineServerListener.getSocketAddress()).getConnection();
      try
      {
        connection.bind("cn=test", "password");
        connection.bind("cn=test", "password".toCharArray());
      }
      catch (final ErrorResultException e)
      {
@@ -1043,7 +1043,7 @@
    try
    {
      connection.bind("cn=test", "password");
      connection.bind("cn=test", "password".toCharArray());
      Assert.fail("Bind attempt on closed connection succeeded unexpectedly");
    }
    catch (final ErrorResultException e)
sdk/tests/unit-tests-testng/src/org/opends/sdk/RDNTestCase.java
@@ -42,8 +42,6 @@
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import com.sun.opends.sdk.util.Platform;
/**
sdk/tests/unit-tests-testng/src/org/opends/sdk/requests/SimpleBindRequestTestCase.java
@@ -42,7 +42,7 @@
  public Object[][] getSimpleBindRequests() throws Exception
  {
    final SimpleBindRequest[] requests = { Requests.newSimpleBindRequest(),// anonymous;
        Requests.newSimpleBindRequest("username", "password") };
        Requests.newSimpleBindRequest("username", "password".toCharArray()) };
    final Object[][] objArray = new Object[requests.length][1];
    for (int i = 0; i < requests.length; i++)
    {
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/DistinguishedNameEqualityMatchingRuleTest.java
@@ -27,13 +27,15 @@
package org.opends.sdk.schema;
import java.text.Normalizer;
import java.text.Normalizer.Form;
import org.testng.annotations.Test;
import org.testng.annotations.DataProvider;
import static org.testng.Assert.assertEquals;
import org.opends.sdk.ConditionResult;
import org.opends.sdk.ByteString;
import static org.opends.sdk.schema.SchemaConstants.EMR_DN_OID;
import com.sun.opends.sdk.util.Platform;
/**
 * Test the DistinguishedNameEqualityMatchingRule
@@ -204,9 +206,8 @@
    final ByteString normalizedValue1 = rule.normalizeAttributeValue(ByteString
        .valueOf(value1));
    StringBuilder buffer = new StringBuilder(value2);
    Platform.normalize(buffer);
    final ByteString expectedValue = ByteString.valueOf(buffer);
    final ByteString expectedValue = ByteString.valueOf(Normalizer.normalize(
        value2, Form.NFKD));
    assertEquals(normalizedValue1, expectedValue);
  }
}