remm        01/07/24 15:51:43

  Modified:    catalina/src/share/org/apache/catalina/core
                        StandardContext.java
  Log:
  - Fix for #2710 - getNamingContextName returns incorrect name.
    Patch submitted by Vishy Kasar <vishy at borland.com>
  
  Revision  Changes    Path
  1.70      +30 -17    
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java
  
  Index: StandardContext.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
  retrieving revision 1.69
  retrieving revision 1.70
  diff -u -r1.69 -r1.70
  --- StandardContext.java      2001/07/22 20:25:08     1.69
  +++ StandardContext.java      2001/07/24 22:51:43     1.70
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
 1.69 2001/07/22 20:25:08 pier Exp $
  - * $Revision: 1.69 $
  - * $Date: 2001/07/22 20:25:08 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
 1.70 2001/07/24 22:51:43 remm Exp $
  + * $Revision: 1.70 $
  + * $Date: 2001/07/24 22:51:43 $
    *
    * ====================================================================
    *
  @@ -73,6 +73,7 @@
   import java.util.Iterator;
   import java.util.TreeMap;
   import java.util.Hashtable;
  +import java.util.Stack;
   import java.util.Enumeration;
   import java.util.StringTokenizer;
   import javax.servlet.FilterConfig;
  @@ -141,7 +142,7 @@
    *
    * @author Craig R. McClanahan
    * @author Remy Maucherat
  - * @version $Revision: 1.69 $ $Date: 2001/07/22 20:25:08 $
  + * @version $Revision: 1.70 $ $Date: 2001/07/24 22:51:43 $
    */
   
   public class StandardContext
  @@ -473,6 +474,12 @@
       private boolean filesystemBased = false;
   
   
  +    /**
  +     * Name of the associated naming context.
  +     */
  +    private String namingContextName = null;
  +
  +
       // ----------------------------------------------------- Context Properties
   
   
  @@ -3672,19 +3679,25 @@
        * Get naming context full name.
        */
       private String getNamingContextName() {
  -        Container parent = getParent();
  -        if (parent != null) {
  -            StringBuffer buf = new StringBuffer();
  -            buf.append("/").append(parent.getName()).append(getName());
  -            parent = parent.getParent();
  -            while (parent != null) {
  -                buf.append("/").append(parent.getName());
  -                parent = parent.getParent();
  -            }
  -            return buf.toString();
  -        } else {
  -            return getName();
  -        }
  +     if (namingContextName == null) {
  +         Container parent = getParent();
  +         if (parent == null) {
  +             namingContextName = getName();
  +         } else {
  +             Stack stk = new Stack();
  +             StringBuffer buff = new StringBuffer();
  +             while (parent != null) {
  +                 stk.push(parent.getName());
  +                 parent = parent.getParent();
  +             }
  +             while (!stk.empty()) {
  +                 buff.append("/" + stk.pop());
  +             }
  +             buff.append(getName());
  +             namingContextName = buff.toString();
  +         }
  +     }
  +     return namingContextName;
       }
   
   
  
  
  

Reply via email to