remm 02/05/28 19:16:35 Modified: catalina/src/share/org/apache/catalina/deploy NamingResources.java Log: - Tighten up JNDI resources handling, by disallowing any overriding. Revision Changes Path 1.5 +51 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/deploy/NamingResources.java Index: NamingResources.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/deploy/NamingResources.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- NamingResources.java 3 May 2002 00:13:01 -0000 1.4 +++ NamingResources.java 29 May 2002 02:16:35 -0000 1.5 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/deploy/NamingResources.java,v 1.4 2002/05/03 00:13:01 craigmcc Exp $ - * $Revision: 1.4 $ - * $Date: 2002/05/03 00:13:01 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/deploy/NamingResources.java,v 1.5 2002/05/29 02:16:35 remm Exp $ + * $Revision: 1.5 $ + * $Date: 2002/05/29 02:16:35 $ * * ==================================================================== * @@ -68,6 +68,7 @@ import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.util.HashMap; +import java.util.Hashtable; /** @@ -75,7 +76,7 @@ * Naming Context and their associated JNDI context. * * @author Remy Maucherat - * @version $Revision: 1.4 $ $Date: 2002/05/03 00:13:01 $ + * @version $Revision: 1.5 $ $Date: 2002/05/29 02:16:35 $ */ public final class NamingResources { @@ -95,6 +96,13 @@ /** + * List of naming entries, keyed by name. The value is the entry type, as + * declared by the user. + */ + private Hashtable entries = new Hashtable(); + + + /** * The EJB resource references for this web application, keyed by name. */ private HashMap ejbs = new HashMap(); @@ -154,6 +162,12 @@ */ public void addEjb(ContextEjb ejb) { + if (entries.containsKey(ejb.getName())) { + return; + } else { + entries.put(ejb.getName(), ejb.getType()); + } + synchronized (ejbs) { ejb.setNamingResources(this); ejbs.put(ejb.getName(), ejb); @@ -170,6 +184,12 @@ */ public void addEnvironment(ContextEnvironment environment) { + if (entries.containsKey(environment.getName())) { + return; + } else { + entries.put(environment.getName(), environment.getType()); + } + synchronized (envs) { environment.setNamingResources(this); envs.put(environment.getName(), environment); @@ -187,6 +207,9 @@ public void addResourceParams(ResourceParams resourceParameters) { synchronized (resourceParams) { + if (resourceParams.containsKey(resourceParameters.getName())) { + return; + } resourceParameters.setNamingResources(this); resourceParams.put(resourceParameters.getName(), resourceParameters); @@ -203,6 +226,12 @@ */ public void addLocalEjb(ContextLocalEjb ejb) { + if (entries.containsKey(ejb.getName())) { + return; + } else { + entries.put(ejb.getName(), ejb.getType()); + } + synchronized (localEjbs) { ejb.setNamingResources(this); localEjbs.put(ejb.getName(), ejb); @@ -231,6 +260,12 @@ */ public void addResource(ContextResource resource) { + if (entries.containsKey(resource.getName())) { + return; + } else { + entries.put(resource.getName(), resource.getType()); + } + synchronized (resources) { resource.setNamingResources(this); resources.put(resource.getName(), resource); @@ -248,6 +283,12 @@ */ public void addResourceEnvRef(String name, String type) { + if (entries.containsKey(name)) { + return; + } else { + entries.put(name, type); + } + synchronized (resourceEnvRefs) { resourceEnvRefs.put(name, type); } @@ -263,6 +304,12 @@ * @param resource New resource link */ public void addResourceLink(ContextResourceLink resourceLink) { + + if (entries.containsKey(resourceLink.getName())) { + return; + } else { + entries.put(resourceLink.getName(), resourceLink.getType()); + } synchronized (resourceLinks) { resourceLink.setNamingResources(this);
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>