You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by st...@apache.org on 2005/11/30 14:07:47 UTC

svn commit: r349939 - /incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java

Author: stefan
Date: Wed Nov 30 05:07:44 2005
New Revision: 349939

URL: http://svn.apache.org/viewcvs?rev=349939&view=rev
Log:
JCR-283 NamespaceRegistry.registerNamespace(pre, uri) might accidentally remove namespace in certain situations

Modified:
    incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java

Modified: incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java?rev=349939&r1=349938&r2=349939&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java Wed Nov 30 05:07:44 2005
@@ -239,18 +239,12 @@
                     + prefix + " -> " + uri + ": invalid prefix");
         }
 
+        // check existing mappings
         String oldPrefix = (String) uriToPrefix.get(uri);
-        if (oldPrefix != null) {
-            // existing namespace
-            if (oldPrefix.equals(prefix)) {
-                throw new NamespaceException("failed to register namespace "
-                        + prefix + " -> " + uri + ": mapping already exists");
-            }
-            // remove old prefix
-            prefixToURI.remove(oldPrefix);
-            uriToPrefix.remove(uri);
+        if (prefix.equals(oldPrefix)) {
+            throw new NamespaceException("failed to register namespace "
+                    + prefix + " -> " + uri + ": mapping already exists");
         }
-
         if (prefixToURI.containsKey(prefix)) {
             /**
              * prevent remapping of existing prefixes because this would in effect
@@ -263,6 +257,13 @@
                     + ": remapping existing prefixes is not supported.");
         }
 
+        if (oldPrefix != null) {
+            // remove old prefix mapping
+            prefixToURI.remove(oldPrefix);
+            uriToPrefix.remove(uri);
+        }
+
+        // add new prefix mapping
         prefixToURI.put(prefix, uri);
         uriToPrefix.put(uri, prefix);