You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2012/01/12 21:34:28 UTC
DO NOT REPLY [Bug 52461] New: java.lang.IllegalArgumentException:
URI scheme is not "file" is thrown in ContextConfig.getDefaultWebXmlFragment
https://issues.apache.org/bugzilla/show_bug.cgi?id=52461
Bug #: 52461
Summary: java.lang.IllegalArgumentException: URI scheme is not
"file" is thrown in
ContextConfig.getDefaultWebXmlFragment
Product: Tomcat 7
Version: 7.0.23
Platform: PC
Status: NEW
Severity: normal
Priority: P2
Component: Catalina
AssignedTo: dev@tomcat.apache.org
ReportedBy: violetagg@apache.org
Classification: Unclassified
Hello,
I have a project that embeds Apache Tomcat in OSGi. I provide the default
web.xml from my bundles (jar files) directly; I do not provide it in a separate
folder on the file system.
I am using Apache Tomcat 7.0.21, but now I want to migrate to Apache Tomcat
7.0.23.
Unfortunately there is a change between these two versions and with Apache
Tomcat 7.0.23 the following exception is thrown:
Caused by: java.lang.IllegalArgumentException: URI scheme is not "file"
at java.io.File.<init>(File.java:366)
at
org.apache.catalina.startup.ContextConfig.getDefaultWebXmlFragment(ContextConfig.java:1317)
at
org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1168)
at
org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:828)
at
org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:302)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5148)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 71 more|
In OSGi environment URI scheme is not "file", but "bundleresource".
The call "globalWebXml.getSystemId()" in OSGi environment returns
"bundleresource://94.fwk2102834054/conf/web.xml"
I would like to propose a change (below) in
ContextConfig.getDefaultWebXmlFragment() method because there is no guarantee
that the URI scheme will always be "file". The patch is made against 7.0.x
trunc.
I’m looking forward to your comments.
Best Regards
Violeta Georgieva
Patch proposal:
Index: ContextConfig.java
===================================================================
--- ContextConfig.java (revision 1230565)
+++ ContextConfig.java (working copy)
@@ -29,7 +29,6 @@
import java.io.UnsupportedEncodingException;
import java.net.JarURLConnection;
import java.net.MalformedURLException;
-import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLConnection;
@@ -1324,20 +1323,24 @@
if (globalWebXml != null) {
try {
- File f = new File(new URI(globalWebXml.getSystemId()));
- globalTimeStamp = f.lastModified();
- } catch (URISyntaxException e) {
+ URL f = new URL(globalWebXml.getSystemId());
+ globalTimeStamp = f.openConnection().getLastModified();
+ } catch (MalformedURLException e) {
globalTimeStamp = -1;
- }
+ } catch (IOException e) {
+ globalTimeStamp = -1;
+ }
}
if (hostWebXml != null) {
try {
- File f = new File(new URI(hostWebXml.getSystemId()));
- hostTimeStamp = f.lastModified();
- } catch (URISyntaxException e) {
+ URL f = new URL(hostWebXml.getSystemId());
+ hostTimeStamp = f.openConnection().getLastModified();
+ } catch (MalformedURLException e) {
hostTimeStamp = -1;
- }
+ } catch (IOException e) {
+ globalTimeStamp = -1;
+ }
}
if (entry != null && entry.getGlobalTimeStamp() == globalTimeStamp &&
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
DO NOT REPLY [Bug 52461] java.lang.IllegalArgumentException: URI
scheme is not "file" is thrown in ContextConfig.getDefaultWebXmlFragment
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=52461
--- Comment #2 from violetagg@apache.org 2012-01-14 18:20:33 UTC ---
Thank you!
Violeta
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
DO NOT REPLY [Bug 52461] java.lang.IllegalArgumentException: URI
scheme is not "file" is thrown in ContextConfig.getDefaultWebXmlFragment
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=52461
Mark Thomas <ma...@apache.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
OS/Version| |All
--- Comment #1 from Mark Thomas <ma...@apache.org> 2012-01-13 20:46:41 UTC ---
Fixed in trunk and 7.0.x and will be included in 7.0.24 onwards.
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org