From: markt Date: Thu, 4 Mar 2010 12:05:06 +0000 (+0000) Subject: Revert r917784 and r905722 - changes associated with the invalid bug 48050 X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=eaf98f7ed18f07fb243fb4f1b7dd62a4f7e5edb0;p=tomcat7.0 Revert r917784 and r905722 - changes associated with the invalid bug 48050 git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@918957 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/naming/LocalStrings.properties b/java/org/apache/naming/LocalStrings.properties index f5c229f6c..87313757c 100644 --- a/java/org/apache/naming/LocalStrings.properties +++ b/java/org/apache/naming/LocalStrings.properties @@ -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 diff --git a/java/org/apache/naming/NamingContext.java b/java/org/apache/naming/NamingContext.java index e3edb6606..ec1f1e1c4 100644 --- a/java/org/apache/naming/NamingContext.java +++ b/java/org/apache/naming/NamingContext.java @@ -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; }