Author: markt Date: Fri Oct 8 11:57:04 2010 New Revision: 1005789 URL: http://svn.apache.org/viewvc?rev=1005789&view=rev Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49994 Lookup of JNDI references should return a new object instance each time
Modified: tomcat/trunk/java/org/apache/naming/NamingContext.java tomcat/trunk/java/org/apache/naming/NamingContextBindingsEnumeration.java Modified: tomcat/trunk/java/org/apache/naming/NamingContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/NamingContext.java?rev=1005789&r1=1005788&r2=1005789&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/naming/NamingContext.java (original) +++ tomcat/trunk/java/org/apache/naming/NamingContext.java Fri Oct 8 11:57:04 2010 @@ -797,10 +797,6 @@ public class NamingContext implements Co try { Object obj = NamingManager.getObjectInstance (entry.value, name, this, env); - if (obj != null) { - entry.value = obj; - entry.type = NamingEntry.ENTRY; - } return obj; } catch (NamingException e) { throw e; Modified: tomcat/trunk/java/org/apache/naming/NamingContextBindingsEnumeration.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/NamingContextBindingsEnumeration.java?rev=1005789&r1=1005788&r2=1005789&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/naming/NamingContextBindingsEnumeration.java (original) +++ tomcat/trunk/java/org/apache/naming/NamingContextBindingsEnumeration.java Fri Oct 8 11:57:04 2010 @@ -105,13 +105,13 @@ public class NamingContextBindingsEnumer private Binding nextElementInternal() throws NamingException { NamingEntry entry = iterator.next(); + Object value; // If the entry is a reference, resolve it if (entry.type == NamingEntry.REFERENCE || entry.type == NamingEntry.LINK_REF) { try { - // A lookup will resolve the entry - ctx.lookup(new CompositeName(entry.name)); + value = ctx.lookup(new CompositeName(entry.name)); } catch (NamingException e) { throw e; } catch (Exception e) { @@ -119,12 +119,11 @@ public class NamingContextBindingsEnumer ne.initCause(e); throw ne; } + } else { + value = entry.value; } - return new Binding(entry.name, entry.value.getClass().getName(), - entry.value, true); + return new Binding(entry.name, value.getClass().getName(), value, true); } - - } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org