Revert r917784 and r905722 - changes associated with the invalid bug 48050
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Thu, 4 Mar 2010 12:05:06 +0000 (12:05 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Thu, 4 Mar 2010 12:05:06 +0000 (12:05 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@918957 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/naming/LocalStrings.properties
java/org/apache/naming/NamingContext.java

index f5c229f..8731375 100644 (file)
@@ -19,7 +19,6 @@ contextBindings.noContextBoundToCL=No naming context bound to this class loader
 selectorContext.noJavaUrl=This context must be accessed through a java: URL
 selectorContext.methodUsingName=Call to method ''{0}'' with a Name of ''{1}''
 selectorContext.methodUsingString=Call to method ''{0}'' with a String of ''{1}''
-namingContext.createSubContextInvalid=Unable to create context with name [{0}] as a sub-context of the context named [{1}]
 namingContext.contextExpected=Name is not bound to a Context
 namingContext.failResolvingReference=Unexpected exception resolving reference
 namingContext.nameNotBound=Name {0} is not bound in this Context
index e3edb66..ec1f1e1 100644 (file)
@@ -505,14 +505,11 @@ public class NamingContext implements Context {
 
     /**
      * Creates and binds a new context. Creates a new context with the given 
-     * name and binds it in this context.
-     * 
-     * @param name The name of the context to create; may not be empty.  If the
-     *             name consists of a single component then the sub-context is
-     *             created with a prefix of the name of this context. If the
-     *             name has multiple components then name.prefix(name.size()-1)
-     *             must be the name of this context.
+     * name and binds it in the target context (that named by all but 
+     * terminal atomic component of the name). All intermediate contexts and 
+     * the target context must already exist.
      * 
+     * @param name the name of the context to create; may not be empty
      * @return the newly created context
      * @exception NameAlreadyBoundException if name is already bound
      * @exception InvalidAttributesException if creation of the subcontext 
@@ -523,25 +520,8 @@ public class NamingContext implements Context {
         throws NamingException {
         checkWritable();
         
-        String contextName = null;
-        
-        if (name.size() == 1) {
-            if (this.name.endsWith("/")) {
-                contextName = this.name + name.get(0);
-            } else {
-                contextName = this.name + "/" + name.get(0);
-            }
-        } else {
-            if (!name.getPrefix(name.size()-1).toString().equals(name)) {
-                throw new NamingException(
-                        sm.getString("namingContext.createSubContextInvalid",
-                                name, this.name));
-            }
-            contextName = name.toString();
-        }
-        
-        Context newContext = new NamingContext(env, contextName);
-        bind(name.getSuffix(name.size() -1), newContext);
+        Context newContext = new NamingContext(env, this.name);
+        bind(name, newContext);
         
         return newContext;
     }