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;
}