JDK 9 RFR of 8068639 : Make certain annotation classfile warnings opt-in
Jonathan Gibbons
jonathan.gibbons at oracle.com
Thu Jan 8 01:16:08 UTC 2015
Joe,
Looks good, but it would be even better to make sure the warnings are
not generated if the lint option is not given, as in:
- * @compile/ref=T6214965.out -XDrawDiagnostics
CompilerAnnotationTest2bad.java
+ * @compile/ref=T6214965.out -XDrawDiagnostics -Xlint:classfile
CompilerAnnotationTest2bad.java
+ * @compile -Werror CompilerAnnotationTest2bad.java
-- Jon
On 01/07/2015 04:47 PM, joe darcy wrote:
> 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