desruisseaux commented on code in PR #1160:
URL:
https://github.com/apache/maven-compiler-plugin/pull/1160#discussion_r4212048518
##########
src/main/java/org/apache/maven/plugin/compiler/DiagnosticLogger.java:
##########
@@ -114,7 +114,19 @@ private String relativize(String file) {
*/
@Override
public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
- String message = diagnostic.getMessage(locale);
+ String message;
+ try {
+ message = diagnostic.getMessage(locale);
+ } catch (Throwable e) {
+ /*
+ * Some JDK versions may fail while formatting a diagnostic if a
referenced class has an
+ * annotation type that is not on the classpath (for example, a
CLASS-retained annotation
+ * on a deprecated API). The compiler can still emit a useful
fallback representation.
+ */
+ logger.debug("Cannot format compiler diagnostic; falling back to
its string representation.");
+ logger.debug(e);
Review Comment:
Another issue is that if this warning occurred once, then it may also occur
many more times. The same warning is likely to appear elsewhere in the code to
compile. We don't want to repeat the log message for all occurrences.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]