Author: billbarker
Date: Sun Nov 6 18:08:30 2005
New Revision: 331177
URL: http://svn.apache.org/viewcvs?rev=331177&view=rev
Log:
Allow xerces to know where the web.xml file is so that relative entities can be
resolved.
Fix for Bug #37261
Modified:
tomcat/jasper/tc5.5.x/jasper2/src/share/org/apache/jasper/compiler/TldLocationsCache.java
Modified:
tomcat/jasper/tc5.5.x/jasper2/src/share/org/apache/jasper/compiler/TldLocationsCache.java
URL:
http://svn.apache.org/viewcvs/tomcat/jasper/tc5.5.x/jasper2/src/share/org/apache/jasper/compiler/TldLocationsCache.java?rev=331177&r1=331176&r2=331177&view=diff
==============================================================================
---
tomcat/jasper/tc5.5.x/jasper2/src/share/org/apache/jasper/compiler/TldLocationsCache.java
(original)
+++
tomcat/jasper/tc5.5.x/jasper2/src/share/org/apache/jasper/compiler/TldLocationsCache.java
Sun Nov 6 18:08:30 2005
@@ -17,9 +17,9 @@
package org.apache.jasper.compiler;
import java.io.InputStream;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
+import java.io.IOException;
import java.net.JarURLConnection;
+import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.net.URLConnection;
@@ -31,6 +31,7 @@
import java.util.StringTokenizer;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
+import org.xml.sax.InputSource;
import javax.servlet.ServletContext;
@@ -265,10 +266,11 @@
// Acquire input stream to web application deployment descriptor
String altDDName = (String)ctxt.getAttribute(
Constants.ALT_DD_ATTR);
+ URL uri = null;
if (altDDName != null) {
try {
- is = new FileInputStream(altDDName);
- } catch (FileNotFoundException e) {
+ uri = new URL(FILE_PROTOCOL+altDDName.replace('\\', '/'));
+ } catch (MalformedURLException e) {
if (log.isWarnEnabled()) {
log.warn(Localizer.getMessage(
"jsp.error.internal.filenotfound",
@@ -276,25 +278,28 @@
}
}
} else {
- is = ctxt.getResourceAsStream(WEB_XML);
- if (is == null && log.isWarnEnabled()) {
+ uri = ctxt.getResource(WEB_XML);
+ if (uri == null && log.isWarnEnabled()) {
log.warn(Localizer.getMessage(
"jsp.error.internal.filenotfound",
WEB_XML));
}
}
- if (is == null) {
+ if (uri == null) {
return;
}
+ is = uri.openStream();
+ InputSource ip = new InputSource(is);
+ ip.setSystemId(uri.toExternalForm());
// Parse the web application deployment descriptor
TreeNode webtld = null;
// altDDName is the absolute path of the DD
if (altDDName != null) {
- webtld = new ParserUtils().parseXMLDocument(altDDName, is);
+ webtld = new ParserUtils().parseXMLDocument(altDDName, ip);
} else {
- webtld = new ParserUtils().parseXMLDocument(WEB_XML, is);
+ webtld = new ParserUtils().parseXMLDocument(WEB_XML, ip);
}
// Allow taglib to be an element of the root or jsp-config (JSP2.0)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]