From 57e0a153dad5c2a97eb0e520a746243ff3f502b3 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 29 Jan 2016 09:07:30 +0000
Subject: [PATCH] AttributeDescription.java: handled null options in create(AttributeType, Collection<String> options)

---
 opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/AttributeDescription.java |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/AttributeDescription.java b/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/AttributeDescription.java
index 77396b1..b1beb4f 100644
--- a/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/AttributeDescription.java
+++ b/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/AttributeDescription.java
@@ -28,6 +28,7 @@
 
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
@@ -599,6 +600,7 @@
      *             If {@code attributeType} or {@code options} was {@code null}.
      */
     public static AttributeDescription create(final AttributeType attributeType, final String... options) {
+        Reject.ifNull(options);
         return create(attributeType, Arrays.asList(options));
     }
 
@@ -615,25 +617,25 @@
      */
     public static AttributeDescription create(final AttributeType attributeType, final Collection<String> options) {
         Reject.ifNull(attributeType);
-        Reject.ifNull(options);
 
-        switch (options.size()) {
+        final Collection<String> opts = options != null ? options : Collections.<String> emptySet();
+        switch (opts.size()) {
         case 0:
             return create(attributeType);
         case 1:
-            return create(attributeType, options.iterator().next());
+            return create(attributeType, opts.iterator().next());
         default:
-            final String[] optionsList = new String[options.size()];
-            final String[] normalizedOptions = new String[options.size()];
+            final String[] optionsList = new String[opts.size()];
+            final String[] normalizedOptions = new String[opts.size()];
 
-            final Iterator<String> it = options.iterator();
+            final Iterator<String> it = opts.iterator();
             final String oid = attributeType.getNameOrOID();
             final StringBuilder builder =
                     new StringBuilder(oid.length() + it.next().length() + it.next().length() + 2);
             builder.append(oid);
 
             int i = 0;
-            for (final String option : options) {
+            for (final String option : opts) {
                 builder.append(';');
                 builder.append(option);
                 optionsList[i] = option;

--
Gitblit v1.10.0