Author: markt
Date: Thu Feb 17 20:38:49 2011
New Revision: 1071774
URL: http://svn.apache.org/viewvc?rev=1071774&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=50802
Ensure that ServletContext.getResourcePaths() includes static resources
packaged in JAR files in its output.
Modified:
tomcat/trunk/java/org/apache/naming/resources/BaseDirContext.java
tomcat/trunk/java/org/apache/naming/resources/FileDirContext.java
tomcat/trunk/java/org/apache/naming/resources/VirtualDirContext.java
tomcat/trunk/java/org/apache/naming/resources/WARDirContext.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/naming/resources/BaseDirContext.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/resources/BaseDirContext.java?rev=1071774&r1=1071773&r2=1071774&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/naming/resources/BaseDirContext.java (original)
+++ tomcat/trunk/java/org/apache/naming/resources/BaseDirContext.java Thu Feb
17 20:38:49 2011
@@ -47,6 +47,8 @@ import javax.naming.directory.SearchCont
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;
/**
@@ -703,25 +705,28 @@ public abstract class BaseDirContext imp
}
// 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
@@ -1590,7 +1595,7 @@ public abstract class BaseDirContext imp
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);
Modified: tomcat/trunk/java/org/apache/naming/resources/FileDirContext.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/resources/FileDirContext.java?rev=1071774&r1=1071773&r2=1071774&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/naming/resources/FileDirContext.java (original)
+++ tomcat/trunk/java/org/apache/naming/resources/FileDirContext.java Thu Feb
17 20:38:49 2011
@@ -27,8 +27,8 @@ import java.util.ArrayList;
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;
@@ -42,7 +42,6 @@ import javax.naming.directory.SearchCont
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;
@@ -318,7 +317,7 @@ public class FileDirContext extends Base
* @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);
@@ -326,8 +325,7 @@ public class FileDirContext extends Base
if (file == null)
return null;
- return new NamingContextBindingsEnumeration(list(file).iterator(),
- this);
+ return list(file);
}
@@ -848,9 +846,9 @@ public class FileDirContext extends Base
* @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();
Modified: tomcat/trunk/java/org/apache/naming/resources/VirtualDirContext.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/resources/VirtualDirContext.java?rev=1071774&r1=1071773&r2=1071774&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/naming/resources/VirtualDirContext.java
(original)
+++ tomcat/trunk/java/org/apache/naming/resources/VirtualDirContext.java Thu
Feb 17 20:38:49 2011
@@ -147,8 +147,8 @@ public class VirtualDirContext extends F
}
@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())) {
Modified: tomcat/trunk/java/org/apache/naming/resources/WARDirContext.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/resources/WARDirContext.java?rev=1071774&r1=1071773&r2=1071774&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/naming/resources/WARDirContext.java (original)
+++ tomcat/trunk/java/org/apache/naming/resources/WARDirContext.java Thu Feb 17
20:38:49 2011
@@ -26,11 +26,11 @@ import java.util.Arrays;
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;
@@ -45,7 +45,6 @@ import javax.naming.directory.Modificati
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;
@@ -331,20 +330,19 @@ public class WARDirContext extends BaseD
* @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);
}
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1071774&r1=1071773&r2=1071774&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Thu Feb 17 20:38:49 2011
@@ -97,6 +97,11 @@
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">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]