FELIX-3285 properly handle some multi-value cases
  - prevent setting empty vectors/collections
  - make sure an existing array property gets a synthetic array descriptor

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1220719 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManager.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManager.java
index 8db289d..f66b120 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManager.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManager.java
@@ -925,8 +925,15 @@
 
                     if ( ad.getCardinality() < 0 )
                     {
-                        // keep the vector
-                        props.put( propName, vec );
+                        // keep the vector, but only add if not empty
+                        if ( vec.isEmpty() )
+                        {
+                            props.remove( propName );
+                        }
+                        else
+                        {
+                            props.put( propName, vec );
+                        }
                     }
                     else
                     {
@@ -1072,7 +1079,7 @@
         }
         else if ( value.getClass().isArray() )
         {
-            attrCardinality = Integer.MIN_VALUE;
+            attrCardinality = Integer.MAX_VALUE;
             type = value.getClass().getComponentType();
         }
         else