Thanks to an email from Martin, I had a strong indicator of where to look. I
checked out tomcat 8 from trunk and validated in eclipse in debug mode. (FYI
build.properties.default is broken due to missing commons pool, had to tweak a
bit).
From webappclassloader.java snippet below (line 737), jars[] does not only
contain jars, but also any other resources. i added a howTo.txt file in
WEB-INF/lib, which results in jars.length will NEVER equal
jarModificationTimes.size().
Fix is simple - just filter out the non-jar, non-executable elements b4
comparing. Workaround is equally trivial - remove said elements from the the
lib folder.
Hope this helps,
Peter
// Check if JARs have been added or removed
WebResource[] jars = resources.listResources("/WEB-INF/lib");
if (jars.length > jarModificationTimes.size()) {
log.info(sm.getString("webappClassLoader.jarsAdded",
resources.getContext().getName()));
return true;
} else if (jars.length < jarModificationTimes.size()){
log.info(sm.getString("webappClassLoader.jarsRemoved",
resources.getContext().getName()));
return true;
}
for (WebResource jar : jars) {
if (jar.getName().endsWith(".jar") && jar.isFile() &&
jar.canRead()) {