You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2009/04/15 19:42:47 UTC

svn commit: r765283 - /geronimo/sandbox/blueprint/org.apache.felix.blueprint/src/main/java/org/apache/felix/blueprint/context/Parser.java

Author: gawor
Date: Wed Apr 15 17:42:47 2009
New Revision: 765283

URL: http://svn.apache.org/viewvc?rev=765283&view=rev
Log:
null values are not allowed in map keys

Modified:
    geronimo/sandbox/blueprint/org.apache.felix.blueprint/src/main/java/org/apache/felix/blueprint/context/Parser.java

Modified: geronimo/sandbox/blueprint/org.apache.felix.blueprint/src/main/java/org/apache/felix/blueprint/context/Parser.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/org.apache.felix.blueprint/src/main/java/org/apache/felix/blueprint/context/Parser.java?rev=765283&r1=765282&r2=765283&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/org.apache.felix.blueprint/src/main/java/org/apache/felix/blueprint/context/Parser.java (original)
+++ geronimo/sandbox/blueprint/org.apache.felix.blueprint/src/main/java/org/apache/felix/blueprint/context/Parser.java Wed Apr 15 17:42:47 2009
@@ -496,7 +496,7 @@
         for (int i = 0; i < nl.getLength(); i++) {
             Node node = nl.item(i);
             if (node instanceof Element) {
-                Value val = parseValueElement((Element) node, enclosingComponent);
+                Value val = parseValueElement((Element) node, enclosingComponent, true);
                 list.add(val);
             }
         }
@@ -595,9 +595,9 @@
             if (node instanceof Element) {
                 Element e = (Element) node;
                 if (nodeNameEquals(e, KEY_ELEMENT)) {
-                    keyValue = parseValueElement(e, enclosingComponent);
+                    keyValue = parseValueElement(e, enclosingComponent, false);
                 } else {
-                    valValue = parseValueElement(e, enclosingComponent);
+                    valValue = parseValueElement(e, enclosingComponent, true);
                 }
             }
         }
@@ -896,7 +896,7 @@
                     if (isBlueprintNamespace(node.getNamespaceURI())) {
                         // Ignore description elements
                         if (!nodeNameEquals(node, DESCRIPTION_ELEMENT)) {
-                            return parseValueElement(e, enclosingComponent);
+                            return parseValueElement(e, enclosingComponent, true);
                         }
                     } else {
                         ComponentMetadata innerComponent = parseCustomElement(e, enclosingComponent);
@@ -908,11 +908,11 @@
         throw new ComponentDefinitionException("One of " + REF_ATTRIBUTE + " attribute, " + VALUE_ATTRIBUTE + " attribute or sub element must be set");
     }
 
-    private Value parseValueElement(Element element, ComponentMetadata enclosingComponent) {
+    private Value parseValueElement(Element element, ComponentMetadata enclosingComponent, boolean allowNull) {
         if (nodeNameEquals(element, COMPONENT_ELEMENT)) {
             LocalComponentMetadata inner = parseComponentMetadata(element);
             return new ComponentValueImpl(inner);
-        } else if (nodeNameEquals(element, NULL_ELEMENT)) {
+        } else if (nodeNameEquals(element, NULL_ELEMENT) && allowNull) {
             return NullValue.NULL;
         } else if (nodeNameEquals(element, VALUE_ELEMENT)) {
             String type = null;