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 2016/05/20 12:32:50 UTC

[Bug 59608] New: Manifest scanning should handle errors in resolving entries

https://bz.apache.org/bugzilla/show_bug.cgi?id=59608

            Bug ID: 59608
           Summary: Manifest scanning should handle errors in resolving
                    entries
           Product: Tomcat 8
           Version: 8.0.35
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: regression
          Priority: P2
         Component: Util
          Assignee: dev@tomcat.apache.org
          Reporter: andreas.kohn@gmail.com

https://bz.apache.org/bugzilla/show_bug.cgi?id=59226 added scanning of the
Class-Path JAR manifest entries (Yay!). 

Unfortunately this now broke my Tomcat setup when updating from 8.0.33 to
8.0.35, I now see these errors in the logs:
~~~~
20-May-2016 12:15:39.467 INFO [localhost-startStop-1]
org.apache.catalina.startup.HostConfig.deployDirectory Deploying web
application directory /opt/collaborne/j2ee-server/webapps/manager
20-May-2016 12:15:39.494 SEVERE [localhost-startStop-1]
org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild:
start: 
 org.apache.catalina.LifecycleException: Failed to start component
[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/manager]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
    at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
    at
org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
    at
org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Illegal character in path at
index 0: \
    at java.net.URI.create(URI.java:852)
    at java.net.URI.resolve(URI.java:1036)
    at
org.apache.tomcat.util.scan.StandardJarScanner.processManifest(StandardJarScanner.java:400)
    at
org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:324)
    at
org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:273)
    at
org.apache.catalina.startup.ContextConfig.processJarsForWebFragments(ContextConfig.java:1887)
    at
org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1127)
    at
org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:779)
    at
org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:306)
    at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
    at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5171)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    ... 10 more
Caused by: java.net.URISyntaxException: Illegal character in path at index 0: \
    at java.net.URI$Parser.fail(URI.java:2848)
    at java.net.URI$Parser.checkChars(URI.java:3021)
    at java.net.URI$Parser.parseHierarchical(URI.java:3105)
    at java.net.URI$Parser.parse(URI.java:3063)
    at java.net.URI.<init>(URI.java:588)
    at java.net.URI.create(URI.java:850)
    ... 22 more

20-May-2016 12:15:39.494 SEVERE [localhost-startStop-1]
org.apache.catalina.startup.HostConfig.deployDirectory Error deploying web
application directory /opt/collaborne/j2ee-server/webapps/manager
 java.lang.IllegalStateException: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component
[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/manager]]
    at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:729)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
    at
org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
    at
org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

20-May-2016 12:15:39.495 INFO [localhost-startStop-1]
org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web
application directory /opt/collaborne/j2ee-server/webapps/manager has finished
in 27 ms
~~~~

I was able to track this down to a bug inside Batik 1.7
(https://bz.apache.org/bugzilla/show_bug.cgi?id=51908), but I'm pretty tied to
that version at this moment.

1. I think it would be a good idea to log the JAR name/path/URI that is
currently processed, so that finding these problems would not require stepping
through Tomcat :)
2. Given that things worked before without these entries being read, it seems
like Tomcat should catch exceptions here, and just log them as warning. For
Tomcat 9 one might be more aggressive, but for 8.x this failure mode seems to
be to aggressive.

-- 
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


[Bug 59608] Manifest scanning should handle errors in resolving entries

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=59608

Remy Maucherat <re...@apache.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #1 from Remy Maucherat <re...@apache.org> ---
Only one URL error was caught and logged, I also prefer catching everything
there. Errors will be logged as debug with the offending JAR URL.
Included in 9M7, 8.5.3 and 8.0.36.

-- 
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