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: dev@tomcat.apache.org
          Reporter: electric.blue.jag...@gmail.com
  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: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to