JDK 9 RFR of 8068639 : Make certain annotation classfile warnings opt-in

joe darcy joe.darcy at oracle.com
Thu Jan 8 00:47:33 UTC 2015


Hello,

Our EE associates have reported some issues transitioning EE to use 
repeating annotations, certain desirable compilation setups lead to 
discouraging warnings.

Please review this small change to ease the EE migration snag:

     JDK-8068639 : Make certain annotation classfile warnings opt-in
     http://cr.openjdk.java.net/~darcy/8068639.0/

Patch below.

The intention is to backport this change to the 8u and 7u trains as well.

Thanks,

-Joe

--- 
old/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java 
2015-01-07 16:07:58.958480591 -0800
+++ 
new/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java 
2015-01-07 16:07:58.870480591 -0800
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -1740,15 +1740,17 @@
              // The method wasn't found: emit a warning and recover
              JavaFileObject prevSource = 
log.useSource(requestingOwner.classfile);
              try {
-                if (failure == null) {
-                    log.warning("annotation.method.not.found",
-                                container,
-                                name);
-                } else {
- log.warning("annotation.method.not.found.reason",
-                                container,
-                                name,
- failure.getDetailValue());//diagnostic, if present
+                if (lintClassfile) {
+                    if (failure == null) {
+                        log.warning("annotation.method.not.found",
+                                    container,
+                                    name);
+                    } else {
+ log.warning("annotation.method.not.found.reason",
+                                    container,
+                                    name,
+ failure.getDetailValue());//diagnostic, if present
+                    }
                  }
              } finally {
                  log.useSource(prevSource);
--- old/test/tools/javac/annotations/6214965/T6214965.java 2015-01-07 
16:07:59.322480591 -0800
+++ new/test/tools/javac/annotations/6214965/T6214965.java 2015-01-07 
16:07:59.234480591 -0800
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -27,5 +27,5 @@
   * @summary Compiler crash on redefing nested annotation types
   * @compile CompilerAnnotationTest.java CompilerAnnotationTest2.java
   * @compile CompilerAnnotationTest2bad.java
- * @compile/ref=T6214965.out -XDrawDiagnostics 
CompilerAnnotationTest2bad.java
+ * @compile/ref=T6214965.out -XDrawDiagnostics -Xlint:classfile 
CompilerAnnotationTest2bad.java
   */
--- old/test/tools/javac/annotations/6365854/T6365854.java 2015-01-07 
16:07:59.638480591 -0800
+++ new/test/tools/javac/annotations/6365854/T6365854.java 2015-01-07 
16:07:59.546480591 -0800
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -33,11 +33,11 @@
   *
   * @compile TestAnnotation.java TestCore.java
   * @clean test.annotation.TestAnnotation
- * @compile/ref=test1.out -XDrawDiagnostics T6365854.java
+ * @compile/ref=test1.out -XDrawDiagnostics -Xlint:classfile T6365854.java
   * @run main T6365854
- * @compile/ref=test2.out -XDrawDiagnostics evolve/TestAnnotation.java 
T6365854.java
+ * @compile/ref=test2.out -XDrawDiagnostics -Xlint:classfile 
evolve/TestAnnotation.java T6365854.java
   * @run main T6365854
- * @compile/ref=test2.out -XDrawDiagnostics T6365854.java
+ * @compile/ref=test2.out -XDrawDiagnostics -Xlint:classfile T6365854.java
   * @run main T6365854
   */




More information about the compiler-dev mailing list