ASF Bugzilla – Attachment 17315 Details for
Bug 23950
[PATCH] Context.listBindings(...) broken?
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Possible patch to address this issue
patch.txt (text/plain), 5.08 KB, created by
Eli Miller
on 2006-01-03 16:34:49 UTC
(
hide
)
Description:
Possible patch to address this issue
Filename:
MIME Type:
Creator:
Eli Miller
Created:
2006-01-03 16:34:49 UTC
Size:
5.08 KB
patch
obsolete
>Index: D:/workspace/jakarta-tomcat-naming/org/apache/naming/NamingContextBindingsEnumeration.java >=================================================================== >--- D:/workspace/jakarta-tomcat-naming/org/apache/naming/NamingContextBindingsEnumeration.java (revision 365654) >+++ D:/workspace/jakarta-tomcat-naming/org/apache/naming/NamingContextBindingsEnumeration.java (working copy) >@@ -17,11 +17,15 @@ > > package org.apache.naming; > >+import java.util.Hashtable; > import java.util.Iterator; > > import javax.naming.Binding; >+import javax.naming.CompositeName; >+import javax.naming.Context; > import javax.naming.NamingEnumeration; > import javax.naming.NamingException; >+import javax.naming.spi.NamingManager; > > /** > * Naming enumeration implementation. >@@ -37,8 +41,10 @@ > // ----------------------------------------------------------- Constructors > > >- public NamingContextBindingsEnumeration(Iterator entries) { >+ public NamingContextBindingsEnumeration(Iterator entries, Context ctx, Hashtable env) { > iterator = entries; >+ this.ctx = ctx; >+ this.env = env; > } > > >@@ -49,8 +55,9 @@ > * Underlying enumeration. > */ > protected Iterator iterator; >+ private Context ctx; >+ private Hashtable env; > >- > // --------------------------------------------------------- Public Methods > > >@@ -59,7 +66,15 @@ > */ > public Object next() > throws NamingException { >- return nextElement(); >+ try { >+ return nextElementInternal(); >+ } catch (RuntimeException e) { >+ throw (RuntimeException)e; >+ } catch (Exception e) { >+ NamingException ne = new NamingException(); >+ ne.setRootCause(e); >+ throw ne; >+ } > } > > >@@ -85,11 +100,26 @@ > } > > >- public Object nextElement() { >+ private Object nextElementInternal() throws Exception { > NamingEntry entry = (NamingEntry) iterator.next(); >- return new Binding(entry.name, entry.value.getClass().getName(), >- entry.value, true); >+ >+ String name = entry.name; >+ Object obj = NamingManager.getObjectInstance(entry.value, >+ new CompositeName(name), ctx, env); >+ return new Binding(name, obj.getClass().getName(), >+ obj, true); > } >+ >+ public Object nextElement() { >+ try { >+ return nextElementInternal(); >+ } catch (RuntimeException e) { >+ throw (RuntimeException)e; >+ } catch (Exception e) { >+ //TODO: better handling for nested Exceptions pre 1.4 >+ throw new RuntimeException(e.getMessage()); >+ } >+ } > > > } >Index: D:/workspace/jakarta-tomcat-naming/org/apache/naming/NamingContext.java >=================================================================== >--- D:/workspace/jakarta-tomcat-naming/org/apache/naming/NamingContext.java (revision 365636) >+++ D:/workspace/jakarta-tomcat-naming/org/apache/naming/NamingContext.java (working copy) >@@ -387,7 +387,7 @@ > while ((!name.isEmpty()) && (name.get(0).length() == 0)) > name = name.getSuffix(1); > if (name.isEmpty()) { >- return new NamingContextBindingsEnumeration(bindings.values().iterator()); >+ return new NamingContextBindingsEnumeration(bindings.values().iterator(), this, env); > } > > NamingEntry entry = (NamingEntry) bindings.get(name.get(0)); >Index: D:/workspace/jakarta-tomcat-naming/org/apache/naming/resources/FileDirContext.java >=================================================================== >--- D:/workspace/jakarta-tomcat-naming/org/apache/naming/resources/FileDirContext.java (revision 365636) >+++ D:/workspace/jakarta-tomcat-naming/org/apache/naming/resources/FileDirContext.java (working copy) >@@ -334,7 +334,7 @@ > throw new NamingException > (sm.getString("resources.notFound", name)); > >- return new NamingContextBindingsEnumeration(list(file).iterator()); >+ return new NamingContextBindingsEnumeration(list(file).iterator(), this, env); > > } > >Index: D:/workspace/jakarta-tomcat-naming/org/apache/naming/resources/WARDirContext.java >=================================================================== >--- D:/workspace/jakarta-tomcat-naming/org/apache/naming/resources/WARDirContext.java (revision 365636) >+++ D:/workspace/jakarta-tomcat-naming/org/apache/naming/resources/WARDirContext.java (working copy) >@@ -322,12 +322,12 @@ > public NamingEnumeration listBindings(Name name) > throws NamingException { > if (name.isEmpty()) >- return new NamingContextBindingsEnumeration(list(entries).iterator()); >+ return new NamingContextBindingsEnumeration(list(entries).iterator(), this, env); > Entry entry = treeLookup(name); > if (entry == null) > throw new NamingException > (sm.getString("resources.notFound", name)); >- return new NamingContextBindingsEnumeration(list(entry).iterator()); >+ return new NamingContextBindingsEnumeration(list(entry).iterator(), this, env); > } > >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 23950
: 17315 |
17316
|
17317
|
17318