tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ma...@apache.org
Subject svn commit: r917784 - in /tomcat/trunk/java/org/apache/naming: LocalStrings.properties NamingContext.java
Date Mon, 01 Mar 2010 23:14:12 GMT
Author: markt
Date: Mon Mar  1 23:14:12 2010
New Revision: 917784

URL: http://svn.apache.org/viewvc?rev=917784&view=rev
Log:
Correct fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=48050
NamingContext.createSubcontext method returns Context with wrong name

Modified:
    tomcat/trunk/java/org/apache/naming/LocalStrings.properties
    tomcat/trunk/java/org/apache/naming/NamingContext.java

Modified: tomcat/trunk/java/org/apache/naming/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/LocalStrings.properties?rev=917784&r1=917783&r2=917784&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/naming/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/naming/LocalStrings.properties Mon Mar  1 23:14:12 2010
@@ -19,6 +19,7 @@
 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

Modified: tomcat/trunk/java/org/apache/naming/NamingContext.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/NamingContext.java?rev=917784&r1=917783&r2=917784&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/naming/NamingContext.java (original)
+++ tomcat/trunk/java/org/apache/naming/NamingContext.java Mon Mar  1 23:14:12 2010
@@ -505,11 +505,14 @@
 
     /**
      * Creates and binds a new context. Creates a new context with the given 
-     * 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.
+     * 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.
      * 
-     * @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 
@@ -520,8 +523,25 @@
         throws NamingException {
         checkWritable();
         
-        Context newContext = new NamingContext(env, name.get(name.size() - 1));
-        bind(name, newContext);
+        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);
         
         return newContext;
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message