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

            Bug ID: 60629
           Summary: Misleading/erroneous log message from
                    TldScanner#scanJars() about no TLDs in scanned JARs
           Product: Tomcat 8
           Version: 8.5.11
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Catalina
          Assignee: dev@tomcat.apache.org
          Reporter: 1983-01...@gmx.net
  Target Milestone: ----

I believe that this log message is incorrect. In debug mode I get the following
output (trimmed for brevity):

> 23-Jan-2017 15:18:34.368 INFORMATION [localhost-startStop-1] 
> o.a.catalina.startup.HostConfig.deployWAR Deploying web application archive 
> /var/opt/tomcat-8.5/webapps/smartld.war
> 23-Jan-2017 15:18:44.315 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner.scanResourcePaths No TLD files were found in 
> resource path [/WEB-INF/jsp/control/recordUpdate/].
> 23-Jan-2017 15:18:44.315 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner.scanResourcePaths No TLD files were found in 
> resource path [/WEB-INF/jsp/control/].
> 23-Jan-2017 15:18:44.316 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner.scanResourcePaths No TLD files were found in 
> resource path [/WEB-INF/jsp/admin/].
> 23-Jan-2017 15:18:44.317 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner.scanResourcePaths No TLD files were found in 
> resource path [/WEB-INF/jsp/].
> 23-Jan-2017 15:18:44.349 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner.scanResourcePaths No TLD files were found in 
> resource path [/WEB-INF/vm/].
> 23-Jan-2017 15:18:44.349 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner.scanResourcePaths TLD files were found in 
> resource path [/WEB-INF/].
> 23-Jan-2017 15:18:44.360 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/jericho-html-2.4.jar]. 
> Consider ...
> 23-Jan-2017 15:18:44.371 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/logback-core-1.1.8.jar].
>  Consider ...
> 23-Jan-2017 15:18:44.375 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/json-lib-2.4-jdk15.jar].
>  Consider ...
> 23-Jan-2017 15:18:44.377 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/tedab-services-search-syntax-converter-1.5.jar].
>  Consider ...
> 23-Jan-2017 15:18:44.421 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan TLD files were found in 
> JAR 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/smartld-widget-taglib-3.0-SNAPSHOT.jar].
> 23-Jan-2017 15:18:44.424 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/yui2-assets-2.9.0-dynamowerk-10.jar].
>  Consider ...
> 23-Jan-2017 15:18:44.425 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/commons-dbutils-1.6.jar].
>  Consider ...
> 23-Jan-2017 15:18:44.426 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/xmlpull-1.1.3.1.jar]. 
> Consider ...
> 23-Jan-2017 15:18:44.562 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan TLD files were found in 
> JAR 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/displaytag-1.2-dynamowerk-4.jar].
> 23-Jan-2017 15:18:44.564 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/urlrewritefilter-4.0.4.jar].
>  Consider ...
> 23-Jan-2017 15:18:44.565 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/ezmorph-1.0.6.jar]. 
> Consider ...
> 23-Jan-2017 15:18:44.566 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/dynamowerk-js-0.4.1.jar].
>  Consider ...
> 23-Jan-2017 15:18:44.568 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/logback-classic-1.1.8.jar].
>  Consider ...
> 23-Jan-2017 15:18:44.569 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/jcl-over-slf4j-1.7.22.jar].
>  Consider ...
> 23-Jan-2017 15:18:44.572 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/lucene-queryparser-3.6.2.jar].
>  Consider ...
> 23-Jan-2017 15:18:44.885 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan TLD files were found in 
> JAR 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/javax.servlet.jsp.jstl-1.2.4.jar].
> 23-Jan-2017 15:18:44.887 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/commons-csv-1.4.jar]. 
> Consider ...
> 23-Jan-2017 15:18:44.888 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/prototype-js-1.7.1-dynamowerk-2.jar].
>  Consider ...
> 23-Jan-2017 15:18:44.891 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/itext-2.0.8.jar]. 
> Consider ...
> 23-Jan-2017 15:18:44.892 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/cal10n-api-0.7.7.jar]. 
> Consider ...
> 23-Jan-2017 15:18:44.893 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/smartld-js-libs-2.7.jar].
>  Consider ...
> 23-Jan-2017 15:18:44.895 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/jstl-api-1.2.jar]. 
> Consider ...
> 23-Jan-2017 15:18:44.898 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/xstream-1.4.9.jar]. 
> Consider ...
> 23-Jan-2017 15:18:44.899 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/resources-dependency-filter-0.8.2.jar].
>  Consider ...
> 23-Jan-2017 15:18:44.999 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan TLD files were found in 
> JAR 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/input-taglib-0.2.1-dynamowerk-2.jar].
> 23-Jan-2017 15:18:45.006 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/lucene-core-3.6.2.jar]. 
> Consider ...
> 23-Jan-2017 15:18:45.007 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/xpp3_min-1.1.4c.jar]. 
> Consider ...
> 23-Jan-2017 15:18:45.008 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/velocity-slf4j-0.3.jar].
>  Consider ...
> 23-Jan-2017 15:18:45.009 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/yui2-js-2.9.0-dynamowerk-10.jar].
>  Consider ...
> 23-Jan-2017 15:18:45.020 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan TLD files were found in 
> JAR 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/velocity-tools-2.0-dynamowerk-1.jar].
> 23-Jan-2017 15:18:45.093 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan TLD files were found in 
> JAR 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/ajaxtags-1.3-dynamowerk-2.jar].
> 23-Jan-2017 15:18:45.095 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/dieditor-model-0.2.jar].
>  Consider ...
> 23-Jan-2017 15:18:45.097 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/smartld-help-2.6.jar]. 
> Consider ...
> 23-Jan-2017 15:18:45.099 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in [file:/var/opt/tomcat-8.5/webapps/smartld/WEB-INF/lib/velocity-1.7.jar]. 
> Consider ...
> 23-Jan-2017 15:18:45.103 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/opt/apache-tomcat-8.5.11/lib/michael-o-tomcat-extras-2.0-SNAPSHOT.jar].
>  Consider ...
> 23-Jan-2017 15:18:45.104 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in [file:/opt/apache-tomcat-8.5.11/lib/dircontextsource-2.0-SNAPSHOT.jar]. 
> Consider ...
> 23-Jan-2017 15:18:45.105 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in 
> [file:/opt/apache-tomcat-8.5.11/lib/tomcat-authnz-spnego-ad-3.0-SNAPSHOT.jar].
>  Consider ...
> 23-Jan-2017 15:18:45.106 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in [file:/opt/apache-tomcat-8.5.11/lib/smtp-1.5.5.jar]. Consider ...
> 23-Jan-2017 15:18:45.107 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in [file:/opt/apache-tomcat-8.5.11/lib/jaxb/txw2-2.2.11.jar]. Consider ...
> 23-Jan-2017 15:18:45.108 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in [file:/opt/apache-tomcat-8.5.11/lib/jaxb/istack-commons-runtime-2.21.jar]. 
> Consider ...
> 23-Jan-2017 15:18:45.109 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in [file:/opt/apache-tomcat-8.5.11/lib/jaxb/stax-ex-1.7.7.jar]. Consider ...
> 23-Jan-2017 15:18:45.111 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in [file:/opt/apache-tomcat-8.5.11/lib/jaxb/FastInfoset-1.2.13.jar]. Consider 
> ...
> 23-Jan-2017 15:18:45.117 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in [file:/opt/oracle/product/11.2.0/client_1/jdbc/lib/ojdbc6.jar]. Consider 
> ...
> 23-Jan-2017 15:18:45.118 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in [file:/opt/oracle/product/11.2.0/client_1/jlib/osdt_cert.jar]. Consider ...
> 23-Jan-2017 15:18:45.120 FEIN [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner$TldScannerCallback.scan No TLD files were found 
> in [file:/opt/oracle/product/11.2.0/client_1/jlib/osdt_core.jar]. Consider ...
> 23-Jan-2017 15:18:45.120 INFORMATION [localhost-startStop-1] 
> o.a.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs 
> yet contained no TLDs. Enable debug logging for this logger for a complete 
> list of JARs that were scanned but no TLDs were found in them. Skipping 
> unneeded JARs during scanning can improve startup time and JSP compilation 
> time.
> 23-Jan-2017 15:18:47.781 INFORMATION [localhost-startStop-1] 
> o.a.catalina.startup.HostConfig.deployWAR Deployment of web application 
> archive /var/opt/tomcat-8.5/webapps/smartld.war has finished in 13,411 ms

As you can see, several JARs do contain a TLD file, #scan() says: "At least one
JAR was scanned for TLDs yet contained no TLDs." This is simply not true.

The issue is rooted in TldScanner#scanJars(). It creates *one*
TldScannerCallback (collector) and asks for callback.scanFoundNoTLDs(). The
callback is passed to #scan(JarScanType...) where an iterator over WEB-INF/lib
is created and processed with #process(). Ultimately, TldScannerCallback#scan()
decides for this JAR that it does not contain a TLD and writes to
foundJarWithoutTld. If the last scanned JAR does not contain a TLD, this value
is set to false, even if one JAR with a TLD exists on the chain.

The state is not maintained. I would expect to collect this information on a
per-JAR basis in the collector and perform an any() mapping on the boolean
array. This would also allow to say that "n JARs" where scanned and not just
"at least one JAR". Alternatively, invert the logic foundJarWithoutTld =>
foundJarWithTld, init with false and set to true in the if(found) clause, so a
negative match would not kill a previously found positive match.

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