https://bz.apache.org/bugzilla/show_bug.cgi?id=66567
Bug ID: 66567
Summary: java.lang.IllegalArgumentException: URI is not
absolute - Feature change or Regression ?
Product: Tomcat 9
Version: 9.0.73
Hardware: All
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Catalina
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: -----
Given a web.xml containing the following:
<wsdl-file>/WEB-INF/wsdl/SomeRequestDelegator.wsdl</wsdl-file>
This works fine in previous versions of Tomcat through at least 9.0.68.
Something changed between 9.0.68 and 9.0.72/9.0.73
In 9.0.73 this now yields at application startup:
Caused by: org.apache.catalina.LifecycleException: Failed to start
component
[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SOMEapp]]
at
org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683)
... 37 more
Caused by: java.lang.IllegalArgumentException: URI is not absolute
at java.base/java.net.URL.fromURI(Unknown Source)
at java.base/java.net.URI.toURL(Unknown Source)
at
org.apache.catalina.core.NamingContextListener.addService(NamingContextListener.java:833)
at
org.apache.catalina.core.NamingContextListener.createNamingContext(NamingContextListener.java:566)
at
org.apache.catalina.core.NamingContextListener.lifecycleEvent(NamingContextListener.java:243)
at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4851)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
... 38 more
Relevant code in NamingContextListener in 9.0.73:
public void addService(ContextService service) {
Reference ref = lookForLookupRef(service);
if (ref == null) {
if (service.getWsdlfile() != null) {
URL wsdlURL = null;
try {
URI wsdlURI = new URI(service.getWsdlfile());
wsdlURL = wsdlURI.toURL(); <-- line 833
} catch (MalformedURLException | URISyntaxException e) {
// Ignore and carry on
}
I can't tell if there has been a feature change to tighten up adherence to an
RFC specification or if this is a regression.
This works fine on OpenJDK 11.0.18 Temurin with Tomcat 9.0.68 but fails with
Tomcat 9.0.72 and 9.0.73.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]