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

matthew_swift
08.13.2010 34ac48d938d5f3411505f7d0f883a585148ec716
* various minor code fixes
* fix unit tests
* remove TODOs from Javadoc (issues are now in Issue Tracker)
23 files added
42 files modified
5317 ■■■■ changed files
sdk/src/com/sun/opends/sdk/tools/ModRate.java 2 ●●● patch | view | raw | blame | history
sdk/src/com/sun/opends/sdk/util/StaticUtils.java 32 ●●●● patch | view | raw | blame | history
sdk/src/org/opends/sdk/AbstractLoadBalancingAlgorithm.java 109 ●●●● patch | view | raw | blame | history
sdk/src/org/opends/sdk/AuthenticatedConnectionFactory.java 1 ●●●● patch | view | raw | blame | history
sdk/src/org/opends/sdk/ldif/package-info.java 12 ●●●●● patch | view | raw | blame | history
sdk/src/org/opends/sdk/package-info.java 41 ●●●●● patch | view | raw | blame | history
sdk/src/org/opends/sdk/schema/SchemaUtils.java 306 ●●●●● patch | view | raw | blame | history
sdk/test-output/sdk/classes.html 42 ●●●●● patch | view | raw | blame | history
sdk/test-output/sdk/groups.html 5 ●●●●● patch | view | raw | blame | history
sdk/test-output/sdk/index.html 6 ●●●●● patch | view | raw | blame | history
sdk/test-output/sdk/main.html 2 ●●●●● patch | view | raw | blame | history
sdk/test-output/sdk/methods-alphabetical.html 150 ●●●●● patch | view | raw | blame | history
sdk/test-output/sdk/methods-not-run.html 2 ●●●●● patch | view | raw | blame | history
sdk/test-output/sdk/methods.html 150 ●●●●● patch | view | raw | blame | history
sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.html 774 ●●●●● patch | view | raw | blame | history
sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.properties 1 ●●●● patch | view | raw | blame | history
sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.xml 75 ●●●●● patch | view | raw | blame | history
sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.html 190 ●●●●● patch | view | raw | blame | history
sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.properties 1 ●●●● patch | view | raw | blame | history
sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.xml 14 ●●●●● patch | view | raw | blame | history
sdk/test-output/sdk/reporter-output.html 1 ●●●● patch | view | raw | blame | history
sdk/test-output/sdk/testng-failed.xml 14 ●●●●● patch | view | raw | blame | history
sdk/test-output/sdk/testng.xml.html 1 ●●●● patch | view | raw | blame | history
sdk/test-output/sdk/toc.html 30 ●●●●● patch | view | raw | blame | history
sdk/test-output/testng-failed.xml 14 ●●●●● patch | view | raw | blame | history
sdk/test-output/testng-results.xml 1041 ●●●●● patch | view | raw | blame | history
sdk/test-output/testng.css 9 ●●●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/com/sun/opends/sdk/util/StaticUtilsTest.java 130 ●●●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/LinkedAttributeTest.java 25 ●●●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/OpenDSTestCase.java 156 ●●●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/SuiteRunner.java 54 ●●●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/TestListener.java 1458 ●●●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/ApproximateMatchingRuleTest.java 15 ●●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/AttributeTypeSyntaxTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/AttributeTypeTest.java 58 ●●●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BitStringEqualityMatchingRuleTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BitStringSyntaxTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BooleanEqualityMatchingRuleTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactEqualityMatchingRuleTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactIA5EqualityMatchingRuleTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactIA5SubstringMatchingRuleTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactOrderingMatchingRuleTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactSubstringMatchingRuleTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreEqualityMatchingRuleTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreIA5EqualityMatchingRuleTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreIA5SubstringMatchingRuleTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreOrderingMatchingRuleTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreSubstringMatchingRuleTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CoreSchemaTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/DITContentRuleSyntaxTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/EnumSyntaxTestCase.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/GeneralizedTimeSyntaxTest.java 137 ●●●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/GuideSyntaxTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/IA5StringSyntaxTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/LDAPSyntaxTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/MatchingRuleSyntaxTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/MatchingRuleUseSyntaxTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/OtherMailboxSyntaxTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/RegexSyntaxTestCase.java 16 ●●●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SchemaUtilsTest.java 116 ●●●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SubstitutionSyntaxTestCase.java 71 ●●●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SyntaxTestCase.java 4 ●●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/TelexSyntaxTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/UTCTimeSyntaxTest.java 2 ●●● patch | view | raw | blame | history
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/UUIDSyntaxTest.java 2 ●●● patch | view | raw | blame | history
sdk/src/com/sun/opends/sdk/tools/ModRate.java
@@ -129,7 +129,7 @@
            + "measure modify performance");
    // TODO: correct usage
    ArgumentParser argParser =
        new ArgumentParser(SearchRate.class.getName(), toolDescription,
        new ArgumentParser(ModRate.class.getName(), toolDescription,
            false, true, 1, 0, "[modifyString ...]");
    ArgumentParserConnectionFactory connectionFactory;
    ModifyPerformanceRunner runner;
sdk/src/com/sun/opends/sdk/util/StaticUtils.java
@@ -44,7 +44,6 @@
/**
 * Common utility methods.
 */
@@ -1183,8 +1182,8 @@
      b = (byte) 0xF0;
      break;
    default:
      final LocalizableMessage message = ERR_HEX_DECODE_INVALID_CHARACTER.get(
          new String(new char[] { c1, c2 }), c1);
      final LocalizableMessage message = ERR_HEX_DECODE_INVALID_CHARACTER
          .get(new String(new char[] { c1, c2 }), c1);
      throw new ParseException(message.toString(), 0);
    }
@@ -1245,8 +1244,8 @@
      b |= 0x0F;
      break;
    default:
      final LocalizableMessage message = ERR_HEX_DECODE_INVALID_CHARACTER.get(
          new String(new char[] { c1, c2 }), c1);
      final LocalizableMessage message = ERR_HEX_DECODE_INVALID_CHARACTER
          .get(new String(new char[] { c1, c2 }), c1);
      throw new ParseException(message.toString(), 0);
    }
@@ -1710,17 +1709,18 @@
      throws DataFormatException
  {
    byte[] inputBytes = input.toByteArray();
    byte[] outputBytes = new byte[uncompressedSize > 0 ? uncompressedSize : 0];
    byte[] outputBytes = new byte[uncompressedSize > 0 ? uncompressedSize
        : 0];
    int decompressResult = uncompress(inputBytes, 0,
        inputBytes.length, outputBytes, 0, outputBytes.length);
    int decompressResult = uncompress(inputBytes, 0, inputBytes.length,
        outputBytes, 0, outputBytes.length);
    if (decompressResult < 0)
    {
      // The destination buffer wasn't big enough. Resize and retry.
      outputBytes = new byte[-decompressResult];
      decompressResult = uncompress(inputBytes, 0,
          inputBytes.length, outputBytes, 0, outputBytes.length);
      decompressResult = uncompress(inputBytes, 0, inputBytes.length,
          outputBytes, 0, outputBytes.length);
    }
    if (decompressResult >= 0)
@@ -1834,8 +1834,8 @@
          }
        }
      }
      final LocalizableMessage message = ERR_INVALID_ESCAPE_CHAR.get(reader
          .getString(), c1);
      final LocalizableMessage message = ERR_INVALID_ESCAPE_CHAR.get(
          reader.getString(), c1);
      throw DecodeException.error(message);
    }
@@ -1843,8 +1843,8 @@
    // comprise the escaped value.
    if (reader.remaining() == 0)
    {
      final LocalizableMessage message = ERR_HEX_DECODE_INVALID_LENGTH.get(reader
          .getString());
      final LocalizableMessage message = ERR_HEX_DECODE_INVALID_LENGTH
          .get(reader.getString());
      throw DecodeException.error(message);
    }
@@ -1907,8 +1907,8 @@
      b |= 0x0F;
      break;
    default:
      final LocalizableMessage message = ERR_HEX_DECODE_INVALID_CHARACTER.get(
          new String(new char[] { c1, c2 }), c1);
      final LocalizableMessage message = ERR_HEX_DECODE_INVALID_CHARACTER
          .get(new String(new char[] { c1, c2 }), c1);
      throw DecodeException.error(message);
    }
    return (char) b;
sdk/src/org/opends/sdk/AbstractLoadBalancingAlgorithm.java
@@ -1,5 +1,34 @@
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 * add the following below this CDDL HEADER, with the fields enclosed
 * by brackets "[]" replaced with your own identifying information:
 *      Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 *
 *
 *      Copyright 2009 Sun Microsystems, Inc.
 */
package org.opends.sdk;
import com.sun.opends.sdk.util.Validator;
import com.sun.opends.sdk.util.StaticUtils;
@@ -7,19 +36,26 @@
import java.util.ArrayList;
import java.util.logging.Level;
/**
 * Created by IntelliJ IDEA. User: digitalperk Date: Dec 15, 2009 Time: 3:49:17
 * PM To change this template use File | Settings | File Templates.
 * Created by IntelliJ IDEA. User: digitalperk Date: Dec 15, 2009 Time:
 * 3:49:17 PM To change this template use File | Settings | File
 * Templates.
 */
public abstract class AbstractLoadBalancingAlgorithm
    implements LoadBalancingAlgorithm
public abstract class AbstractLoadBalancingAlgorithm implements
    LoadBalancingAlgorithm
{
  protected final List<MonitoredConnectionFactory> factoryList;
  protected AbstractLoadBalancingAlgorithm(ConnectionFactory<?>... factories)
  protected AbstractLoadBalancingAlgorithm(
      ConnectionFactory<?>... factories)
  {
    Validator.ensureNotNull(factories);
    factoryList = new ArrayList<MonitoredConnectionFactory>(factories.length);
    Validator.ensureNotNull((Object[]) factories);
    factoryList = new ArrayList<MonitoredConnectionFactory>(
        factories.length);
    for(ConnectionFactory<?> f : factories)
    {
      factoryList.add(new MonitoredConnectionFactory(f));
@@ -28,30 +64,42 @@
    new MonitorThread().start();
  }
  protected class MonitoredConnectionFactory
      extends AbstractConnectionFactory<AsynchronousConnection>
      implements ResultHandler<AsynchronousConnection>
  protected class MonitoredConnectionFactory extends
      AbstractConnectionFactory<AsynchronousConnection> implements
      ResultHandler<AsynchronousConnection>
  {
    private final ConnectionFactory<?> factory;
    private volatile boolean isOperational;
    private volatile FutureResult<?> pendingConnectFuture;
    private MonitoredConnectionFactory(ConnectionFactory<?> factory)
    {
      this.factory = factory;
      this.isOperational = true;
    }
    public boolean isOperational()
    {
      return isOperational;
    }
    public void handleErrorResult(ErrorResultException error)
    {
      isOperational = false;
    }
    public void handleResult(AsynchronousConnection result)
    {
      isOperational = true;
@@ -59,11 +107,12 @@
      result.close();
    }
    public FutureResult<? extends AsynchronousConnection>
      getAsynchronousConnection(
    public FutureResult<? extends AsynchronousConnection> getAsynchronousConnection(
        final ResultHandler<? super AsynchronousConnection> resultHandler)
    {
      ResultHandler handler = new ResultHandler<AsynchronousConnection>()
      ResultHandler<AsynchronousConnection> handler = new ResultHandler<AsynchronousConnection>()
      {
        public void handleErrorResult(ErrorResultException error)
        {
@@ -74,15 +123,15 @@
          }
          if (StaticUtils.DEBUG_LOG.isLoggable(Level.WARNING))
          {
            StaticUtils.DEBUG_LOG
                .warning(String
                    .format(
                    "Connection factory " + factory +
                        " is no longer operational: "
            StaticUtils.DEBUG_LOG.warning(String
                .format("Connection factory " + factory
                    + " is no longer operational: "
                        + error.getMessage()));
          }
        }
        public void handleResult(AsynchronousConnection result)
        {
          isOperational = true;
@@ -92,11 +141,9 @@
          }
          if (StaticUtils.DEBUG_LOG.isLoggable(Level.WARNING))
          {
            StaticUtils.DEBUG_LOG
                .warning(String
                    .format(
                    "Connection factory " + factory +
                        " is now operational"));
            StaticUtils.DEBUG_LOG.warning(String
                .format("Connection factory " + factory
                    + " is now operational"));
          }
        }
      };
@@ -104,6 +151,8 @@
    }
  }
  private class MonitorThread extends Thread
  {
    private MonitorThread()
@@ -112,21 +161,25 @@
      this.setDaemon(true);
    }
    public void run()
    {
      while(true)
      {
        for(MonitoredConnectionFactory f : factoryList)
        {
          if(!f.isOperational && (f.pendingConnectFuture == null ||
              f.pendingConnectFuture.isDone()))
          if (!f.isOperational
              && (f.pendingConnectFuture == null || f.pendingConnectFuture
                  .isDone()))
          {
            if (StaticUtils.DEBUG_LOG.isLoggable(Level.FINEST))
            {
              StaticUtils.DEBUG_LOG
                  .finest(String.format("Attempting connect on factory " + f));
              StaticUtils.DEBUG_LOG.finest(String
                  .format("Attempting connect on factory " + f));
            }
            f.pendingConnectFuture = f.factory.getAsynchronousConnection(f);
            f.pendingConnectFuture = f.factory
                .getAsynchronousConnection(f);
          }
        }
        try
sdk/src/org/opends/sdk/AuthenticatedConnectionFactory.java
@@ -377,7 +377,6 @@
        protected AsynchronousConnection transformResult(
            BindResult result) throws ErrorResultException
        {
          // FIXME: should make the result unmodifiable.
          return new AuthenticatedAsynchronousConnection(connection);
        }
sdk/src/org/opends/sdk/ldif/package-info.java
@@ -27,18 +27,6 @@
/**
 * Classes and interfaces for reading and writing LDIF.
 *
 * <h1>TO DO</h1>
 * <ul>
 * <li>Make LDIFEntryReader concurrent and support DN reservation.
 * <li>LDIF*Reader Reject and skip support
 * <li>Remaining schema checking (e.g. binary option)
 * <li>Fix error messages (prefix with file/lineno)
 * <li>Support multiple LDIF*Reader sources
 * <li>Support EntryWriter splitting
 * <li>Support LDIFConnectionFactory
 * <li>Comments and optional charset encoding?
 * </ul>
 */
package org.opends.sdk.ldif;
sdk/src/org/opends/sdk/package-info.java
@@ -27,47 +27,6 @@
/**
 * Core OpenDS SDK API including connections, entries, and attributes.
 *
 * <h1>TODO</h1>
 * <ul>
 * <li>LDIF support <b>[Matt]</b>
 * <ul>
 * <li>LDIFReader
 * <ul>
 * <li>filtered reader (this should wrap an entry enumeration)
 * <li>should implement generic entry enumeration API.
 * </ul>
 * <li>LDIFWriter
 * <ul>
 * <li>add comments for DNs
 * <li>comments in native charset
 * <li>rest of output must be in ASCII
 * </ul>
 * </ul>
 * <li>Logging?
 * <li>Exceptions sub-types for ErrorResultException (e.g. referrals, assertion failures, client side errors).
 * <li>SearchResultEntry must be cheap to decode in non schema case.
 * <li>How should non-default Grizzly transport be specified by the application?
 * <li>Unmodifiable requests and responses
 * <li>Check that it is possible to create SearchResultEntry objects with empty attributes.
 * <li>Nameable? All objects that have a getName() method
 * <li>Enum / GeneralizedTime parsing function
 * <li>LDAP connection request timeouts configured using LDAPConnectionOptions.
 * <li>Re-instate Connection.isValid()
 * <li>Support parameters in result handlers.
 * <li>Javadoc
 * <li>Unit tests
 * <li>LDAP URL support and referral support
 * <li>Escapes in substring filter
 * <li>Threading model for decoding messages and calling result handlers
 * <li>SASL for CLI tools
 * <li>IBM JVM SSL support?
 * <li>Intermediate response support.
 * <li>Consider using Collections instead of Iterables.
 * <li>Get rid of write lock on connections so encoding can be done in parallel using Grizzly's buffers
 * <li>Should we dispose of the SASLContext on rebind?
 * </ul>
 *
 */
package org.opends.sdk;
sdk/src/org/opends/sdk/schema/SchemaUtils.java
@@ -108,8 +108,7 @@
            values.add(readQuotedString(reader));
            reader.skipWhitespaces();
            reader.mark();
          }
          while (reader.read() != ')');
          } while (reader.read() != ')');
        }
      }
      else
@@ -118,8 +117,7 @@
        do
        {
          length++;
        }
        while (reader.read() != ' ');
        } while (reader.read() != ' ');
        reader.reset();
        values = Collections.singletonList(reader.read(length));
@@ -129,7 +127,8 @@
    }
    catch (final StringIndexOutOfBoundsException e)
    {
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
          .get();
      throw DecodeException.error(message);
    }
  }
@@ -181,15 +180,13 @@
            values.add(readQuotedDescriptor(reader));
            reader.skipWhitespaces();
            reader.mark();
          }
          while (reader.read() != ')');
          } while (reader.read() != ')');
        }
      }
      else
      {
        final LocalizableMessage message =
            ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
                .valueOf(c), reader.pos() - 1);
        final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
            .get(String.valueOf(c), reader.pos() - 1);
        throw DecodeException.error(message);
      }
@@ -197,92 +194,8 @@
    }
    catch (final StringIndexOutOfBoundsException e)
    {
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
      throw DecodeException.error(message);
    }
  }
  /**
   * Reads the next OID from the definition, skipping over any leading
   * spaces.
   *
   * @param reader
   *          The string representation of the definition.
   * @return The OID read from the definition.
   * @throws DecodeException
   *           If a problem is encountered while reading the token name.
   */
  static String readNumericOID(SubstringReader reader)
      throws DecodeException
  {
    // This must be a numeric OID. In that case, we will accept
    // only digits and periods, but not consecutive periods.
    boolean lastWasPeriod = false;
    int length = 0;
    // Skip over any spaces at the beginning of the value.
    reader.skipWhitespaces();
    reader.mark();
    try
    {
      char c;
      while ((c = reader.read()) != ' ' && c != '\'')
      {
        if (c == '.')
        {
          if (lastWasPeriod)
          {
            final LocalizableMessage message =
                ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS.get(reader
                    .getString(), reader.pos() - 1);
            throw DecodeException.error(message);
          }
          else
          {
            lastWasPeriod = true;
          }
        }
        else if (!isDigit(c))
        {
          // Technically, this must be an illegal character. However, it
          // is possible that someone just got sloppy and did not
          // include a space between the name/OID and a closing
          // parenthesis. In that case, we'll assume it's the end of the
          // value.
          if (c == ')')
          {
            break;
          }
          // This must have been an illegal character.
          final LocalizableMessage message =
              ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER.get(reader
                  .getString(), reader.pos() - 1);
          throw DecodeException.error(message);
        }
        else
        {
          lastWasPeriod = false;
        }
        length++;
      }
      if (length == 0)
      {
        final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_NO_VALUE.get();
        throw DecodeException.error(message);
      }
      reader.reset();
      return reader.read(length);
    }
    catch (final StringIndexOutOfBoundsException e)
    {
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
          .get();
      throw DecodeException.error(message);
    }
  }
@@ -303,31 +216,78 @@
   */
  static String readOID(SubstringReader reader) throws DecodeException
  {
    int length = 1;
    int length = 0;
    boolean enclosingQuote = false;
    String oid;
    // Skip over any spaces at the beginning of the value.
    reader.skipWhitespaces();
    reader.mark();
    try
    if (reader.remaining() > 0)
    {
      // The next character must be either numeric (for an OID) or
      // alphabetic (for an attribute description).
      char c = reader.read();
      if (c == '\'')
      if (reader.read() == '\'')
      {
        enclosingQuote = true;
        reader.mark();
        c = reader.read();
      }
      if (isDigit(c))
      else
      {
        reader.reset();
        oid = readNumericOID(reader);
      }
      }
    if (reader.remaining() > 0)
    {
      char c = reader.read();
      length++;
      if (isDigit(c))
      {
        // This must be a numeric OID. In that case, we will accept
        // only digits and periods, but not consecutive periods.
        boolean lastWasPeriod = false;
        while (reader.remaining() > 0 && (c = reader.read()) != ' '
            && c != ')' && !(c == '\'' && enclosingQuote))
        {
          if (c == '.')
          {
            if (lastWasPeriod)
            {
              final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS
                  .get(reader.getString(), reader.pos() - 1);
              throw DecodeException.error(message);
            }
            else
            {
              lastWasPeriod = true;
            }
          }
          else if (!isDigit(c))
          {
            // This must be an illegal character.
            // This must have been an illegal character.
            final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER
                .get(reader.getString(), reader.pos() - 1);
            throw DecodeException.error(message);
          }
          else
          {
            lastWasPeriod = false;
          }
          length++;
        }
        if (lastWasPeriod)
        {
          final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_ENDS_WITH_PERIOD
              .get(reader.getString());
          throw DecodeException.error(message);
        }
      }
      else if (isAlpha(c))
      {
        // This must be an attribute description. In this case, we will
@@ -339,9 +299,8 @@
          if (length == 0 && !isAlpha(c))
          {
            // This is an illegal character.
            final LocalizableMessage message =
                ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
                    .valueOf(c), reader.pos() - 1);
            final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
                .get(String.valueOf(c), reader.pos() - 1);
            throw DecodeException.error(message);
          }
@@ -349,41 +308,45 @@
              && c != '_')
          {
            // This is an illegal character.
            final LocalizableMessage message =
                ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
                    .valueOf(c), reader.pos() - 1);
            final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
                .get(String.valueOf(c), reader.pos() - 1);
            throw DecodeException.error(message);
          }
          length++;
        }
        reader.reset();
        // Return the position of the first non-space character after
        // the token.
        oid = reader.read(length);
      }
      else
      {
        final LocalizableMessage message =
            ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
                .valueOf(c), reader.pos() - 1);
        final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
            .get(String.valueOf(c), reader.pos() - 1);
        throw DecodeException.error(message);
      }
      if (enclosingQuote && c != '\'')
      {
        final LocalizableMessage message = ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS
            .get(reader.pos() - 1, String.valueOf(c));
        throw DecodeException.error(message);
      }
    }
    if (length == 0)
    {
      final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_NO_VALUE
          .get();
      throw DecodeException.error(message);
    }
    reader.reset();
    String oid = reader.read(length);
      if (enclosingQuote)
      {
        reader.read();
      }
      return oid;
    }
    catch (final StringIndexOutOfBoundsException e)
    {
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
      throw DecodeException.error(message);
    }
  }
@@ -428,9 +391,8 @@
          {
            if (lastWasPeriod)
            {
              final LocalizableMessage message =
                  ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS.get(reader
                      .getString(), reader.pos() - 1);
              final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS
                  .get(reader.getString(), reader.pos() - 1);
              throw DecodeException.error(message);
            }
            else
@@ -451,9 +413,8 @@
            }
            // This must have been an illegal character.
            final LocalizableMessage message =
                ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER.get(reader
                    .getString(), reader.pos() - 1);
            final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER
                .get(reader.getString(), reader.pos() - 1);
            throw DecodeException.error(message);
          }
          else
@@ -465,7 +426,8 @@
        if (length == 0)
        {
          final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_NO_VALUE.get();
          final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_NO_VALUE
              .get();
          throw DecodeException.error(message);
        }
      }
@@ -481,9 +443,8 @@
          if (length == 0 && !isAlpha(c))
          {
            // This is an illegal character.
            final LocalizableMessage message =
                ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
                    .valueOf(c), reader.pos() - 1);
            final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
                .get(String.valueOf(c), reader.pos() - 1);
            throw DecodeException.error(message);
          }
@@ -491,9 +452,8 @@
              && c != '_')
          {
            // This is an illegal character.
            final LocalizableMessage message =
                ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
                    .valueOf(c), reader.pos() - 1);
            final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
                .get(String.valueOf(c), reader.pos() - 1);
            throw DecodeException.error(message);
          }
@@ -502,9 +462,8 @@
      }
      else
      {
        final LocalizableMessage message =
            ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
                .valueOf(c), reader.pos() - 1);
        final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
            .get(String.valueOf(c), reader.pos() - 1);
        throw DecodeException.error(message);
      }
@@ -524,9 +483,8 @@
        {
          if (!isDigit(c))
          {
            final LocalizableMessage message =
                ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER.get(reader
                    .getString(), reader.pos() - 1);
            final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER
                .get(reader.getString(), reader.pos() - 1);
            throw DecodeException.error(message);
          }
        }
@@ -544,7 +502,8 @@
    }
    catch (final StringIndexOutOfBoundsException e)
    {
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
          .get();
      throw DecodeException.error(message);
    }
  }
@@ -573,8 +532,7 @@
          // Skip over any trailing spaces;
          reader.skipWhitespaces();
        }
        while (reader.read() != ')');
        } while (reader.read() != ')');
      }
      else
      {
@@ -586,7 +544,8 @@
    }
    catch (final StringIndexOutOfBoundsException e)
    {
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
          .get();
      throw DecodeException.error(message);
    }
  }
@@ -604,7 +563,7 @@
   *           If a problem is encountered while reading the quoted
   *           string.
   */
  static String readQuotedDescriptor(SubstringReader reader)
  private static String readQuotedDescriptor(SubstringReader reader)
      throws DecodeException
  {
    int length = 0;
@@ -618,9 +577,8 @@
      char c = reader.read();
      if (c != '\'')
      {
        final LocalizableMessage message =
            ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS.get(reader.pos() - 1,
                String.valueOf(c));
        final LocalizableMessage message = ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS
            .get(reader.pos() - 1, String.valueOf(c));
        throw DecodeException.error(message);
      }
@@ -631,9 +589,8 @@
        if (length == 0 && !isAlpha(c))
        {
          // This is an illegal character.
          final LocalizableMessage message =
              ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
                  .valueOf(c), reader.pos() - 1);
          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
              .get(String.valueOf(c), reader.pos() - 1);
          throw DecodeException.error(message);
        }
@@ -641,9 +598,8 @@
            && c != '.')
        {
          // This is an illegal character.
          final LocalizableMessage message =
              ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
                  .valueOf(c), reader.pos() - 1);
          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
              .get(String.valueOf(c), reader.pos() - 1);
          throw DecodeException.error(message);
        }
@@ -658,7 +614,8 @@
    }
    catch (final StringIndexOutOfBoundsException e)
    {
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
          .get();
      throw DecodeException.error(message);
    }
  }
@@ -690,9 +647,8 @@
      final char c = reader.read();
      if (c != '\'')
      {
        final LocalizableMessage message =
            ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS.get(reader.pos() - 1,
                String.valueOf(c));
        final LocalizableMessage message = ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS
            .get(reader.pos() - 1, String.valueOf(c));
        throw DecodeException.error(message);
      }
@@ -711,7 +667,8 @@
    }
    catch (final StringIndexOutOfBoundsException e)
    {
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
          .get();
      throw DecodeException.error(message);
    }
  }
@@ -748,7 +705,8 @@
      if (length == 0)
      {
        final LocalizableMessage message = ERR_ATTR_SYNTAX_RULE_ID_NO_VALUE.get();
        final LocalizableMessage message = ERR_ATTR_SYNTAX_RULE_ID_NO_VALUE
            .get();
        throw DecodeException.error(message);
      }
@@ -761,14 +719,15 @@
      }
      catch (final NumberFormatException e)
      {
        final LocalizableMessage message =
            ERR_ATTR_SYNTAX_RULE_ID_INVALID.get(ruleID);
        final LocalizableMessage message = ERR_ATTR_SYNTAX_RULE_ID_INVALID
            .get(ruleID);
        throw DecodeException.error(message);
      }
    }
    catch (final StringIndexOutOfBoundsException e)
    {
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
          .get();
      throw DecodeException.error(message);
    }
  }
@@ -797,8 +756,7 @@
          // Skip over any trailing spaces;
          reader.skipWhitespaces();
        }
        while (reader.read() != ')');
        } while (reader.read() != ')');
      }
      else
      {
@@ -810,7 +768,8 @@
    }
    catch (final StringIndexOutOfBoundsException e)
    {
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
          .get();
      throw DecodeException.error(message);
    }
  }
@@ -859,8 +818,8 @@
      if (token == null && reader.remaining() > 0)
      {
        reader.reset();
        final LocalizableMessage message =
            ERR_ATTR_SYNTAX_UNEXPECTED_CLOSE_PARENTHESIS.get(length);
        final LocalizableMessage message = ERR_ATTR_SYNTAX_UNEXPECTED_CLOSE_PARENTHESIS
            .get(length);
        throw DecodeException.error(message);
      }
@@ -868,7 +827,8 @@
    }
    catch (final StringIndexOutOfBoundsException e)
    {
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
          .get();
      throw DecodeException.error(message);
    }
  }
sdk/test-output/sdk/classes.html
New file
@@ -0,0 +1,42 @@
<table border='1'>
<tr>
<th>Class name</th>
<th>Method name</th>
<th>Groups</th>
</tr><tr>
<td>org.opends.sdk.schema.SchemaUtilsTest</td>
<td>&nbsp;</td><td>&nbsp;</td></tr>
<tr>
<td align='center' colspan='3'>@Test</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>testReadOIDInvalid</td>
<td>schema precommit sdk </td>
</tr>
<tr>
<td>&nbsp;</td>
<td>testReadOIDValid</td>
<td>schema precommit sdk </td>
</tr>
<tr>
<td align='center' colspan='3'>@BeforeClass</td>
</tr>
<tr>
<td align='center' colspan='3'>@BeforeMethod</td>
</tr>
<tr>
<td align='center' colspan='3'>@AfterMethod</td>
</tr>
<tr>
<td align='center' colspan='3'>@AfterClass</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>nullMemberVariablesAfterTest</td>
<td>&nbsp;</td></tr>
<tr>
<td>&nbsp;</td>
<td>clearSuccessfulTestParams</td>
<td>&nbsp;</td></tr>
</table>
sdk/test-output/sdk/groups.html
New file
@@ -0,0 +1,5 @@
<h2>Groups used for this test run</h2><table border="1">
<tr> <td align="center"><b>Group name</b></td><td align="center"><b>Methods</b></td></tr><tr><td>precommit</td><td>org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)<br/>org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)<br/></td></tr>
<tr><td>schema</td><td>org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)<br/>org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)<br/></td></tr>
<tr><td>sdk</td><td>org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)<br/>org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)<br/></td></tr>
</table>
sdk/test-output/sdk/index.html
New file
@@ -0,0 +1,6 @@
<html><head><title>Results for sdk</title></head>
<frameset cols="26%,74%">
<frame src="toc.html" name="navFrame">
<frame src="main.html" name="mainFrame">
</frameset>
</html>
sdk/test-output/sdk/main.html
New file
@@ -0,0 +1,2 @@
<html><head><title>Results for sdk</title></head>
<body>Select a result on the left-hand pane.</body></html>
sdk/test-output/sdk/methods-alphabetical.html
New file
@@ -0,0 +1,150 @@
<h2>Methods run, sorted chronologically</h2><h3>&gt;&gt; means before, &lt;&lt; means after</h3><p/><br/><em>sdk</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/>
<table border="1">
<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr>
<tr bgcolor="8bb7e0">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td title="&lt;&lt;org.opends.sdk.OpenDSTestCase.clearSuccessfulTestParams()">&lt;&lt;clearSuccessfulTestParams</td>
<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="8bb7e0">  <td>10/01/08 18:59:19</td>   <td>-1</td> <td>&nbsp;</td><td>&nbsp;</td><td title="&lt;&lt;org.opends.sdk.OpenDSTestCase.nullMemberVariablesAfterTest()">&lt;&lt;nullMemberVariablesAfterTest</td>
<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-7</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-7</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-7</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-7</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-7</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-7</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-7</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-7</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-7</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-7</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-7</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>-213</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
</table>
sdk/test-output/sdk/methods-not-run.html
New file
@@ -0,0 +1,2 @@
<h2>Methods that were not run</h2><table>
</table>
sdk/test-output/sdk/methods.html
New file
@@ -0,0 +1,150 @@
<h2>Methods run, sorted chronologically</h2><h3>&gt;&gt; means before, &lt;&lt; means after</h3><p/><br/><em>sdk</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/>
<table border="1">
<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>206</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>206</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>206</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>206</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>206</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>206</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>206</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>206</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>206</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>206</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="e0b6f5">  <td>10/01/08 18:59:19</td>   <td>206</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="8bb7e0">  <td>10/01/08 18:59:19</td>   <td>212</td> <td>&nbsp;</td><td>&nbsp;</td><td title="&lt;&lt;org.opends.sdk.OpenDSTestCase.nullMemberVariablesAfterTest()">&lt;&lt;nullMemberVariablesAfterTest</td>
<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>  <td>main@20324370</td>   <td></td> </tr>
<tr bgcolor="8bb7e0">  <td>10/01/08 18:59:19</td>   <td>213</td> <td>&nbsp;</td><td>&nbsp;</td><td title="&lt;&lt;org.opends.sdk.OpenDSTestCase.clearSuccessfulTestParams()">&lt;&lt;clearSuccessfulTestParams</td>
<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>  <td>main@20324370</td>   <td></td> </tr>
</table>
sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.html
New file
@@ -0,0 +1,774 @@
<html>
<head>
<title>TestNG:  org.opends.sdk.schema.SchemaUtilsTest</title>
<link href="../testng.css" rel="stylesheet" type="text/css" />
<link href="../my-testng.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.log { display: none;}
.stack-trace { display: none;}
</style>
<script type="text/javascript">
<!--
function flip(e) {
  current = e.style.display;
  if (current == 'block') {
    e.style.display = 'none';
    return 0;
  }
  else {
    e.style.display = 'block';
    return 1;
  }
}
function toggleBox(szDivId, elem, msg1, msg2)
{
  var res = -1;  if (document.getElementById) {
    res = flip(document.getElementById(szDivId));
  }
  else if (document.all) {
    // this is the way old msie versions work
    res = flip(document.all[szDivId]);
  }
  if(elem) {
    if(res == 0) elem.innerHTML = msg1; else elem.innerHTML = msg2;
  }
}
function toggleAllBoxes() {
  if (document.getElementsByTagName) {
    d = document.getElementsByTagName('div');
    for (i = 0; i < d.length; i++) {
      if (d[i].className == 'log') {
        flip(d[i]);
      }
    }
  }
}
// -->
</script>
</head>
<body>
<h2 align='center'>org.opends.sdk.schema.SchemaUtilsTest</h2><table border='1' align="center">
<tr>
<td>Tests passed/Failed/Skipped:</td><td>71/0/0</td>
</tr><tr>
<td>Started on:</td><td>Fri Jan 08 18:59:18 CET 2010</td>
</tr>
<tr><td>Total time:</td><td>0 seconds (394 ms)</td>
</tr><tr>
<td>Included groups:</td><td></td>
</tr><tr>
<td>Excluded groups:</td><td></td>
</tr>
</table><p/>
<small><i>(Hover the method name to see the test class name)</i></small><p/>
<table width='100%' border='1' class='invocation-passed'>
<tr><td colspan='3' align='center'><b>PASSED TESTS</b></td></tr>
<tr><td><b>Test method</b></td>
<td width="10%"><b>Time (seconds)</b></td>
<td width="30%"><b>Exception</b></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> </td>
<td>0</td>
<td><div><pre>org.opends.sdk.DecodeException: The provided value could not be parsed as a valid OID because it did not contain any characters
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:338)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace28606871", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
<div class='stack-trace' id='stack-trace28606871'><pre>org.opends.sdk.DecodeException: The provided value could not be parsed as a valid OID because it did not contain any characters
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:338)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
</pre></div></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> .0</td>
<td>0</td>
<td><div><pre>org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character . at position 0
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:323)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace15136722", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
<div class='stack-trace' id='stack-trace15136722'><pre>org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character . at position 0
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:323)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
</pre></div></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> 0.</td>
<td>0</td>
<td><div><pre>org.opends.sdk.DecodeException: The provided value "0." could not be parsed as a valid OID because it ends with a period
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:288)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace26752749", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
<div class='stack-trace' id='stack-trace26752749'><pre>org.opends.sdk.DecodeException: The provided value "0." could not be parsed as a valid OID because it ends with a period
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:288)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
</pre></div></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> 100.</td>
<td>0</td>
<td><div><pre>org.opends.sdk.DecodeException: The provided value "100." could not be parsed as a valid OID because it ends with a period
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:288)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace4067003", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
<div class='stack-trace' id='stack-trace4067003'><pre>org.opends.sdk.DecodeException: The provided value "100." could not be parsed as a valid OID because it ends with a period
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:288)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
</pre></div></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> .999</td>
<td>0</td>
<td><div><pre>org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character . at position 0
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:323)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace3753023", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
<div class='stack-trace' id='stack-trace3753023'><pre>org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character . at position 0
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:323)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
</pre></div></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> 1one</td>
<td>0</td>
<td><div><pre>org.opends.sdk.DecodeException: The provided value "1one" could not be parsed as a valid OID because it had an illegal character at position 1
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace28290629", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
<div class='stack-trace' id='stack-trace28290629'><pre>org.opends.sdk.DecodeException: The provided value "1one" could not be parsed as a valid OID because it had an illegal character at position 1
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
</pre></div></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> one+two+three</td>
<td>0</td>
<td><div><pre>org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character + at position 3
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:313)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace14306161", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
<div class='stack-trace' id='stack-trace14306161'><pre>org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character + at position 3
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:313)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
</pre></div></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> '0</td>
<td>0</td>
<td><div><pre>org.opends.sdk.DecodeException: A single quote was expected at position 1 but the character 0 was found instead
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:330)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace26156414", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
<div class='stack-trace' id='stack-trace26156414'><pre>org.opends.sdk.DecodeException: A single quote was expected at position 1 but the character 0 was found instead
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:330)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
</pre></div></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> '10</td>
<td>0</td>
<td><div><pre>org.opends.sdk.DecodeException: A single quote was expected at position 2 but the character 0 was found instead
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:330)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace14247437", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
<div class='stack-trace' id='stack-trace14247437'><pre>org.opends.sdk.DecodeException: A single quote was expected at position 2 but the character 0 was found instead
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:330)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
</pre></div></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> 999'</td>
<td>0</td>
<td><div><pre>org.opends.sdk.DecodeException: The provided value "999'" could not be parsed as a valid OID because it had an illegal character at position 3
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace12258573", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
<div class='stack-trace' id='stack-trace12258573'><pre>org.opends.sdk.DecodeException: The provided value "999'" could not be parsed as a valid OID because it had an illegal character at position 3
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
</pre></div></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> 0.0'</td>
<td>0</td>
<td><div><pre>org.opends.sdk.DecodeException: The provided value "0.0'" could not be parsed as a valid OID because it had an illegal character at position 3
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace5629279", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
<div class='stack-trace' id='stack-trace5629279'><pre>org.opends.sdk.DecodeException: The provided value "0.0'" could not be parsed as a valid OID because it had an illegal character at position 3
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
</pre></div></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.0</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 1.0</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 2.0</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 3.0</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 4.0</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 5.0</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 6.0</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 7.0</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 8.0</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 9.0</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.1</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.2</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.3</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.4</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.5</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.6</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.7</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.8</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.9</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 10.0</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 100.0</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 999.0</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.100</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.999</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 100.100</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 999.999</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 111.22.333.44.55555.66.777.88.999</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> a</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> a2</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> a-</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> one</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> one1</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> one-two</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> one1-two2-three3</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> '0.0'</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> '10.0'</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> '999.0'</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> '111.22.333.44.55555.66.777.88.999'</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 'a'</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 'a2'</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 'a-'</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 'one'</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 'one1'</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 'one-two'</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 'one1-two2-three3'</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 1</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 2</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 3</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 4</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 5</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 6</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 7</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 8</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 9</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 00</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 01</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 01.0</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.01</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> one.two.three</td>
<td>0</td>
<td></td>
</tr>
</table><p>
</body>
</html>
sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.properties
New file
@@ -0,0 +1 @@
[SuiteResult org.opends.sdk.schema.SchemaUtilsTest]
sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.xml
New file
@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="org.opends.sdk.schema.SchemaUtilsTest" failures="0" tests="71" time="0.394" errors="0">
  <properties/>
  <testcase name="testReadOIDValid" time="0.018" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0030" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0020" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDValid" time="0.012" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDInvalid" time="0.151" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDInvalid" time="0.0090" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDInvalid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDInvalid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDInvalid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDInvalid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDInvalid" time="0.0020" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDInvalid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDInvalid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDInvalid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
  <testcase name="testReadOIDInvalid" time="0.0030" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
</testsuite>
sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.html
New file
@@ -0,0 +1,190 @@
<html>
<head>
<title>TestNG:  org.opends.sdk.schema.SubstitutionSyntaxTestCase</title>
<link href="../testng.css" rel="stylesheet" type="text/css" />
<link href="../my-testng.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.log { display: none;}
.stack-trace { display: none;}
</style>
<script type="text/javascript">
<!--
function flip(e) {
  current = e.style.display;
  if (current == 'block') {
    e.style.display = 'none';
    return 0;
  }
  else {
    e.style.display = 'block';
    return 1;
  }
}
function toggleBox(szDivId, elem, msg1, msg2)
{
  var res = -1;  if (document.getElementById) {
    res = flip(document.getElementById(szDivId));
  }
  else if (document.all) {
    // this is the way old msie versions work
    res = flip(document.all[szDivId]);
  }
  if(elem) {
    if(res == 0) elem.innerHTML = msg1; else elem.innerHTML = msg2;
  }
}
function toggleAllBoxes() {
  if (document.getElementsByTagName) {
    d = document.getElementsByTagName('div');
    for (i = 0; i < d.length; i++) {
      if (d[i].className == 'log') {
        flip(d[i]);
      }
    }
  }
}
// -->
</script>
</head>
<body>
<h2 align='center'>org.opends.sdk.schema.SubstitutionSyntaxTestCase</h2><table border='1' align="center">
<tr>
<td>Tests passed/Failed/Skipped:</td><td>10/0/0</td>
</tr><tr>
<td>Started on:</td><td>Fri Jan 08 13:13:04 CET 2010</td>
</tr>
<tr><td>Total time:</td><td>0 seconds (597 ms)</td>
</tr><tr>
<td>Included groups:</td><td></td>
</tr><tr>
<td>Excluded groups:</td><td></td>
</tr>
</table><p/>
<small><i>(Hover the method name to see the test class name)</i></small><p/>
<table width='100%' border='1' class='invocation-passed'>
<tr><td colspan='3' align='center'><b>PASSED TESTS</b></td></tr>
<tr><td><b>Test method</b></td>
<td width="10%"><b>Time (seconds)</b></td>
<td width="30%"><b>Exception</b></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testAcceptableValues()'>testAcceptableValues<br/><b>Parameters:</b> 12345678, true</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testAcceptableValues()'>testAcceptableValues<br/><b>Parameters:</b> 12345678â…£, false</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSelfSubstitute1()'>testSelfSubstitute1</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSelfSubstitute2()'>testSelfSubstitute2</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSubstituteCore1()'>testSubstituteCore1</td>
<td>0</td>
<td><div><pre>org.opends.sdk.schema.ConflictingSchemaElementException: Unable to register attribute syntax ( 1.3.6.1.4.1.1466.115.121.1.26  DESC 'Replacing DirectorySyntax'   X-SUBST '9.9.9' ) with the server schema because its OID 1.3.6.1.4.1.1466.115.121.1.26 conflicts with the OID of an existing syntax 1.3.6.1.4.1.1466.115.121.1.26
    at org.opends.sdk.schema.SchemaBuilder.addSyntax(SchemaBuilder.java:2597)
    at org.opends.sdk.schema.SchemaBuilder.addSyntax(SchemaBuilder.java:2043)
    at org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSubstituteCore1(SubstitutionSyntaxTestCase.java:124)
... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace4677928", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
<div class='stack-trace' id='stack-trace4677928'><pre>org.opends.sdk.schema.ConflictingSchemaElementException: Unable to register attribute syntax ( 1.3.6.1.4.1.1466.115.121.1.26  DESC 'Replacing DirectorySyntax'   X-SUBST '9.9.9' ) with the server schema because its OID 1.3.6.1.4.1.1466.115.121.1.26 conflicts with the OID of an existing syntax 1.3.6.1.4.1.1466.115.121.1.26
    at org.opends.sdk.schema.SchemaBuilder.addSyntax(SchemaBuilder.java:2597)
    at org.opends.sdk.schema.SchemaBuilder.addSyntax(SchemaBuilder.java:2043)
    at org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSubstituteCore1(SubstitutionSyntaxTestCase.java:124)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
</pre></div></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSubstituteCore1Override()'>testSubstituteCore1Override</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSubstituteCore2()'>testSubstituteCore2</td>
<td>0</td>
<td><div><pre>org.opends.sdk.schema.ConflictingSchemaElementException: Unable to register attribute syntax ( 1.3.6.1.4.1.1466.115.121.1.26 DESC 'Replacing DirectorySyntax' X-SUBST '9.9.9' ) with the server schema because its OID 1.3.6.1.4.1.1466.115.121.1.26 conflicts with the OID of an existing syntax 1.3.6.1.4.1.1466.115.121.1.26
    at org.opends.sdk.schema.SchemaBuilder.addSyntax(SchemaBuilder.java:2597)
    at org.opends.sdk.schema.SchemaBuilder.addSubstitutionSyntax(SchemaBuilder.java:1908)
    at org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSubstituteCore2(SubstitutionSyntaxTestCase.java:136)
... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace20785379", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
<div class='stack-trace' id='stack-trace20785379'><pre>org.opends.sdk.schema.ConflictingSchemaElementException: Unable to register attribute syntax ( 1.3.6.1.4.1.1466.115.121.1.26 DESC 'Replacing DirectorySyntax' X-SUBST '9.9.9' ) with the server schema because its OID 1.3.6.1.4.1.1466.115.121.1.26 conflicts with the OID of an existing syntax 1.3.6.1.4.1.1466.115.121.1.26
    at org.opends.sdk.schema.SchemaBuilder.addSyntax(SchemaBuilder.java:2597)
    at org.opends.sdk.schema.SchemaBuilder.addSubstitutionSyntax(SchemaBuilder.java:1908)
    at org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSubstituteCore2(SubstitutionSyntaxTestCase.java:136)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
</pre></div></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSubstituteCore2Override()'>testSubstituteCore2Override</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testUndefinedSubstitute1()'>testUndefinedSubstitute1</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testUndefinedSubstitute2()'>testUndefinedSubstitute2</td>
<td>0</td>
<td></td>
</tr>
</table><p>
</body>
</html>
sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.properties
New file
@@ -0,0 +1 @@
[SuiteResult org.opends.sdk.schema.SubstitutionSyntaxTestCase]
sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.xml
New file
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="org.opends.sdk.schema.SubstitutionSyntaxTestCase" failures="0" tests="10" time="0.597" errors="0">
  <properties/>
  <testcase name="testSubstituteCore2Override" time="0.164" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
  <testcase name="testSelfSubstitute1" time="0.341" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
  <testcase name="testSubstituteCore2" time="0.0060" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
  <testcase name="testSubstituteCore1" time="0.0020" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
  <testcase name="testSelfSubstitute2" time="0.01" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
  <testcase name="testSubstituteCore1Override" time="0.0020" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
  <testcase name="testAcceptableValues" time="0.0030" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
  <testcase name="testAcceptableValues" time="0.0040" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
  <testcase name="testUndefinedSubstitute1" time="0.0070" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
  <testcase name="testUndefinedSubstitute2" time="0.0080" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
</testsuite>
sdk/test-output/sdk/reporter-output.html
New file
@@ -0,0 +1 @@
<h2>Reporter output</h2><table></table>
sdk/test-output/sdk/testng-failed.xml
New file
@@ -0,0 +1,14 @@
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite thread-count="5" skipfailedinvocationCounts="false" verbose="1" name="Failed suite [sdk]" junit="false" parallel="false" annotations="JDK">
  <test name="org.opends.sdk.schema.AttributeTypeTest(failed)" junit="false" parallel="false" annotations="JDK">
    <classes>
      <class name="org.opends.sdk.schema.AttributeTypeTest">
        <methods>
          <include name="nullMemberVariablesAfterTest"/>
          <include name="clearSuccessfulTestParams"/>
          <include name="testADSyntax"/>
        </methods>
      </class>
    </classes>
  </test>
</suite>
sdk/test-output/sdk/testng.xml.html
New file
@@ -0,0 +1 @@
<html><head><title>testng.xml for sdk</title></head><body><tt>&lt;!DOCTYPE&nbsp;suite&nbsp;SYSTEM&nbsp;"http://testng.org/testng-1.0.dtd"&gt;<br/>&lt;suite&nbsp;thread-count="5"&nbsp;skipfailedinvocationCounts="false"&nbsp;verbose="1"&nbsp;name="sdk"&nbsp;junit="false"&nbsp;parallel="false"&nbsp;annotations="JDK"&gt;<br/>&nbsp;&nbsp;&lt;test&nbsp;verbose="2"&nbsp;name="org.opends.sdk.schema.SchemaUtilsTest"&nbsp;junit="false"&nbsp;annotations="JDK"&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;classes&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;name="org.opends.sdk.schema.SchemaUtilsTest"/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/classes&gt;<br/>&nbsp;&nbsp;&lt;/test&gt;<br/>&lt;/suite&gt;<br/></tt></body></html>
sdk/test-output/sdk/toc.html
New file
@@ -0,0 +1,30 @@
<html>
<head>
<title>Results for sdk</title>
<link href="../testng.css" rel="stylesheet" type="text/css" />
<link href="../my-testng.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h3><p align="center">Results for<br/><em>sdk</em></p></h3>
<table border='1' width='100%'>
<tr valign='top'>
<td>1 test</td>
<td><a target='mainFrame' href='classes.html'>1 class</a></td>
<td>2 methods:<br/>
&nbsp;&nbsp;<a target='mainFrame' href='methods.html'>chronological</a><br/>
&nbsp;&nbsp;<a target='mainFrame' href='methods-alphabetical.html'>alphabetical</a><br/>
&nbsp;&nbsp;<a target='mainFrame' href='methods-not-run.html'>not run (0)</a></td>
</tr>
<tr>
<td><a target='mainFrame' href='groups.html'>3 groups</a></td>
<td><a target='mainFrame' href='reporter-output.html'>reporter output</a></td>
<td><a target='mainFrame' href='testng.xml.html'>testng.xml</a></td>
</tr></table>
<table width='100%' class='test-passed'>
<tr><td>
<table style='width: 100%'><tr><td valign='top'>org.opends.sdk.schema.SchemaUtilsTest (71/0/0)</td><td valign='top' align='right'>
  <a href='org.opends.sdk.schema.SchemaUtilsTest.html' target='mainFrame'>Results</a>
</td></tr></table>
</td></tr><p/>
</table>
</body></html>
sdk/test-output/testng-failed.xml
New file
@@ -0,0 +1,14 @@
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite thread-count="5" skipfailedinvocationCounts="false" verbose="1" name="Failed suite [sdk]" junit="false" parallel="false" annotations="JDK">
  <test name="org.opends.sdk.schema.AttributeTypeTest(failed)" junit="false" parallel="false" annotations="JDK">
    <classes>
      <class name="org.opends.sdk.schema.AttributeTypeTest">
        <methods>
          <include name="nullMemberVariablesAfterTest"/>
          <include name="clearSuccessfulTestParams"/>
          <include name="testADSyntax"/>
        </methods>
      </class>
    </classes>
  </test>
</suite>
sdk/test-output/testng-results.xml
New file
@@ -0,0 +1,1041 @@
<testng-results>
  <reporter-output>
  </reporter-output>
  <suite name="sdk">
    <groups>
      <group name="schema">
        <method signature="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)" name="testReadOIDValid" class="org.opends.sdk.schema.SchemaUtilsTest"/>
        <method signature="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" class="org.opends.sdk.schema.SchemaUtilsTest"/>
      </group>
      <group name="precommit">
        <method signature="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)" name="testReadOIDValid" class="org.opends.sdk.schema.SchemaUtilsTest"/>
        <method signature="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" class="org.opends.sdk.schema.SchemaUtilsTest"/>
      </group>
      <group name="sdk">
        <method signature="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)" name="testReadOIDValid" class="org.opends.sdk.schema.SchemaUtilsTest"/>
        <method signature="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" class="org.opends.sdk.schema.SchemaUtilsTest"/>
      </group>
    </groups>
    <test name="org.opends.sdk.schema.SchemaUtilsTest">
      <class name="org.opends.sdk.schema.SchemaUtilsTest">
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="0" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[9]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="18" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[0.0]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA['one-two']]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA['a2']]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA['10.0']]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="1" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[1one]]>
              </value>
            </param>
          </params>
          <exception class="org.opends.sdk.DecodeException">
            <message>
              <![CDATA[The provided value "1one" could not be parsed as a valid OID because it had an illegal character at position 1]]>
            </message>
            <full-stacktrace>
              <![CDATA[org.opends.sdk.DecodeException: The provided value "1one" could not be parsed as a valid OID because it had an illegal character at position 1
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
]]>
            </full-stacktrace>
          </exception>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[one]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[10.0]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="clearSuccessfulTestParams()" name="clearSuccessfulTestParams" is-config="true" duration-ms="1" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[one1-two2-three3]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[0.01]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA['one1-two2-three3']]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[0.5]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[999.0]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[01.0]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="0" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[one-two]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[8.0]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="1" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[100.]]>
              </value>
            </param>
          </params>
          <exception class="org.opends.sdk.DecodeException">
            <message>
              <![CDATA[The provided value "100." could not be parsed as a valid OID because it ends with a period]]>
            </message>
            <full-stacktrace>
              <![CDATA[org.opends.sdk.DecodeException: The provided value "100." could not be parsed as a valid OID because it ends with a period
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:288)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
]]>
            </full-stacktrace>
          </exception>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[9.0]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[6]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[1.0]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[0.8]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="3" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[0.1]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[0]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[0.100]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[999.999]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[6.0]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[111.22.333.44.55555.66.777.88.999]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="2" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[0.6]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[0.999]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA['0.0']]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[one1]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="2" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[one+two+three]]>
              </value>
            </param>
          </params>
          <exception class="org.opends.sdk.DecodeException">
            <message>
              <![CDATA[Non-numeric OID contained an illegal character + at position 3]]>
            </message>
            <full-stacktrace>
              <![CDATA[org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character + at position 3
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:313)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
]]>
            </full-stacktrace>
          </exception>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[01]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[a-]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[100.0]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[a]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[0.3]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="12" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:19Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[one.two.three]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[4.0]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="3" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[0.0']]>
              </value>
            </param>
          </params>
          <exception class="org.opends.sdk.DecodeException">
            <message>
              <![CDATA[The provided value "0.0'" could not be parsed as a valid OID because it had an illegal character at position 3]]>
            </message>
            <full-stacktrace>
              <![CDATA[org.opends.sdk.DecodeException: The provided value "0.0'" could not be parsed as a valid OID because it had an illegal character at position 3
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
]]>
            </full-stacktrace>
          </exception>
        </test-method>
        <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="1" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
          <params>
            <param index="0">
              <value>
                <![CDATA['0]]>
              </value>
            </param>
          </params>
          <exception class="org.opends.sdk.DecodeException">
            <message>
              <![CDATA[A single quote was expected at position 1 but the character 0 was found instead]]>
            </message>
            <full-stacktrace>
              <![CDATA[org.opends.sdk.DecodeException: A single quote was expected at position 1 but the character 0 was found instead
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:330)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
]]>
            </full-stacktrace>
          </exception>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA['one1']]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[0.2]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[5.0]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[a2]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA['111.22.333.44.55555.66.777.88.999']]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="1" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[999']]>
              </value>
            </param>
          </params>
          <exception class="org.opends.sdk.DecodeException">
            <message>
              <![CDATA[The provided value "999'" could not be parsed as a valid OID because it had an illegal character at position 3]]>
            </message>
            <full-stacktrace>
              <![CDATA[org.opends.sdk.DecodeException: The provided value "999'" could not be parsed as a valid OID because it had an illegal character at position 3
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
]]>
            </full-stacktrace>
          </exception>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[2.0]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[5]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="0" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA['a-']]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[0.7]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="9" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[.0]]>
              </value>
            </param>
          </params>
          <exception class="org.opends.sdk.DecodeException">
            <message>
              <![CDATA[Non-numeric OID contained an illegal character . at position 0]]>
            </message>
            <full-stacktrace>
              <![CDATA[org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character . at position 0
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:323)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
]]>
            </full-stacktrace>
          </exception>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[2]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="1" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[.999]]>
              </value>
            </param>
          </params>
          <exception class="org.opends.sdk.DecodeException">
            <message>
              <![CDATA[Non-numeric OID contained an illegal character . at position 0]]>
            </message>
            <full-stacktrace>
              <![CDATA[org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character . at position 0
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:323)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
]]>
            </full-stacktrace>
          </exception>
        </test-method>
        <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="151" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[]]>
              </value>
            </param>
          </params>
          <exception class="org.opends.sdk.DecodeException">
            <message>
              <![CDATA[The provided value could not be parsed as a valid OID because it did not contain any characters]]>
            </message>
            <full-stacktrace>
              <![CDATA[org.opends.sdk.DecodeException: The provided value could not be parsed as a valid OID because it did not contain any characters
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:338)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
]]>
            </full-stacktrace>
          </exception>
        </test-method>
        <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="1" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[0.]]>
              </value>
            </param>
          </params>
          <exception class="org.opends.sdk.DecodeException">
            <message>
              <![CDATA[The provided value "0." could not be parsed as a valid OID because it ends with a period]]>
            </message>
            <full-stacktrace>
              <![CDATA[org.opends.sdk.DecodeException: The provided value "0." could not be parsed as a valid OID because it ends with a period
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:288)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
]]>
            </full-stacktrace>
          </exception>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[100.100]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[7]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[0.9]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[8]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="0" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[00]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA['a']]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA['999.0']]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[7.0]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[4]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[3]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[0.4]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="0" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA['one']]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="nullMemberVariablesAfterTest()" name="nullMemberVariablesAfterTest" is-config="true" duration-ms="0" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[3.0]]>
              </value>
            </param>
          </params>
        </test-method>
        <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="1" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
          <params>
            <param index="0">
              <value>
                <![CDATA['10]]>
              </value>
            </param>
          </params>
          <exception class="org.opends.sdk.DecodeException">
            <message>
              <![CDATA[A single quote was expected at position 2 but the character 0 was found instead]]>
            </message>
            <full-stacktrace>
              <![CDATA[org.opends.sdk.DecodeException: A single quote was expected at position 2 but the character 0 was found instead
    at org.opends.sdk.DecodeException.error(DecodeException.java:95)
    at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:330)
    at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
    at org.testng.TestRunner.runWorkers(TestRunner.java:759)
    at org.testng.TestRunner.privateRun(TestRunner.java:592)
    at org.testng.TestRunner.run(TestRunner.java:486)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
    at org.testng.SuiteRunner.run(SuiteRunner.java:204)
    at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
    at org.testng.TestNG.run(TestNG.java:751)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
]]>
            </full-stacktrace>
          </exception>
        </test-method>
        <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
          <params>
            <param index="0">
              <value>
                <![CDATA[1]]>
              </value>
            </param>
          </params>
        </test-method>
      </class>
    </test>
  </suite>
</testng-results>
sdk/test-output/testng.css
New file
@@ -0,0 +1,9 @@
.invocation-failed,  .test-failed  { background-color: #DD0000; }
.invocation-percent, .test-percent { background-color: #006600; }
.invocation-passed,  .test-passed  { background-color: #00AA00; }
.invocation-skipped, .test-skipped { background-color: #CCCC00; }
.main-page {
  font-size: x-large;
}
sdk/tests/unit-tests-testng/src/com/sun/opends/sdk/util/StaticUtilsTest.java
@@ -29,6 +29,11 @@
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
import org.opends.sdk.OpenDSTestCase;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
@@ -97,4 +102,129 @@
      Assert.assertEquals(actual, expected);
    }
  }
  /**
   * Create data for format(...) tests.
   *
   * @return Returns test data.
   */
  @DataProvider(name = "createFormatData")
  public Object[][] createFormatData()
  {
    return new Object[][] {
        // Note that Calendar months run from 0-11,
        // and that there was no such year as year 0 (1 BC -> 1 AD).
        { 1, 0, 1, 0, 0, 0, 0, "00010101000000.000Z" },
        { 9, 0, 1, 0, 0, 0, 0, "00090101000000.000Z" },
        { 10, 0, 1, 0, 0, 0, 0, "00100101000000.000Z" },
        { 99, 0, 1, 0, 0, 0, 0, "00990101000000.000Z" },
        { 100, 0, 1, 0, 0, 0, 0, "01000101000000.000Z" },
        { 999, 0, 1, 0, 0, 0, 0, "09990101000000.000Z" },
        { 1000, 0, 1, 0, 0, 0, 0, "10000101000000.000Z" },
        { 2000, 0, 1, 0, 0, 0, 0, "20000101000000.000Z" },
        { 2099, 0, 1, 0, 0, 0, 0, "20990101000000.000Z" },
        { 2000, 8, 1, 0, 0, 0, 0, "20000901000000.000Z" },
        { 2000, 9, 1, 0, 0, 0, 0, "20001001000000.000Z" },
        { 2000, 10, 1, 0, 0, 0, 0, "20001101000000.000Z" },
        { 2000, 11, 1, 0, 0, 0, 0, "20001201000000.000Z" },
        { 2000, 0, 9, 0, 0, 0, 0, "20000109000000.000Z" },
        { 2000, 0, 10, 0, 0, 0, 0, "20000110000000.000Z" },
        { 2000, 0, 19, 0, 0, 0, 0, "20000119000000.000Z" },
        { 2000, 0, 20, 0, 0, 0, 0, "20000120000000.000Z" },
        { 2000, 0, 29, 0, 0, 0, 0, "20000129000000.000Z" },
        { 2000, 0, 30, 0, 0, 0, 0, "20000130000000.000Z" },
        { 2000, 0, 31, 0, 0, 0, 0, "20000131000000.000Z" },
        { 2000, 0, 1, 9, 0, 0, 0, "20000101090000.000Z" },
        { 2000, 0, 1, 10, 0, 0, 0, "20000101100000.000Z" },
        { 2000, 0, 1, 19, 0, 0, 0, "20000101190000.000Z" },
        { 2000, 0, 1, 20, 0, 0, 0, "20000101200000.000Z" },
        { 2000, 0, 1, 23, 0, 0, 0, "20000101230000.000Z" },
        { 2000, 0, 1, 0, 9, 0, 0, "20000101000900.000Z" },
        { 2000, 0, 1, 0, 10, 0, 0, "20000101001000.000Z" },
        { 2000, 0, 1, 0, 59, 0, 0, "20000101005900.000Z" },
        { 2000, 0, 1, 0, 0, 9, 0, "20000101000009.000Z" },
        { 2000, 0, 1, 0, 0, 10, 0, "20000101000010.000Z" },
        { 2000, 0, 1, 0, 0, 59, 0, "20000101000059.000Z" },
        { 2000, 0, 1, 0, 0, 0, 9, "20000101000000.009Z" },
        { 2000, 0, 1, 0, 0, 0, 10, "20000101000000.010Z" },
        { 2000, 0, 1, 0, 0, 0, 99, "20000101000000.099Z" },
        { 2000, 0, 1, 0, 0, 0, 100, "20000101000000.100Z" },
        { 2000, 0, 1, 0, 0, 0, 999, "20000101000000.999Z" }, };
  }
  /**
   * Tests {@link StaticUtils#formatAsGeneralizedTime(long)} .
   *
   * @param yyyy
   *          The year.
   * @param MM
   *          The month.
   * @param dd
   *          The day.
   * @param HH
   *          The hour.
   * @param mm
   *          The minute.
   * @param ss
   *          The second.
   * @param SSS
   *          The milli-seconds.
   * @param expected
   *          The expected generalized time formatted string.
   * @throws Exception
   *           If an unexpected error occurred.
   */
  @Test(dataProvider = "createFormatData")
  public void testFormatLong(int yyyy, int MM, int dd, int HH, int mm,
      int ss, int SSS, String expected) throws Exception
  {
    Calendar calendar = new GregorianCalendar(TimeZone
        .getTimeZone("UTC"));
    calendar.set(yyyy, MM, dd, HH, mm, ss);
    calendar.set(Calendar.MILLISECOND, SSS);
    long time = calendar.getTimeInMillis();
    String actual = StaticUtils.formatAsGeneralizedTime(time);
    Assert.assertEquals(actual, expected);
  }
  /**
   * Tests {@link GeneralizedTimeSyntax#format(java.util.Date)}.
   *
   * @param yyyy
   *          The year.
   * @param MM
   *          The month.
   * @param dd
   *          The day.
   * @param HH
   *          The hour.
   * @param mm
   *          The minute.
   * @param ss
   *          The second.
   * @param SSS
   *          The milli-seconds.
   * @param expected
   *          The expected generalized time formatted string.
   * @throws Exception
   *           If an unexpected error occurred.
   */
  @Test(dataProvider = "createFormatData")
  public void testFormatDate(int yyyy, int MM, int dd, int HH, int mm,
      int ss, int SSS, String expected) throws Exception
  {
    Calendar calendar = new GregorianCalendar(TimeZone
        .getTimeZone("UTC"));
    calendar.set(yyyy, MM, dd, HH, mm, ss);
    calendar.set(Calendar.MILLISECOND, SSS);
    Date time = new Date(calendar.getTimeInMillis());
    String actual = StaticUtils.formatAsGeneralizedTime(time);
    Assert.assertEquals(actual, expected);
  }
}
sdk/tests/unit-tests-testng/src/org/opends/sdk/LinkedAttributeTest.java
@@ -30,6 +30,7 @@
import org.opends.sdk.schema.Schema;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.opends.sdk.ByteString;
@@ -54,18 +55,20 @@
    attribute.add("a value");
    attribute.add(ByteString.valueOf("another value"));
    System.out.println(attribute);
    System.out.println(attribute.contains(1));
    System.out.println(attribute.contains("a value"));
    System.out.println(attribute.contains(ByteString
    Assert.assertTrue(attribute.contains(1));
    Assert.assertTrue(attribute.contains("a value"));
    Assert.assertTrue(attribute.contains(ByteString
        .valueOf("another value")));
    attribute.remove(1);
    System.out.println(attribute);
    attribute.remove("a value");
    System.out.println(attribute);
    attribute.remove(ByteString.valueOf("another value"));
    System.out.println(attribute);
    Assert.assertEquals(attribute.size(), 3);
    Assert.assertTrue(attribute.remove(1));
    Assert.assertEquals(attribute.size(), 2);
    Assert.assertFalse(attribute.remove("a missing value"));
    Assert.assertEquals(attribute.size(), 2);
    Assert.assertTrue(attribute.remove("a value"));
    Assert.assertEquals(attribute.size(), 1);
    Assert.assertTrue(attribute.remove(ByteString
        .valueOf("another value")));
    Assert.assertEquals(attribute.size(), 0);
  }
}
sdk/tests/unit-tests-testng/src/org/opends/sdk/OpenDSTestCase.java
@@ -1,15 +1,43 @@
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 * add the following below this CDDL HEADER, with the fields enclosed
 * by brackets "[]" replaced with your own identifying information:
 *      Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 *
 *
 *      Copyright 2009 Sun Microsystems, Inc.
 */
package org.opends.sdk;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.AfterClass;
import org.testng.annotations.Test;
import org.opends.server.TestCaseUtils;
import java.util.IdentityHashMap;
import java.util.Set;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.IdentityHashMap;
import java.util.Set;
import org.testng.annotations.AfterClass;
import org.testng.annotations.Test;
/**
 * This class defines a base test case that should be subclassed by all
@@ -21,72 +49,83 @@
@Test(sequential=true)
public abstract class OpenDSTestCase 
{
   @BeforeSuite
  public final void suppressOutput() {
    TestCaseUtils.suppressOutput();
  }
  @AfterSuite
  public final void shutdownServer() {
    TestCaseUtils.unsupressOutput();
  }
  //
  // This is all a HACK to reduce the amount of memory that's consumed.
  //
  // This could be a problem if a subclass references a @DataProvider in
  // a super-class that provides static parameters, i.e. the parameters are
  // a super-class that provides static parameters, i.e. the parameters
  // are
  // not regenerated for each invocation of the DataProvider.
  //
  /** A list of all parameters that were generated by a @DataProvider
   *  and passed to a test method of this class.  TestListener helps us
   *  keep this so that once all of the tests are finished, we can clear
   *  it out in an @AfterClass method.  We can't just clear it out right
   *  away in the TestListener because some methods share a @DataProvider.*/
  /**
   * A list of all parameters that were generated by a @DataProvider and
   * passed to a test method of this class. TestListener helps us keep
   * this so that once all of the tests are finished, we can clear it
   * out in an @AfterClass method. We can't just clear it out right away
   * in the TestListener because some methods share a @DataProvider.
   */
  private final IdentityHashMap<Object[],Object> successfulTestParams = new IdentityHashMap<Object[],Object>();
  /** These are test parameters from a test that has failed.  We need to
  /**
   * These are test parameters from a test that has failed. We need to
   *  keep these around because the test report expects to find them when
   *  printing out failures. */
   * printing out failures.
   */
  private final IdentityHashMap<Object[],Object> failedTestParams = new IdentityHashMap<Object[],Object>();
  /**
   * Adds testParams to the list of all test parameters, so it can be
   * null'ed out later if it's not part.
   */
  void addParamsFromSuccessfulTests(Object[] testParams) {
    if (testParams != null) {
  void addParamsFromSuccessfulTests(Object[] testParams)
  {
    if (testParams != null)
    {
      successfulTestParams.put(testParams, testParams);
    }
  }
  /**
   * Adds testParams to the list of all failed test parameters, so that we
   * know to NOT null it out later.
   * Adds testParams to the list of all failed test parameters, so that
   * we know to NOT null it out later.
   */
  void addParamsFromFailedTest(Object[] testParams) {
    if (testParams != null) {
  void addParamsFromFailedTest(Object[] testParams)
  {
    if (testParams != null)
    {
      failedTestParams.put(testParams, testParams);
    }
  }
  /**
   * null out all test parameters except the ones used in failed tests
   * since we might need these again.
   */
  @AfterClass(alwaysRun = true)
  public void clearSuccessfulTestParams() {
  public void clearSuccessfulTestParams()
  {
    Set<Object[]> paramsSet = successfulTestParams.keySet();
    if (paramsSet == null) {  // Can this ever happen?
    if (paramsSet == null)
    { // Can this ever happen?
      return;
    }
    for (Object[] params: paramsSet) {
      if (failedTestParams.containsKey(params)) {
    for (Object[] params : paramsSet)
    {
      if (failedTestParams.containsKey(params))
      {
        continue;
      }
      for (int i = 0; i < params.length; i++) {
      for (int i = 0; i < params.length; i++)
      {
        params[i] = null;
      }
    }
@@ -94,38 +133,47 @@
    failedTestParams.clear();
  }
  /**
   * The member variables of a test class can prevent lots of memory from being
   * reclaimed, so we use reflection to null out all of the member variables
   * after the tests have run.  Since all tests must inherit from
   * DirectoryServerTestCase, TestNG guarantees that this method runs after
   * all of the subclass methods, so this isn't too dangerous.
   * The member variables of a test class can prevent lots of memory
   * from being reclaimed, so we use reflection to null out all of the
   * member variables after the tests have run. Since all tests must
   * inherit from DirectoryServerTestCase, TestNG guarantees that this
   * method runs after all of the subclass methods, so this isn't too
   * dangerous.
   */
  @AfterClass(alwaysRun = true)
  public void nullMemberVariablesAfterTest() {
    Class cls = this.getClass();
  public void nullMemberVariablesAfterTest()
  {
    Class<?> cls = this.getClass();
    // Iterate through all of the fields in all subclasses of
    // DirectoryServerTestCase, but not DirectoryServerTestCase itself.
    while (OpenDSTestCase.class.isAssignableFrom(cls) &&
           !OpenDSTestCase.class.equals(cls))
    while (OpenDSTestCase.class.isAssignableFrom(cls)
        && !OpenDSTestCase.class.equals(cls))
    {
      Field fields[] = cls.getDeclaredFields();
      for (int i = 0; i < fields.length; i++) {
      for (int i = 0; i < fields.length; i++)
      {
        Field field = fields[i];
        int modifiers = field.getModifiers();
        Class fieldClass = field.getType();
        // If it's a non-static non-final non-primitive type, then null it out
        // so that the garbage collector can reclaim it and everything it
        Class<?> fieldClass = field.getType();
        // If it's a non-static non-final non-primitive type, then null
        // it out
        // so that the garbage collector can reclaim it and everything
        // it
        // references.
        if (!fieldClass.isPrimitive() &&
            !fieldClass.isEnum()      &&
            !Modifier.isFinal(modifiers) &&
            !Modifier.isStatic(modifiers))
        if (!fieldClass.isPrimitive() && !fieldClass.isEnum()
            && !Modifier.isFinal(modifiers)
            && !Modifier.isStatic(modifiers))
        {
          field.setAccessible(true);
          try {
          try
          {
            field.set(this, null);
          } catch (IllegalAccessException e) {
          }
          catch (IllegalAccessException e)
          {
            // We're only doing this to save memory, so it's no big deal
            // if we can't set it.
          }
sdk/tests/unit-tests-testng/src/org/opends/sdk/SuiteRunner.java
New file
@@ -0,0 +1,54 @@
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 * add the following below this CDDL HEADER, with the fields enclosed
 * by brackets "[]" replaced with your own identifying information:
 *      Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 *
 *
 *      Copyright 2008 Sun Microsystems, Inc.
 */
package org.opends.sdk;
import org.testng.TestNG;
/**
 * This class wraps TestNG so that we can force the process to exit if
 * there is an uncaught exception (e.g. OutOfMemoryError).
 */
public class SuiteRunner
{
  public static void main(String[] args)
  {
    try
    {
      TestNG.main(args);
    }
    catch (Throwable e)
    {
      System.err.println("TestNG.main threw an expected exception:");
      e.printStackTrace(System.err);
      System.exit(TestNG.HAS_FAILURE);
    }
  }
}
sdk/tests/unit-tests-testng/src/org/opends/sdk/TestListener.java
New file
@@ -0,0 +1,1458 @@
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 * add the following below this CDDL HEADER, with the fields enclosed
 * by brackets "[]" replaced with your own identifying information:
 *      Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 *
 *
 *      Copyright 2008 Sun Microsystems, Inc.
 */
package org.opends.sdk;
import org.testng.TestListenerAdapter;
import org.testng.IReporter;
import org.testng.ISuite;
import org.testng.ITestResult;
import org.testng.IClass;
import org.testng.ITestNGMethod;
import org.testng.ITestContext;
import org.testng.annotations.Test;
import org.testng.annotations.DataProvider;
import org.testng.xml.XmlSuite;
import static com.sun.opends.sdk.util.StaticUtils.EOL;
import java.util.*;
import java.io.PrintStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
/**
 * This class is our replacement for the test results that TestNG
 * generates. It prints out test to the console as they happen.
 */
public class TestListener extends TestListenerAdapter implements
    IReporter
{
  /**
   *
   */
  private static class TestClassResults
  {
    private final IClass _cls;
    private final LinkedHashMap<ITestNGMethod, TestMethodResults> _methods = new LinkedHashMap<ITestNGMethod, TestMethodResults>();
    private int _totalInvocations = 0;
    private long _totalDurationMs = 0;
    // Indexed by SUCCESS, FAILURE, SKIP, SUCCESS_PERCENTAGE_FAILURE
    private int[] _resultCounts = new int[STATUSES.length];
    public TestClassResults(IClass cls)
    {
      _cls = cls;
    }
    private TestMethodResults getResultsForMethod(ITestNGMethod method)
    {
      TestMethodResults results = _methods.get(method);
      if (results == null)
      {
        results = new TestMethodResults(method);
        _methods.put(method, results);
      }
      return results;
    }
    synchronized void addTestResult(ITestResult result)
    {
      _totalInvocations++;
      _totalDurationMs += result.getEndMillis()
          - result.getStartMillis();
      getResultsForMethod(result.getMethod()).addTestResult(result);
      int status = result.getStatus();
      if (status < 0 || status >= _resultCounts.length)
      {
        status = 0;
      }
      _resultCounts[status]++;
    }
    synchronized Collection<TestMethodResults> getAllMethodResults()
    {
      return _methods.values();
    }
    synchronized void getSummaryTimingInfo(StringBuilder timingOutput)
    {
      timingOutput.append(_cls.getRealClass().getName() + "    ");
      timingOutput.append(getTotalDurationMs() + " ms" + " ("
          + getTotalInvocations() + ")");
    }
    synchronized void getTimingInfo(StringBuilder timingOutput)
    {
      getSummaryTimingInfo(timingOutput);
      timingOutput.append(EOL);
      for (TestMethodResults results : getAllMethodResults())
      {
        results.getTimingInfo(timingOutput, false);
      }
      timingOutput.append(EOL);
    }
    long getTotalDurationMs()
    {
      return _totalDurationMs;
    }
    int getTotalInvocations()
    {
      return _totalInvocations;
    }
  }
  /**
   *
   */
  private static class TestMethodResults
  {
    private final ITestNGMethod _method;
    int _totalInvocations = 0;
    long _totalDurationMs = 0;
    // Indexed by SUCCESS, FAILURE, SKIP, SUCCESS_PERCENTAGE_FAILURE
    private int[] _resultCounts = new int[STATUSES.length];
    public TestMethodResults(ITestNGMethod method)
    {
      _method = method;
    }
    synchronized void addTestResult(ITestResult result)
    {
      _totalInvocations++;
      _totalDurationMs += result.getEndMillis()
          - result.getStartMillis();
      int status = result.getStatus();
      if (status < 0 || status >= _resultCounts.length)
      {
        status = 0;
      }
      _resultCounts[status]++;
    }
    synchronized void getTimingInfo(StringBuilder timingOutput,
        boolean includeClassName)
    {
      timingOutput.append("    ");
      if (includeClassName)
      {
        timingOutput.append(_method.getRealClass().getName()).append(
            "#");
      }
      timingOutput.append(_method.getMethodName() + "  ");
      timingOutput.append(_totalDurationMs + " ms" + " ("
          + _totalInvocations + ")");
      if (_resultCounts[ITestResult.FAILURE] > 0)
      {
        timingOutput.append(" " + _resultCounts[ITestResult.FAILURE]
            + " failure(s)");
      }
      timingOutput.append(EOL);
    }
  }
  public static final String REPORT_FILE_NAME = "results.txt";
  // This is used to communicate with build.xml. So that even when a
  // test
  // fails, we can do the coverage report before failing the build.
  public static final String ANT_TESTS_FAILED_FILE_NAME = ".tests-failed-marker";
  private final StringBuilder _bufferedTestFailures = new StringBuilder();
  public static final String PROPERTY_TEST_PROGRESS = "test.progress";
  public static final String TEST_PROGRESS_NONE = "none";
  public static final String TEST_PROGRESS_ALL = "all";
  public static final String TEST_PROGRESS_DEFAULT = "default";
  public static final String TEST_PROGRESS_TIME = "time";
  public static final String TEST_PROGRESS_TEST_COUNT = "count";
  // for
  // now,
  // since
  // it's
  // not
  // useful
  // to
  // most
  // developers
  public static final String TEST_PROGRESS_MEMORY = "memory";
  public static final String TEST_PROGRESS_MEMORY_GCS = "gcs"; // Hidden
  public static final String TEST_PROGRESS_THREAD_COUNT = "threadcount";
  public static final String TEST_PROGRESS_THREAD_CHANGES = "threadchanges";
  private boolean doProgressNone = false;
  private boolean doProgressTime = true;
  private boolean doProgressTestCount = true;
  private boolean doProgressMemory = false;
  private boolean doProgressMemoryGcs = false;
  private boolean doProgressThreadCount = false;
  private boolean doProgressThreadChanges = false;
  private static final String DIVIDER_LINE = "-------------------------------------------------------------------------------"
      + EOL;
  private final static int PAGE_WIDTH = 80;
  public static void pauseOnFailure()
  {
    File tempFile = null;
    try
    {
      tempFile = File.createTempFile("testfailure", "watchdog");
      tempFile.deleteOnExit();
      System.err.println("**** Pausing test execution until file "
          + tempFile.getCanonicalPath() + " is removed.");
    }
    catch (Exception e)
    {
      System.err.println("**** ERROR:  Could not create a watchdog "
          + "file.  Pausing test execution indefinitely.");
      System.err.println("**** You will have to manually kill the "
          + "JVM when you're done investigating the problem.");
    }
    while ((tempFile != null) && tempFile.exists())
    {
      try
      {
        Thread.sleep(100);
      }
      catch (Exception e)
      {
      }
    }
    System.err.println("**** Watchdog file removed.  Resuming test "
        + "case execution.");
  }
  /**
   * Return a String representation of all of the current threads.
   *
   * @return a dump of all Threads on the server
   */
  public static String threadStacksToString()
  {
    Map<Thread, StackTraceElement[]> threadStacks = Thread
        .getAllStackTraces();
    // Re-arrange all of the elements by thread ID so that there is some
    // logical
    // order.
    TreeMap<Long, Map.Entry<Thread, StackTraceElement[]>> orderedStacks = new TreeMap<Long, Map.Entry<Thread, StackTraceElement[]>>();
    for (Map.Entry<Thread, StackTraceElement[]> e : threadStacks
        .entrySet())
    {
      orderedStacks.put(e.getKey().getId(), e);
    }
    final StringBuilder buffer = new StringBuilder();
    for (Map.Entry<Thread, StackTraceElement[]> e : orderedStacks
        .values())
    {
      Thread t = e.getKey();
      StackTraceElement[] stackElements = e.getValue();
      long id = t.getId();
      buffer.append("id=");
      buffer.append(id);
      buffer.append(" ---------- ");
      buffer.append(t.getName());
      buffer.append(" ----------");
      buffer.append(EOL);
      if (stackElements != null)
      {
        for (int j = 0; j < stackElements.length; j++)
        {
          buffer.append("   ").append(stackElements[j].getClassName());
          buffer.append(".");
          buffer.append(stackElements[j].getMethodName());
          buffer.append("(");
          buffer.append(stackElements[j].getFileName());
          buffer.append(":");
          if (stackElements[j].isNativeMethod())
          {
            buffer.append("native");
          }
          else
          {
            buffer.append(stackElements[j].getLineNumber());
          }
          buffer.append(")").append(EOL);
        }
      }
      buffer.append(EOL);
    }
    return buffer.toString();
  }
  private static String center(String header)
  {
    StringBuilder buffer = new StringBuilder();
    int indent = (PAGE_WIDTH - header.length()) / 2;
    for (int i = 0; i < indent; i++)
    {
      buffer.append(" ");
    }
    buffer.append(header);
    return buffer.toString();
  }
  private Set<Class<?>> _checkedForTypeAndAnnotations = new HashSet<Class<?>>();
  private final LinkedHashSet<Class<?>> _classesWithTestsRunInterleaved = new LinkedHashSet<Class<?>>();
  private Object _lastTestObject = null;
  private final IdentityHashMap<Object, Object> _previousTestObjects = new IdentityHashMap<Object, Object>();
  private Set<Method> _checkedForAnnotation = new HashSet<Method>();
  private boolean statusHeaderPrinted = false;
  private final long startTimeMs = System.currentTimeMillis();
  private long prevTimeMs = System.currentTimeMillis();
  private List<String> prevThreads = new ArrayList<String>();
  private long prevMemInUse = 0;
  private long maxMemInUse = 0;
  private final LinkedHashMap<IClass, TestClassResults> _classResults = new LinkedHashMap<IClass, TestClassResults>();
  private static final int NUM_SLOWEST_METHODS = 100;
  private final static String[] STATUSES = { "<<invalid>>", "Success",
      "Failure", "Skip", "Success Percentage Failure" };
  public TestListener() throws Exception
  {
    initializeProgressVars();
  }
  public void generateReport(List<XmlSuite> xmlSuites,
      List<ISuite> suites, String outputDirectory)
  {
    File reportFile = new File(outputDirectory, REPORT_FILE_NAME);
    writeReportToFile(reportFile);
    writeReportToScreen(reportFile);
    writeAntTestsFailedMarker(outputDirectory);
  }
  public void onConfigurationFailure(ITestResult tr)
  {
    super.onConfigurationFailure(tr);
    IClass cls = tr.getTestClass();
    ITestNGMethod method = tr.getMethod();
    String fqMethod = cls.getName() + "#" + method.getMethodName();
    StringBuilder failureInfo = new StringBuilder();
    failureInfo.append("Failed Test:  ").append(fqMethod).append(EOL);
    // Object[] parameters = tr.getParameters();
    Throwable cause = tr.getThrowable();
    if (cause != null)
    {
      failureInfo.append("Failure Cause:  ").append(
          getTestngLessStack(cause));
    }
    failureInfo.append(EOL + EOL);
    System.err.print(EOL + EOL + EOL
        + "         C O N F I G U R A T I O N   F A I L U R E ! ! !"
        + EOL + EOL);
    System.err.print(failureInfo);
    System.err.print(DIVIDER_LINE + EOL + EOL);
    _bufferedTestFailures.append(failureInfo);
  }
  public void onStart(ITestContext testContext)
  {
    super.onStart(testContext);
    // Delete the previous report if it's there.
    new File(testContext.getOutputDirectory(), REPORT_FILE_NAME)
        .delete();
  }
  public void onTestFailedButWithinSuccessPercentage(ITestResult tr)
  {
    super.onTestFailedButWithinSuccessPercentage(tr);
    onTestFinished(tr);
  }
  public void onTestFailure(ITestResult tr)
  {
    super.onTestFailure(tr);
    IClass cls = tr.getTestClass();
    ITestNGMethod method = tr.getMethod();
    String fqMethod = cls.getName() + "#" + method.getMethodName();
    StringBuilder failureInfo = new StringBuilder();
    failureInfo.append("Failed Test:  ").append(fqMethod).append(EOL);
    Object[] parameters = tr.getParameters();
    Throwable cause = tr.getThrowable();
    if (cause != null)
    {
      failureInfo.append("Failure Cause:  ").append(
          getTestngLessStack(cause));
    }
    for (int i = 0; (parameters != null) && (i < parameters.length); i++)
    {
      Object parameter = parameters[i];
      failureInfo.append("parameter[" + i + "]: ").append(parameter)
          .append(EOL);
    }
    failureInfo.append(EOL + EOL);
    System.err.print(EOL + EOL + EOL
        + "                 T E S T   F A I L U R E ! ! !" + EOL + EOL);
    System.err.print(failureInfo);
    System.err.print(DIVIDER_LINE + EOL + EOL);
    _bufferedTestFailures.append(failureInfo);
    String pauseStr = System
        .getProperty("org.opends.test.pauseOnFailure");
    if ((pauseStr != null) && pauseStr.equalsIgnoreCase("true"))
    {
      pauseOnFailure();
    }
    onTestFinished(tr);
  }
  public void onTestSkipped(ITestResult tr)
  {
    super.onTestSkipped(tr);
    onTestFinished(tr);
  }
  public void onTestStart(ITestResult tr)
  {
    super.onTestStart(tr);
    enforceTestClassTypeAndAnnotations(tr);
    checkForInterleavedBetweenClasses(tr);
    enforceMethodHasAnnotation(tr);
  }
  public void onTestSuccess(ITestResult tr)
  {
    super.onTestSuccess(tr);
    onTestFinished(tr);
  }
  private void addTestResult(ITestResult result)
  {
    getResultsForClass(result.getTestClass()).addTestResult(result);
    // Read the comments in DirectoryServerTestCase to understand what's
    // going on here.
    Object[] testInstances = result.getMethod().getInstances();
    for (int i = 0; i < testInstances.length; i++)
    {
      Object testInstance = testInstances[i];
      if (testInstance instanceof OpenDSTestCase)
      {
        OpenDSTestCase openDSTestCase = (OpenDSTestCase) testInstance;
        Object[] parameters = result.getParameters();
        if (result.getStatus() == ITestResult.SUCCESS)
        {
          openDSTestCase.addParamsFromSuccessfulTests(parameters);
          // This can eat up a bunch of memory for tests that are
          // expected to throw
          result.setThrowable(null);
        }
        else
        {
          openDSTestCase.addParamsFromFailedTest(parameters);
          // When the test finishes later on, we might not have
          // everything
          // that we need to print the result (e.g. the Schema for an
          // Entry
          // or DN), so go ahead and convert it to a String now.
          result.setParameters(convertToStringParameters(parameters));
        }
      }
      else
      {
        // We already warned about it.
      }
    }
  }
  private void checkForInterleavedBetweenClasses(ITestResult tr)
  {
    Object[] testInstances = tr.getMethod().getInstances();
    // This will almost always have a single element. If it doesn't,
    // just
    // skip it.
    if (testInstances.length != 1)
    {
      return;
    }
    Object testInstance = testInstances[0];
    // We're running another test on the same test object. Everything is
    // fine.
    if (_lastTestObject == testInstance)
    {
      return;
    }
    // Otherwise, we're running a new test, so save the old one.
    if (_lastTestObject != null)
    {
      _previousTestObjects.put(_lastTestObject, _lastTestObject);
    }
    // Output progress info since we're running a new class
    outputTestProgress(_lastTestObject);
    // And make sure we don't have a test object that we already ran
    // tests with.
    if (_previousTestObjects.containsKey(testInstance))
    {
      _classesWithTestsRunInterleaved.add(testInstance.getClass());
    }
    _lastTestObject = testInstance;
  }
  private String[] convertToStringParameters(Object[] parameters)
  {
    if (parameters == null)
    {
      return null;
    }
    String[] strParams = new String[parameters.length];
    for (int i = 0; i < parameters.length; i++)
    {
      strParams[i] = String.valueOf(parameters[i]).intern();
    }
    return strParams;
  }
  private int countTestMethods()
  {
    int count = 0;
    for (TestClassResults results : _classResults.values())
    {
      count += results._methods.size();
    }
    return count;
  }
  private int countTestsWithStatus(int status)
  {
    int count = 0;
    for (TestClassResults results : _classResults.values())
    {
      count += results._resultCounts[status];
    }
    return count;
  }
  private int countTotalInvocations()
  {
    int count = 0;
    for (TestClassResults results : _classResults.values())
    {
      count += results._totalInvocations;
    }
    return count;
  }
  private void enforceMethodHasAnnotation(ITestResult tr)
  {
    // Only warn once per method.
    Method testMethod = tr.getMethod().getMethod();
    if (_checkedForAnnotation.contains(testMethod))
    {
      return;
    }
    _checkedForAnnotation.add(testMethod);
    Annotation testAnnotation = testMethod.getAnnotation(Test.class);
    Annotation dataProviderAnnotation = testMethod
        .getAnnotation(DataProvider.class);
    if ((testAnnotation == null) && (dataProviderAnnotation == null))
    {
      String errorMessage = "The test method "
          + testMethod
          + " does not have a @Test annotation.  "
          + "However, TestNG assumes it is a test method because it's a public method "
          + "in a class with a class-level @Test annotation.  You can remove this warning by either "
          + "marking the method with @Test or by making it non-public.";
      System.err.println("\n\nWARNING: " + errorMessage + "\n\n");
    }
  }
  private void enforceTestClassTypeAndAnnotations(ITestResult tr)
  {
    Class<?> testClass = null;
    testClass = tr.getMethod().getRealClass();
    // Only warn once per class.
    if (_checkedForTypeAndAnnotations.contains(testClass))
    {
      return;
    }
    _checkedForTypeAndAnnotations.add(testClass);
    if (!OpenDSTestCase.class.isAssignableFrom(testClass))
    {
      String errorMessage = "The test class " + testClass.getName()
          + " must inherit (directly or indirectly) "
          + "from DirectoryServerTestCase.";
      System.err.println("\n\nERROR: " + errorMessage + "\n\n");
      throw new RuntimeException(errorMessage);
    }
    Class<?> classWithTestAnnotation = findClassWithTestAnnotation(testClass);
    if (classWithTestAnnotation == null)
    {
      String errorMessage = "The test class "
          + testClass.getName()
          + " does not have a @Test annotation.  "
          + "All test classes must have a @Test annotation, and this annotation must have "
          + "sequential=true set to ensure that tests for a single class are run together.";
      System.err.println("\n\nERROR: " + errorMessage + "\n\n");
      throw new RuntimeException(errorMessage);
    }
    Test testAnnotation = classWithTestAnnotation
        .getAnnotation(Test.class);
    if (!testAnnotation.sequential())
    {
      // Give an error message that is as specific as possible.
      String errorMessage = "The @Test annotation for class "
          + testClass.getName()
          + (classWithTestAnnotation.equals(testClass) ? " "
              : (", which is declared by class "
                  + classWithTestAnnotation.getName() + ", "))
          + "must include sequential=true to ensure that tests for a single class are run together.";
      System.err.println("\n\nERROR: " + errorMessage + "\n\n");
      throw new RuntimeException(errorMessage);
    }
  }
  // Return the class in cls's inheritence hierarchy that has the @Test
  // annotation defined.
  private Class<?> findClassWithTestAnnotation(Class<?> cls)
  {
    while (cls != null)
    {
      if (cls.getAnnotation(Test.class) != null)
      {
        return cls;
      }
      else
      {
        cls = cls.getSuperclass();
      }
    }
    return null;
  }
  synchronized private List<TestMethodResults> getAllMethodResults()
  {
    List<TestMethodResults> allResults = new ArrayList<TestMethodResults>();
    for (TestClassResults results : _classResults.values())
    {
      allResults.addAll(results.getAllMethodResults());
    }
    return allResults;
  }
  private List<TestClassResults> getClassesDescendingSortedByDuration()
  {
    List<TestClassResults> allClasses = new ArrayList<TestClassResults>(
        _classResults.values());
    Collections.sort(allClasses, new Comparator<TestClassResults>()
    {
      public int compare(TestClassResults o1, TestClassResults o2)
      {
        if (o1._totalDurationMs > o2._totalDurationMs)
        {
          return -1;
        }
        else if (o1._totalDurationMs < o2._totalDurationMs)
        {
          return 1;
        }
        else
        {
          return 0;
        }
      }
    });
    return allClasses;
  }
  private String getFqMethod(ITestResult result)
  {
    IClass cls = result.getTestClass();
    ITestNGMethod method = result.getMethod();
    return cls.getName() + "#" + method.getMethodName();
  }
  private List<TestMethodResults> getMethodsDescendingSortedByDuration()
  {
    List<TestMethodResults> allMethods = getAllMethodResults();
    Collections.sort(allMethods, new Comparator<TestMethodResults>()
    {
      public int compare(TestMethodResults o1, TestMethodResults o2)
      {
        if (o1._totalDurationMs > o2._totalDurationMs)
        {
          return -1;
        }
        else if (o1._totalDurationMs < o2._totalDurationMs)
        {
          return 1;
        }
        else
        {
          return 0;
        }
      }
    });
    return allMethods;
  }
  private TestClassResults getResultsForClass(IClass cls)
  {
    TestClassResults results = _classResults.get(cls);
    if (results == null)
    {
      results = new TestClassResults(cls);
      _classResults.put(cls, results);
    }
    return results;
  }
  private void getSlowestTestsOutput(StringBuilder timingOutput)
  {
    timingOutput.append(center("CLASS SUMMARY SORTED BY DURATION"))
        .append(EOL);
    timingOutput.append(
        center("[class-name total-time (total-invocations)]")).append(
        EOL + EOL);
    List<TestClassResults> sortedClasses = getClassesDescendingSortedByDuration();
    for (int i = 0; i < sortedClasses.size(); i++)
    {
      TestClassResults results = sortedClasses.get(i);
      timingOutput.append("  ");
      results.getSummaryTimingInfo(timingOutput);
      timingOutput.append(EOL);
    }
    timingOutput.append(EOL + DIVIDER_LINE + EOL + EOL);
    timingOutput.append(center("SLOWEST METHODS")).append(EOL);
    timingOutput.append(
        center("[method-name total-time (total-invocations)]")).append(
        EOL + EOL);
    List<TestMethodResults> sortedMethods = getMethodsDescendingSortedByDuration();
    for (int i = 0; i < Math.min(sortedMethods.size(),
        NUM_SLOWEST_METHODS); i++)
    {
      TestMethodResults results = sortedMethods.get(i);
      results.getTimingInfo(timingOutput, true);
    }
  }
  private String getTestngLessStack(Throwable t)
  {
    StackTraceElement[] elements = t.getStackTrace();
    int lowestOpenDSFrame;
    for (lowestOpenDSFrame = elements.length - 1; lowestOpenDSFrame >= 0; lowestOpenDSFrame--)
    {
      StackTraceElement element = elements[lowestOpenDSFrame];
      String clsName = element.getClassName();
      if (clsName.startsWith("org.opends.")
          && !clsName.equals("org.opends.server.SuiteRunner"))
      {
        break;
      }
    }
    StringBuilder buffer = new StringBuilder();
    buffer.append(t).append(EOL);
    for (int i = 0; i <= lowestOpenDSFrame; i++)
    {
      buffer.append("    ").append(elements[i]).append(EOL);
    }
    Throwable cause = t.getCause();
    if (t != null)
    {
      if (cause instanceof InvocationTargetException)
      {
        InvocationTargetException invocation = ((InvocationTargetException) cause);
        buffer.append("Invocation Target Exception: "
            + getTestngLessStack(invocation));
      }
    }
    return buffer.toString();
  }
  private void initializeProgressVars()
  {
    String prop = System.getProperty(PROPERTY_TEST_PROGRESS);
    if (prop == null)
    {
      return;
    }
    prop = prop.toLowerCase();
    List<String> progressValues = Arrays.asList(prop
        .split("\\s*\\W+\\s*"));
    if ((prop.length() == 0) || progressValues.isEmpty())
    {
      // Accept the defaults
    }
    else if (progressValues.contains(TEST_PROGRESS_NONE))
    {
      doProgressNone = true;
      doProgressTime = false;
      doProgressTestCount = false;
      doProgressMemory = false;
      doProgressMemoryGcs = false;
      doProgressThreadCount = false;
      doProgressThreadChanges = false;
    }
    else if (progressValues.contains(TEST_PROGRESS_ALL))
    {
      doProgressNone = false;
      doProgressTime = true;
      doProgressTestCount = true;
      doProgressMemory = true;
      doProgressMemoryGcs = true;
      doProgressThreadCount = true;
      doProgressThreadChanges = true;
    }
    else
    {
      doProgressNone = false;
      doProgressTime = progressValues.contains(TEST_PROGRESS_TIME);
      doProgressTestCount = progressValues
          .contains(TEST_PROGRESS_TEST_COUNT);
      doProgressMemory = progressValues.contains(TEST_PROGRESS_MEMORY);
      doProgressMemoryGcs = progressValues
          .contains(TEST_PROGRESS_MEMORY_GCS);
      doProgressThreadCount = progressValues
          .contains(TEST_PROGRESS_THREAD_COUNT);
      doProgressThreadChanges = progressValues
          .contains(TEST_PROGRESS_THREAD_CHANGES);
      // If we were asked to do the defaults, then restore anything
      // that's on by default
      if (progressValues.contains(TEST_PROGRESS_DEFAULT))
      {
        doProgressTime = true;
        doProgressTestCount = true;
      }
    }
  }
  private List<String> listAllThreadNames()
  {
    Thread currentThread = Thread.currentThread();
    ThreadGroup topGroup = currentThread.getThreadGroup();
    while (topGroup.getParent() != null)
    {
      topGroup = topGroup.getParent();
    }
    Thread threads[] = new Thread[topGroup.activeCount() * 2];
    int numThreads = topGroup.enumerate(threads);
    List<String> activeThreads = new ArrayList<String>();
    for (int i = 0; i < numThreads; i++)
    {
      Thread thread = threads[i];
      if (thread.isAlive())
      {
        String fullName = thread.getName();
        activeThreads.add(fullName);
      }
    }
    Collections.sort(activeThreads);
    return activeThreads;
  }
  private void onTestFinished(ITestResult tr)
  {
    // Clear when a test finishes instead before the next one starts
    // so that we get the output generated by any @BeforeClass method
    // etc.
    addTestResult(tr);
  }
  private void outputTestProgress(Object finishedTestObject)
  {
    if (doProgressNone)
    {
      return;
    }
    printStatusHeaderOnce();
    if (doProgressTime)
    {
      long curTimeMs = System.currentTimeMillis();
      long durationSec = (curTimeMs - startTimeMs) / 1000;
      long durationLastMs = curTimeMs - prevTimeMs;
      System.err.printf("{%2d:%02d (%3.0fs)}  ", (durationSec / 60),
          (durationSec % 60), (durationLastMs / 1000.0));
      prevTimeMs = curTimeMs;
    }
    if (doProgressTestCount)
    {
      System.err.printf("{%3dc %4dm %5di %df}  ", _classResults.size(),
          countTestMethods(), countTotalInvocations(),
          countTestsWithStatus(ITestResult.FAILURE));
    }
    if (doProgressMemory)
    {
      Runtime runtime = Runtime.getRuntime();
      long beforeGc = System.currentTimeMillis();
      int gcs = runGc();
      long gcDuration = System.currentTimeMillis() - beforeGc;
      long totalMemory = runtime.totalMemory();
      long freeMemory = runtime.freeMemory();
      long curMemInUse = totalMemory - freeMemory;
      long memDelta = curMemInUse - prevMemInUse;
      double perMegaByte = 1.0 / (1024.0 * 1024.0);
      maxMemInUse = Math.max(maxMemInUse, curMemInUse);
      System.err.printf("{%5.1fMB  %+5.1fMB}  ", curMemInUse
          * perMegaByte, memDelta * perMegaByte);
      if (doProgressMemoryGcs)
      {
        System.err.printf("{%2d gcs  %4.1fs}  ", gcs,
            gcDuration / 1000.0);
      }
      prevMemInUse = curMemInUse;
    }
    if (doProgressThreadCount)
    {
      System.err.printf("{#td %3d}  ", Thread.activeCount());
    }
    if (finishedTestObject == null)
    {
      System.err.println(": starting");
    }
    else
    {
      String abbrClass = packageLessClass(finishedTestObject);
      System.err.printf(": %s ", abbrClass).flush();
      System.err.println();
    }
    if (doProgressThreadChanges)
    {
      List<String> currentThreads = listAllThreadNames();
      List<String> newThreads = removeExactly(prevThreads,
          currentThreads);
      List<String> oldThreads = removeExactly(currentThreads,
          prevThreads);
      if (!newThreads.isEmpty())
      {
        System.err.println("  Thread changes:");
        for (int i = 0; i < oldThreads.size(); i++)
        {
          String threadName = oldThreads.get(i);
          System.err.println("    + " + threadName);
        }
        for (int i = 0; i < newThreads.size(); i++)
        {
          String threadName = newThreads.get(i);
          System.err.println("    - " + threadName);
        }
      }
      prevThreads = currentThreads;
    }
  }
  private String packageLessClass(Object obj)
  {
    return obj.getClass().getName().replaceAll(".*\\.", "");
  }
  private synchronized void printStatusHeaderOnce()
  {
    if (statusHeaderPrinted)
    {
      return;
    }
    statusHeaderPrinted = true;
    if (doProgressNone)
    {
      return;
    }
    System.err.println();
    System.err.println("How to read the progressive status info:");
    if (doProgressTime)
    {
      System.err
          .println("  Test duration status: {Total min:sec.  Since last status sec.}");
    }
    if (doProgressTestCount)
    {
      System.err
          .println("  Test count status:  {# test classes  # test methods  # test method invocations  # test failures}.");
    }
    if (doProgressMemory)
    {
      System.err
          .println("  Memory usage status: {MB in use  +/-change since last status}");
    }
    if (doProgressMemoryGcs)
    {
      System.err
          .println("  GCs during status:  {GCs done to settle used memory   time to do it}");
    }
    if (doProgressThreadCount)
    {
      System.err
          .println("  Thread count status:  {#td number of active threads}");
    }
    if (doProgressThreadChanges)
    {
      System.err
          .println("  Thread change status: +/- thread name for new or finished threads since last status");
    }
    System.err.println("  TestClass (the class that just completed)");
    System.err.println();
  }
  /**
   * Removes toRemove from base. If there are duplicate items in base,
   * then only one is removed for each item in toRemove.
   *
   * @return a new List with base with toRemove items removed from it
   */
  private List<String> removeExactly(List<String> base,
      List<String> toRemove)
  {
    List<String> diff = new ArrayList<String>(base);
    for (int i = 0; i < toRemove.size(); i++)
    {
      String item = toRemove.get(i);
      diff.remove(item);
    }
    return diff;
  }
  private int runGc()
  {
    Runtime runtime = Runtime.getRuntime();
    int numGcs;
    long curMem = usedMemory();
    long prevMem = Long.MAX_VALUE;
    StringBuilder gcConvergence = new StringBuilder();
    for (numGcs = 0; (prevMem > curMem) && numGcs < 100; numGcs++)
    {
      runtime.runFinalization();
      runtime.gc();
      Thread.yield();
      Thread.yield();
      prevMem = curMem;
      curMem = usedMemory();
      gcConvergence.append("[" + numGcs + "]: " + (prevMem - curMem))
          .append("  ");
    }
    return numGcs;
  }
  private long usedMemory()
  {
    Runtime runtime = Runtime.getRuntime();
    return runtime.totalMemory() - runtime.freeMemory();
  }
  private void writeAntTestsFailedMarker(String outputDirectory)
  {
    // Signal 'ant' that all of the tests passed by removing this
    // special file.
    if ((countTestsWithStatus(ITestResult.FAILURE) == 0)
        && (countTestsWithStatus(ITestResult.SKIP) == 0))
    {
      new File(outputDirectory, ANT_TESTS_FAILED_FILE_NAME).delete();
    }
  }
  private void writeReportToFile(File reportFile)
  {
    PrintStream reportStream = null;
    try
    {
      reportStream = new PrintStream(new FileOutputStream(reportFile));
    }
    catch (FileNotFoundException e)
    {
      System.err
          .println("Could not open "
              + reportFile
              + " for writing.  Will write the unit test report to the console instead.");
      e.printStackTrace(System.err);
      reportStream = System.err;
    }
    reportStream.println(center("UNIT TEST REPORT"));
    reportStream.println(center("----------------") + EOL);
    reportStream.println("Finished at: " + (new Date()));
    reportStream.println("# Test classes: " + _classResults.size());
    reportStream.println("# Test classes interleaved: "
        + _classesWithTestsRunInterleaved.size());
    reportStream.println("# Test methods: " + countTestMethods());
    reportStream.println("# Tests passed: "
        + countTestsWithStatus(ITestResult.SUCCESS));
    reportStream.println("# Tests failed: "
        + countTestsWithStatus(ITestResult.FAILURE));
    reportStream.println(EOL + DIVIDER_LINE + DIVIDER_LINE + EOL + EOL);
    reportStream.println(center("TEST CLASSES RUN INTERLEAVED"));
    reportStream.println(EOL + EOL);
    for (Iterator<Class<?>> iterator = _classesWithTestsRunInterleaved
        .iterator(); iterator.hasNext();)
    {
      Class<?> cls = iterator.next();
      reportStream.println("  " + cls.getName());
    }
    reportStream.println(EOL + DIVIDER_LINE + DIVIDER_LINE + EOL + EOL);
    reportStream.println(center("FAILED TESTS"));
    reportStream.println(EOL + EOL);
    reportStream.println(_bufferedTestFailures);
    reportStream.println(EOL + DIVIDER_LINE + DIVIDER_LINE + EOL);
    reportStream.println(getTimingInfo());
    reportStream.close();
    if ((countTestsWithStatus(ITestResult.FAILURE) == 0)
        && (countTestsWithStatus(ITestResult.SKIP) != 0))
    {
      System.err
          .println("There were no explicit test failures, but some tests were skipped (possibly due to errors in @Before* or @After* methods).");
      System.exit(-1);
    }
  }
  private void writeReportToScreen(File reportFile)
  {
    // HACK: print out status for the last test object
    outputTestProgress(_lastTestObject);
    List<ITestResult> failedTests = getFailedTests();
    StringBuilder failed = new StringBuilder();
    for (int i = 0; i < failedTests.size(); i++)
    {
      ITestResult failedTest = failedTests.get(i);
      String fqMethod = getFqMethod(failedTest);
      int numFailures = 1;
      // Peek ahead to see if we had multiple failures for the same
      // method
      // In which case, we list it once with a count of the failures.
      while (((i + 1) < failedTests.size())
          && fqMethod.equals(getFqMethod(failedTests.get(i + 1))))
      {
        numFailures++;
        i++;
      }
      failed.append("  ").append(fqMethod);
      if (numFailures > 1)
      {
        failed.append(" (x " + numFailures + ")");
      }
      failed.append(EOL);
    }
    if (failed.length() > 0)
    {
      System.err.println("The following unit tests failed: ");
      System.err.println(failed);
      System.err.println();
      System.err
          .println("Include the ant option '-Dtest.failures=true' to rerun only the failed tests.");
    }
    else
    {
      System.err.println("All of the tests passed.");
    }
    System.err.println();
    System.err.println("Wrote full test report to:");
    System.err.println(reportFile.getAbsolutePath());
    System.err.println("Test classes run interleaved: "
        + _classesWithTestsRunInterleaved.size());
    // Try to hard to reclaim as much memory as possible.
    runGc();
    System.err.printf("Final amount of memory in use: %.1f MB",
        (usedMemory() / (1024.0 * 1024.0))).println();
    if (doProgressMemory)
    {
      System.err.printf("Maximum amount of memory in use: %.1f MB",
          (maxMemInUse / (1024.0 * 1024.0))).println();
    }
    System.err.println("Final number of threads: "
        + Thread.activeCount());
    System.err.println();
    if (doProgressThreadChanges)
    {
      System.err.print(threadStacksToString());
    }
    if (_classesWithTestsRunInterleaved.size() > 0)
    {
      System.err
          .println("WARNING:  Some of the test methods for multiple classes "
              + "were run out of order (i.e. interleaved with other classes).  Either "
              + "a class doesn't have the sequential=true annotation, which should "
              + "have been reported already or there has been a regression with TestNG.");
    }
  }
  synchronized StringBuilder getTimingInfo()
  {
    StringBuilder timingOutput = new StringBuilder();
    timingOutput.append(center("TESTS RUN BY CLASS")).append(EOL);
    timingOutput.append(
        center("[method-name total-time (total-invocations)]")).append(
        EOL + EOL);
    for (TestClassResults results : _classResults.values())
    {
      results.getTimingInfo(timingOutput);
    }
    timingOutput.append(EOL + DIVIDER_LINE + DIVIDER_LINE + EOL);
    getSlowestTestsOutput(timingOutput);
    return timingOutput;
  }
}
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/ApproximateMatchingRuleTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.AMR_DOUBLE_METAPHONE_NAME;
import static org.opends.sdk.schema.SchemaConstants.AMR_DOUBLE_METAPHONE_NAME;
import static org.testng.Assert.assertEquals;
import org.opends.sdk.ConditionResult;
@@ -44,8 +44,8 @@
 */
public class ApproximateMatchingRuleTest extends SchemaTestCase
{
  MatchingRule metaphone =
      Schema.getCoreSchema().getMatchingRule(AMR_DOUBLE_METAPHONE_NAME);
  MatchingRule metaphone = Schema.getCoreSchema().getMatchingRule(
      AMR_DOUBLE_METAPHONE_NAME);
@@ -154,13 +154,12 @@
      throws Exception
  {
    // normalize the 2 provided values
    ByteString normalizedValue1 =
        rule.normalizeAttributeValue(ByteString.valueOf(value1));
    ByteString normalizedValue1 = rule
        .normalizeAttributeValue(ByteString.valueOf(value1));
    // check that the approximatelyMatch return the expected result.
    ConditionResult liveResult =
        rule.getAssertion(ByteString.valueOf(value2)).matches(
            normalizedValue1);
    ConditionResult liveResult = rule.getAssertion(
        ByteString.valueOf(value2)).matches(normalizedValue1);
    assertEquals(result, liveResult);
  }
}
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/AttributeTypeSyntaxTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.SYNTAX_ATTRIBUTE_TYPE_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_ATTRIBUTE_TYPE_OID;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/AttributeTypeTest.java
@@ -28,17 +28,12 @@
import static org.opends.server.schema.SchemaConstants.*;
import static org.opends.sdk.schema.SchemaConstants.*;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.*;
import org.opends.messages.Message;
import org.opends.sdk.DecodeException;
import org.opends.server.types.CommonSchemaElements;
import org.opends.sdk.LocalizedIllegalArgumentException;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -87,9 +82,8 @@
            "( 1.2.6 NAME ( 'testType' 'testnamealias' 'anothernamealias1' ) "
                + " SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SUP anothernamealias"
                + " USAGE dSAOperation NO-USER-MODIFICATION )", false);
    List<Message> warnings = new LinkedList<Message>();
    schema = builder.toSchema(warnings);
    if (!warnings.isEmpty())
    schema = builder.toSchema();
    if (!schema.getWarnings().isEmpty())
    {
      throw new Exception("Base schema not valid!");
    }
@@ -571,6 +565,7 @@
  @Test
  public void testInheritFromNonCollective() throws Exception
  {
    // Collective can't inherit from non-collective
@@ -583,13 +578,12 @@
                + " SUBSTR caseIgnoreSubstringsMatch"
                + " SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE"
                + " COLLECTIVE USAGE userApplications )", false);
    List<Message> warnings = new LinkedList<Message>();
    builder.toSchema(warnings);
    Assert.assertFalse(warnings.isEmpty());
    Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
  }
  @Test
  public void testCollectiveOperational() throws Exception
  {
    // Collective can't be operational
@@ -601,13 +595,12 @@
                + " SUBSTR caseIgnoreSubstringsMatch"
                + " SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE"
                + " COLLECTIVE USAGE directoryOperation )", false);
    List<Message> warnings = new LinkedList<Message>();
    builder.toSchema(warnings);
    Assert.assertFalse(warnings.isEmpty());
    Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
  }
  @Test
  public void testInheritFromUserAppUsage() throws Exception
  {
    // directoryOperation can't inherit from userApplications
@@ -621,13 +614,12 @@
                + " SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE"
                + " NO-USER-MODIFICATION USAGE directoryOperation )",
            false);
    List<Message> warnings = new LinkedList<Message>();
    builder.toSchema(warnings);
    Assert.assertFalse(warnings.isEmpty());
    Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
  }
  @Test
  public void testNoUserModNonOperational() throws Exception
  {
    // NO-USER-MODIFICATION can't have non-operational usage
@@ -640,13 +632,12 @@
                + " SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE"
                + " NO-USER-MODIFICATION USAGE userApplications )",
            false);
    List<Message> warnings = new LinkedList<Message>();
    builder.toSchema(warnings);
    Assert.assertFalse(warnings.isEmpty());
    Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
  }
  @Test
  public void testADSyntax() throws Exception
  {
    // AD uses single quotes around OIDs
@@ -658,9 +649,24 @@
                + " EQUALITY 'caseIgnoreMatch' "
                + " SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' USAGE dSAOperation )",
            false);
    List<Message> warnings = new LinkedList<Message>();
    builder.toSchema(warnings);
    Assert.assertFalse(warnings.isEmpty());
    Assert.assertTrue(builder.toSchema().getWarnings().isEmpty());
  }
  @Test(expectedExceptions = LocalizedIllegalArgumentException.class)
  public void testADSyntaxQuoteMismatch() throws Exception
  {
    // AD uses single quotes around OIDs
    SchemaBuilder builder = new SchemaBuilder(schema);
    builder
        .addAttributeType(
            "(1.2.8.5 NAME 'testtype' DESC 'full type' "
                + " SUP '1.2.5 "
                + " EQUALITY 'caseIgnoreMatch' "
                + " SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' USAGE dSAOperation )",
            false);
    Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
  }
}
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BitStringEqualityMatchingRuleTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.EMR_BIT_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.EMR_BIT_STRING_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BitStringSyntaxTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.SYNTAX_BIT_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_BIT_STRING_OID;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BooleanEqualityMatchingRuleTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.EMR_BOOLEAN_OID;
import static org.opends.sdk.schema.SchemaConstants.EMR_BOOLEAN_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactEqualityMatchingRuleTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.EMR_CASE_EXACT_OID;
import static org.opends.sdk.schema.SchemaConstants.EMR_CASE_EXACT_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactIA5EqualityMatchingRuleTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.EMR_CASE_EXACT_IA5_OID;
import static org.opends.sdk.schema.SchemaConstants.EMR_CASE_EXACT_IA5_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactIA5SubstringMatchingRuleTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.SMR_CASE_EXACT_IA5_OID;
import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_EXACT_IA5_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactOrderingMatchingRuleTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.OMR_CASE_EXACT_OID;
import static org.opends.sdk.schema.SchemaConstants.OMR_CASE_EXACT_OID;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactSubstringMatchingRuleTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.SMR_CASE_EXACT_OID;
import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_EXACT_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreEqualityMatchingRuleTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.EMR_CASE_IGNORE_OID;
import static org.opends.sdk.schema.SchemaConstants.EMR_CASE_IGNORE_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreIA5EqualityMatchingRuleTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.EMR_CASE_IGNORE_IA5_OID;
import static org.opends.sdk.schema.SchemaConstants.EMR_CASE_IGNORE_IA5_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreIA5SubstringMatchingRuleTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.SMR_CASE_IGNORE_IA5_OID;
import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_IGNORE_IA5_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreOrderingMatchingRuleTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.OMR_CASE_IGNORE_OID;
import static org.opends.sdk.schema.SchemaConstants.OMR_CASE_IGNORE_OID;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreSubstringMatchingRuleTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.SMR_CASE_IGNORE_OID;
import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_IGNORE_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CoreSchemaTest.java
@@ -42,6 +42,6 @@
  public final void testCoreSchemaWarnings()
  {
    // Make sure core schema doesn't have any warnings.
    Assert.assertTrue(CoreSchemaImpl.CORE_SCHEMA_WARNINGS.isEmpty());
    Assert.assertTrue(Schema.getCoreSchema().getWarnings().isEmpty());
  }
}
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/DITContentRuleSyntaxTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.SYNTAX_DIT_CONTENT_RULE_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_DIT_CONTENT_RULE_OID;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/EnumSyntaxTestCase.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.OMR_OID_GENERIC_ENUM;
import static org.opends.sdk.schema.SchemaConstants.OMR_OID_GENERIC_ENUM;
import org.opends.sdk.ConditionResult;
import org.opends.sdk.DecodeException;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/GeneralizedTimeSyntaxTest.java
@@ -28,18 +28,9 @@
import static org.opends.server.schema.SchemaConstants.SYNTAX_GENERALIZED_TIME_OID;
import static org.opends.server.util.ServerConstants.TIME_ZONE_UTC;
import static org.opends.sdk.schema.SchemaConstants.*;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
import org.opends.server.schema.GeneralizedTimeSyntax;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -83,130 +74,4 @@
        { "2006", false }, };
  }
  /**
   * Create data for format(...) tests.
   *
   * @return Returns test data.
   */
  @DataProvider(name = "createFormatData")
  public Object[][] createFormatData()
  {
    return new Object[][] {
        // Note that Calendar months run from 0-11,
        // and that there was no such year as year 0 (1 BC -> 1 AD).
        { 1, 0, 1, 0, 0, 0, 0, "00010101000000.000Z" },
        { 9, 0, 1, 0, 0, 0, 0, "00090101000000.000Z" },
        { 10, 0, 1, 0, 0, 0, 0, "00100101000000.000Z" },
        { 99, 0, 1, 0, 0, 0, 0, "00990101000000.000Z" },
        { 100, 0, 1, 0, 0, 0, 0, "01000101000000.000Z" },
        { 999, 0, 1, 0, 0, 0, 0, "09990101000000.000Z" },
        { 1000, 0, 1, 0, 0, 0, 0, "10000101000000.000Z" },
        { 2000, 0, 1, 0, 0, 0, 0, "20000101000000.000Z" },
        { 2099, 0, 1, 0, 0, 0, 0, "20990101000000.000Z" },
        { 2000, 8, 1, 0, 0, 0, 0, "20000901000000.000Z" },
        { 2000, 9, 1, 0, 0, 0, 0, "20001001000000.000Z" },
        { 2000, 10, 1, 0, 0, 0, 0, "20001101000000.000Z" },
        { 2000, 11, 1, 0, 0, 0, 0, "20001201000000.000Z" },
        { 2000, 0, 9, 0, 0, 0, 0, "20000109000000.000Z" },
        { 2000, 0, 10, 0, 0, 0, 0, "20000110000000.000Z" },
        { 2000, 0, 19, 0, 0, 0, 0, "20000119000000.000Z" },
        { 2000, 0, 20, 0, 0, 0, 0, "20000120000000.000Z" },
        { 2000, 0, 29, 0, 0, 0, 0, "20000129000000.000Z" },
        { 2000, 0, 30, 0, 0, 0, 0, "20000130000000.000Z" },
        { 2000, 0, 31, 0, 0, 0, 0, "20000131000000.000Z" },
        { 2000, 0, 1, 9, 0, 0, 0, "20000101090000.000Z" },
        { 2000, 0, 1, 10, 0, 0, 0, "20000101100000.000Z" },
        { 2000, 0, 1, 19, 0, 0, 0, "20000101190000.000Z" },
        { 2000, 0, 1, 20, 0, 0, 0, "20000101200000.000Z" },
        { 2000, 0, 1, 23, 0, 0, 0, "20000101230000.000Z" },
        { 2000, 0, 1, 0, 9, 0, 0, "20000101000900.000Z" },
        { 2000, 0, 1, 0, 10, 0, 0, "20000101001000.000Z" },
        { 2000, 0, 1, 0, 59, 0, 0, "20000101005900.000Z" },
        { 2000, 0, 1, 0, 0, 9, 0, "20000101000009.000Z" },
        { 2000, 0, 1, 0, 0, 10, 0, "20000101000010.000Z" },
        { 2000, 0, 1, 0, 0, 59, 0, "20000101000059.000Z" },
        { 2000, 0, 1, 0, 0, 0, 9, "20000101000000.009Z" },
        { 2000, 0, 1, 0, 0, 0, 10, "20000101000000.010Z" },
        { 2000, 0, 1, 0, 0, 0, 99, "20000101000000.099Z" },
        { 2000, 0, 1, 0, 0, 0, 100, "20000101000000.100Z" },
        { 2000, 0, 1, 0, 0, 0, 999, "20000101000000.999Z" }, };
  }
  /**
   * Tests
   * {@link org.opends.server.schema.GeneralizedTimeSyntax#format(long)}
   * .
   *
   * @param yyyy
   *          The year.
   * @param MM
   *          The month.
   * @param dd
   *          The day.
   * @param HH
   *          The hour.
   * @param mm
   *          The minute.
   * @param ss
   *          The second.
   * @param SSS
   *          The milli-seconds.
   * @param expected
   *          The expected generalized time formatted string.
   * @throws Exception
   *           If an unexpected error occurred.
   */
  @Test(dataProvider = "createFormatData")
  public void testFormatLong(int yyyy, int MM, int dd, int HH, int mm,
      int ss, int SSS, String expected) throws Exception
  {
    Calendar calendar =
        new GregorianCalendar(TimeZone.getTimeZone(TIME_ZONE_UTC));
    calendar.set(yyyy, MM, dd, HH, mm, ss);
    calendar.set(Calendar.MILLISECOND, SSS);
    long time = calendar.getTimeInMillis();
    String actual = GeneralizedTimeSyntax.format(time);
    Assert.assertEquals(actual, expected);
  }
  /**
   * Tests {@link GeneralizedTimeSyntax#format(java.util.Date)}.
   *
   * @param yyyy
   *          The year.
   * @param MM
   *          The month.
   * @param dd
   *          The day.
   * @param HH
   *          The hour.
   * @param mm
   *          The minute.
   * @param ss
   *          The second.
   * @param SSS
   *          The milli-seconds.
   * @param expected
   *          The expected generalized time formatted string.
   * @throws Exception
   *           If an unexpected error occurred.
   */
  @Test(dataProvider = "createFormatData")
  public void testFormatDate(int yyyy, int MM, int dd, int HH, int mm,
      int ss, int SSS, String expected) throws Exception
  {
    Calendar calendar =
        new GregorianCalendar(TimeZone.getTimeZone(TIME_ZONE_UTC));
    calendar.set(yyyy, MM, dd, HH, mm, ss);
    calendar.set(Calendar.MILLISECOND, SSS);
    Date time = new Date(calendar.getTimeInMillis());
    String actual = GeneralizedTimeSyntax.format(time);
    Assert.assertEquals(actual, expected);
  }
}
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/GuideSyntaxTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.SYNTAX_GUIDE_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_GUIDE_OID;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/IA5StringSyntaxTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.SYNTAX_IA5_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_IA5_STRING_OID;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/LDAPSyntaxTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.SYNTAX_LDAP_SYNTAX_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_LDAP_SYNTAX_OID;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/MatchingRuleSyntaxTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.SYNTAX_MATCHING_RULE_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_MATCHING_RULE_OID;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/MatchingRuleUseSyntaxTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.SYNTAX_MATCHING_RULE_USE_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_MATCHING_RULE_USE_OID;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/OtherMailboxSyntaxTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.SYNTAX_OTHER_MAILBOX_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_OTHER_MAILBOX_OID;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/RegexSyntaxTestCase.java
@@ -28,12 +28,8 @@
import java.util.LinkedList;
import java.util.List;
import java.util.regex.Pattern;
import org.opends.messages.Message;
import org.opends.sdk.DecodeException;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -49,7 +45,7 @@
   * {@inheritDoc}
   */
  @Override
  protected Syntax getRule() throws SchemaException, DecodeException
  protected Syntax getRule()
  {
    SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
    builder.addPatternSyntax("1.1.1",
@@ -73,23 +69,21 @@
  public void testInvalidPattern() throws SchemaException,
      DecodeException
  @Test
  public void testInvalidPattern()
  {
    // This should fail due to invalid pattern.
    SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
    builder.addSyntax(
        "( 1.1.1 DESC 'Host and Port in the format of HOST:PORT' "
            + " X-PATTERN '^[a-z-A-Z+:[0-@.]+\\d$' )", true);
    List<Message> warnings = new LinkedList<Message>();
    builder.toSchema(warnings);
    Assert.assertFalse(warnings.isEmpty());
    Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
  }
  @Test
  public void testDecode() throws SchemaException, DecodeException
  public void testDecode()
  {
    // This should fail due to invalid pattern.
    SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SchemaUtilsTest.java
New file
@@ -0,0 +1,116 @@
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 * add the following below this CDDL HEADER, with the fields enclosed
 * by brackets "[]" replaced with your own identifying information:
 *      Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 *
 *
 *      Copyright 2009 Sun Microsystems, Inc.
 */
package org.opends.sdk.schema;
import org.opends.sdk.DecodeException;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import com.sun.opends.sdk.util.SubstringReader;
/**
 * Test schema utilities.
 */
public class SchemaUtilsTest extends SchemaTestCase
{
  @DataProvider(name = "validOIDs")
  public Object[][] createValidOIDs()
  {
    return new Object[][] {
        // Compliant NOIDs
        { "0.0" }, { "1.0" }, { "2.0" }, { "3.0" }, { "4.0" },
        { "5.0" }, { "6.0" }, { "7.0" }, { "8.0" }, { "9.0" },
        { "0.1" }, { "0.2" }, { "0.3" }, { "0.4" }, { "0.5" },
        { "0.6" }, { "0.7" }, { "0.8" }, { "0.9" }, { "10.0" },
        { "100.0" },
        { "999.0" },
        { "0.100" },
        { "0.999" },
        { "100.100" },
        { "999.999" },
        { "111.22.333.44.55555.66.777.88.999" },
        { "a" },
        { "a2" },
        { "a-" },
        { "one" },
        { "one1" },
        { "one-two" },
        { "one1-two2-three3" },
        // AD puts quotes around OIDs - not compliant but we need to
        // handle them.
        { "'0.0'" }, { "'10.0'" }, { "'999.0'" },
        { "'111.22.333.44.55555.66.777.88.999'" }, { "'a'" },
        { "'a2'" }, { "'a-'" }, { "'one'" }, { "'one1'" },
        { "'one-two'" },
        { "'one1-two2-three3'" },
        // Not strictly legal, but we'll be lenient with what we accept.
        { "0" }, { "1" }, { "2" }, { "3" }, { "4" }, { "5" }, { "6" },
        { "7" }, { "8" }, { "9" }, { "00" }, { "01" }, { "01.0" },
        { "0.01" }, { "one.two.three" }, };
  }
  @DataProvider(name = "invalidOIDs")
  public Object[][] createInvalidOIDs()
  {
    return new Object[][] { { "" }, { ".0" }, { "0." }, { "100." },
        { ".999" }, { "1one" }, { "one+two+three" },
        // AD puts quotes around OIDs - test mismatched quotes.
        { "'0" }, { "'10" }, { "999'" }, { "0.0'" }, };
  }
  @Test(dataProvider = "validOIDs")
  public void testReadOIDValid(String oid) throws DecodeException
  {
    String expected = oid;
    if (oid.startsWith("'"))
    {
      expected = oid.substring(1, oid.length() - 1);
    }
    SubstringReader reader = new SubstringReader(oid);
    Assert.assertEquals(SchemaUtils.readOID(reader), expected);
  }
  @Test(dataProvider = "invalidOIDs", expectedExceptions = DecodeException.class)
  public void testReadOIDInvalid(String oid) throws DecodeException
  {
    SubstringReader reader = new SubstringReader(oid);
    SchemaUtils.readOID(reader);
  }
}
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SubstitutionSyntaxTestCase.java
@@ -28,13 +28,8 @@
import static org.opends.server.schema.SchemaConstants.SYNTAX_IA5_STRING_OID;
import static org.opends.sdk.schema.SchemaConstants.*;
import java.util.LinkedList;
import java.util.List;
import org.opends.messages.Message;
import org.opends.sdk.DecodeException;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -50,7 +45,7 @@
   * {@inheritDoc}
   */
  @Override
  protected Syntax getRule() throws SchemaException, DecodeException
  protected Syntax getRule()
  {
    // Use IA5String syntax as our substitute.
    SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
@@ -74,62 +69,78 @@
  public void testSelfSubstitute1() throws SchemaException,
      DecodeException
  @Test
  public void testSelfSubstitute1()
  {
    SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
    builder.addSyntax("( 1.3.6.1.4.1.1466.115.121.1.15 "
        + " DESC 'Replacing DirectorySyntax'  "
        + " X-SUBST '1.3.6.1.4.1.1466.115.121.1.15' )", true);
    List<Message> warnings = new LinkedList<Message>();
    builder.toSchema(warnings);
    Assert.assertFalse(warnings.isEmpty());
    Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
  }
  public void testSelfSubstitute2() throws SchemaException
  @Test
  public void testSelfSubstitute2()
  {
    SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
    builder.addSubstitutionSyntax("1.3.6.1.4.1.1466.115.121.1.15",
        "Replacing DirectorySyntax", "1.3.6.1.4.1.1466.115.121.1.15",
        true);
    List<Message> warnings = new LinkedList<Message>();
    builder.toSchema(warnings);
    Assert.assertFalse(warnings.isEmpty());
    Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
  }
  public void testUndefinedSubstitute1() throws SchemaException,
      DecodeException
  @Test
  public void testUndefinedSubstitute1()
  {
    SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
    builder.addSyntax("( 1.3.6.1.4.1.1466.115.121.1.15 "
        + " DESC 'Replacing DirectorySyntax'  " + " X-SUBST '1.1.1' )",
        true);
    List<Message> warnings = new LinkedList<Message>();
    builder.toSchema(warnings);
    Assert.assertFalse(warnings.isEmpty());
    Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
  }
  public void testUndefinedSubstitute2() throws SchemaException
  @Test
  public void testUndefinedSubstitute2()
  {
    SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
    builder.addSubstitutionSyntax("1.3.6.1.4.1.1466.115.121.1.15",
        "Replacing DirectorySyntax", "1.1.1", true);
    List<Message> warnings = new LinkedList<Message>();
    builder.toSchema(warnings);
    Assert.assertFalse(warnings.isEmpty());
    Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
  }
  @Test(expectedExceptions = SchemaException.class)
  public void testSubstituteCore1() throws SchemaException,
      DecodeException
  @Test(expectedExceptions = ConflictingSchemaElementException.class)
  public void testSubstituteCore1()
      throws ConflictingSchemaElementException
  {
    SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
    builder.addSyntax("( 1.3.6.1.4.1.1466.115.121.1.26 "
        + " DESC 'Replacing DirectorySyntax'  " + " X-SUBST '9.9.9' )",
        false);
  }
  @Test(expectedExceptions = ConflictingSchemaElementException.class)
  public void testSubstituteCore2()
      throws ConflictingSchemaElementException
  {
    SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
    builder.addSubstitutionSyntax("1.3.6.1.4.1.1466.115.121.1.26",
        "Replacing DirectorySyntax", "9.9.9", false);
  }
  @Test
  public void testSubstituteCore1Override()
  {
    SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
    builder.addSyntax("( 1.3.6.1.4.1.1466.115.121.1.26 "
@@ -139,8 +150,8 @@
  @Test(expectedExceptions = SchemaException.class)
  public void testSubstituteCore2() throws SchemaException
  @Test
  public void testSubstituteCore2Override()
  {
    SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
    builder.addSubstitutionSyntax("1.3.6.1.4.1.1466.115.121.1.26",
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SyntaxTestCase.java
@@ -30,7 +30,7 @@
import static org.testng.Assert.fail;
import org.opends.messages.MessageBuilder;
import org.opends.sdk.LocalizableMessageBuilder;
import org.opends.sdk.DecodeException;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -76,7 +76,7 @@
    // Make sure that the specified class can be instantiated as a task.
    Syntax syntax = getRule();
    MessageBuilder reason = new MessageBuilder();
    LocalizableMessageBuilder reason = new LocalizableMessageBuilder();
    // test the valueIsAcceptable method
    Boolean liveResult =
        syntax.valueIsAcceptable(ByteString.valueOf(value), reason);
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/TelexSyntaxTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.SYNTAX_TELEX_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_TELEX_OID;
import org.testng.annotations.DataProvider;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/UTCTimeSyntaxTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.SYNTAX_UTC_TIME_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_UTC_TIME_OID;
import static org.testng.Assert.assertTrue;
import java.util.Date;
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/UUIDSyntaxTest.java
@@ -28,7 +28,7 @@
import static org.opends.server.schema.SchemaConstants.SYNTAX_UUID_OID;
import static org.opends.sdk.schema.SchemaConstants.SYNTAX_UUID_OID;
import org.testng.annotations.DataProvider;