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