import javax.naming.directory.SearchResult;
import org.apache.naming.NameParserImpl;
+import org.apache.naming.NamingContextBindingsEnumeration;
+import org.apache.naming.NamingEntry;
import org.apache.naming.StringManager;
/**
}
// Next do a standard lookup
- NamingEnumeration<Binding> bindings = doListBindings(name);
+ List<NamingEntry> bindings = doListBindings(name);
- if (bindings != null)
- return bindings;
-
// Check the alternate locations
+ List<NamingEntry> altBindings = null;
+
for (DirContext altDirContext : altDirContexts) {
- if (altDirContext instanceof BaseDirContext)
- bindings = ((BaseDirContext) altDirContext).doListBindings(
+ if (altDirContext instanceof BaseDirContext) {
+ altBindings = ((BaseDirContext) altDirContext).doListBindings(
"/META-INF/resources" + name);
- else {
- try {
- bindings = altDirContext.listBindings(name);
- } catch (NamingException ne) {
- // Ignore
+ }
+ if (altBindings != null) {
+ if (bindings == null) {
+ bindings = altBindings;
+ } else {
+ bindings.addAll(altBindings);
}
}
- if (bindings != null)
- return bindings;
+ }
+
+ if (bindings != null) {
+ return new NamingContextBindingsEnumeration(bindings.iterator(),
+ this);
}
// Really not found
protected abstract Object doLookup(String name);
- protected abstract NamingEnumeration<Binding> doListBindings(String name)
+ protected abstract List<NamingEntry> doListBindings(String name)
throws NamingException;
protected abstract String doGetRealPath(String name);
import java.util.Arrays;
import java.util.Date;
import java.util.Hashtable;
+import java.util.List;
-import javax.naming.Binding;
import javax.naming.NameAlreadyBoundException;
import javax.naming.NameClassPair;
import javax.naming.NameNotFoundException;
import javax.naming.directory.SearchResult;
import org.apache.catalina.util.RequestUtil;
-import org.apache.naming.NamingContextBindingsEnumeration;
import org.apache.naming.NamingContextEnumeration;
import org.apache.naming.NamingEntry;
* @exception NamingException if a naming exception is encountered
*/
@Override
- protected NamingEnumeration<Binding> doListBindings(String name)
+ protected List<NamingEntry> doListBindings(String name)
throws NamingException {
File file = file(name);
if (file == null)
return null;
- return new NamingContextBindingsEnumeration(list(file).iterator(),
- this);
+ return list(file);
}
* @param file Collection
* @return Vector containing NamingEntry objects
*/
- protected ArrayList<NamingEntry> list(File file) {
+ protected List<NamingEntry> list(File file) {
- ArrayList<NamingEntry> entries = new ArrayList<NamingEntry>();
+ List<NamingEntry> entries = new ArrayList<NamingEntry>();
if (!file.isDirectory())
return entries;
String[] names = file.list();
}
@Override
- protected ArrayList<NamingEntry> list(File file) {
- ArrayList<NamingEntry> entries = super.list(file);
+ protected List<NamingEntry> list(File file) {
+ List<NamingEntry> entries = super.list(file);
// adds virtual tlds for WEB-INF listing
if ("WEB-INF".equals(file.getName())) {
import java.util.Date;
import java.util.Enumeration;
import java.util.Hashtable;
+import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
-import javax.naming.Binding;
import javax.naming.CompositeName;
import javax.naming.InvalidNameException;
import javax.naming.Name;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
-import org.apache.naming.NamingContextBindingsEnumeration;
import org.apache.naming.NamingContextEnumeration;
import org.apache.naming.NamingEntry;
* @exception NamingException if a naming exception is encountered
*/
@Override
- protected NamingEnumeration<Binding> doListBindings(String strName)
+ protected List<NamingEntry> doListBindings(String strName)
throws NamingException {
Name name = getEscapedJndiName(strName);
if (name.isEmpty())
- return new NamingContextBindingsEnumeration(list(entries).iterator(),
- this);
+ return list(entries);
+
Entry entry = treeLookup(name);
if (entry == null)
return null;
- return new NamingContextBindingsEnumeration(list(entry).iterator(),
- this);
+ return list(entry);
}
that the requestInitialized and requestDestroyed events are only fired
once per request at the correct times. (markt)
</fix>
+ <fix>
+ <bug>50802</bug>: Ensure that
+ <code>ServletContext.getResourcePaths()</code> includes static resources
+ packaged in JAR files in its output. (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="Coyote">