Browse Source

Log single message per jar with faulty Class-Path manifest attribute

Previously, when DevTools encountered a jar with a Class-Path manifest
attribute that referenced non-existent files, it would log one
message per entry in the attribute that did not exist. While useful
information, this has proven to be too verbose.

This commit aims to strike a better balances by logging a single
message for an entire jar. The message is a single line that
includes the path to the jar with the faulty Class-Path manifest
attribute and the paths of all of the files that do not exist that are
referenced by the attribute.

Closes gh-10111
pull/10226/merge
Andy Wilkinson 9 years ago
parent
commit
8761ef547c
  1. 10
      spring-boot-devtools/src/main/java/org/springframework/boot/devtools/restart/ChangeableUrls.java

10
spring-boot-devtools/src/main/java/org/springframework/boot/devtools/restart/ChangeableUrls.java

@ -140,6 +140,7 @@ final class ChangeableUrls implements Iterable<URL> { @@ -140,6 +140,7 @@ final class ChangeableUrls implements Iterable<URL> {
String[] entries = StringUtils.delimitedListToStringArray(classPath, " ");
List<URL> urls = new ArrayList<URL>(entries.length);
File parent = new File(jarFile.getName()).getParentFile();
List<File> nonExistentEntries = new ArrayList<File>();
for (String entry : entries) {
try {
File referenced = new File(parent, entry);
@ -147,9 +148,7 @@ final class ChangeableUrls implements Iterable<URL> { @@ -147,9 +148,7 @@ final class ChangeableUrls implements Iterable<URL> {
urls.add(referenced.toURI().toURL());
}
else {
System.out.println("Ignoring Class-Path entry " + entry + " found in "
+ jarFile.getName() + " as " + referenced
+ " does not exist");
nonExistentEntries.add(referenced);
}
}
catch (MalformedURLException ex) {
@ -157,6 +156,11 @@ final class ChangeableUrls implements Iterable<URL> { @@ -157,6 +156,11 @@ final class ChangeableUrls implements Iterable<URL> {
"Class-Path attribute contains malformed URL", ex);
}
}
if (!nonExistentEntries.isEmpty()) {
System.out.println("The Class-Path manifest attribute in " + jarFile.getName()
+ " referenced one or more files that do not exist: "
+ StringUtils.collectionToCommaDelimitedString(nonExistentEntries));
}
return urls;
}

Loading…
Cancel
Save