FYI ...
There was a similar fix applied here but reverted  ...
https://issues.apache.org/bugzilla/show_bug.cgi?id=47512#c4

http://svn.apache.org/viewvc?view=revision&revision=832792
http://svn.apache.org/viewvc?view=revision&revision=832638

-Tim

On 10/8/2010 7:57 AM, ma...@apache.org wrote:
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

Reply via email to