RFR JDK 8: 8022190 Fix varargs lint warnings in the JDK
Lance Andersen
Lance.Andersen at oracle.com
Mon Aug 5 10:36:53 UTC 2013
Joe
Looks ok as well
Best
Lance
--
Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering
1 Network Drive
Burlington, MA 01803
Lance.Andersen at oracle.com
On Aug 4, 2013, at 9:04 PM, Joe Darcy <joe.darcy at oracle.com> wrote:
> Hello,
>
> Please review this fix for
>
> 8022190: Fix varargs lint warnings in the JDK
> http://cr.openjdk.java.net/~darcy/8022190.0/
>
> Full patch below.
>
> While the @SafeVarargs annotation generally suppresses compiler warnings about methods, when the varargs lint option is enabled, javac does some checking of the body to see if it is indeed safe. If it cannot be proven safe, javac will issue a warning.
>
> The the four cases below, javac is unable to determine that the methods are safe. The @SuppressWarnings("varargs") annotations added below help javac out in this regard.
>
> Thanks,
>
> -Joe
>
> diff -r 33617583c545 src/share/classes/java/util/stream/Stream.java
> --- a/src/share/classes/java/util/stream/Stream.java Wed Jul 31 10:53:33 2013 -0700
> +++ b/src/share/classes/java/util/stream/Stream.java Sun Aug 04 18:02:15 2013 -0700
> @@ -827,6 +827,7 @@
> * @return the new stream
> */
> @SafeVarargs
> + @SuppressWarnings("varargs") // Creating a stream for an array is safe
> public static<T> Stream<T> of(T... values) {
> return Arrays.stream(values);
> }
> diff -r 33617583c545 src/share/classes/javax/swing/SwingWorker.java
> --- a/src/share/classes/javax/swing/SwingWorker.java Wed Jul 31 10:53:33 2013 -0700
> +++ b/src/share/classes/javax/swing/SwingWorker.java Sun Aug 04 18:02:15 2013 -0700
> @@ -1,5 +1,5 @@
> /*
> - * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2005, 2013, 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
> @@ -405,6 +405,7 @@
> *
> */
> @SafeVarargs
> + @SuppressWarnings("varargs") // Passing chunks to add is safe
> protected final void publish(V... chunks) {
> synchronized (this) {
> if (doProcess == null) {
> diff -r 33617583c545 src/share/classes/sun/reflect/annotation/AnnotationParser.java
> --- a/src/share/classes/sun/reflect/annotation/AnnotationParser.java Wed Jul 31 10:53:33 2013 -0700
> +++ b/src/share/classes/sun/reflect/annotation/AnnotationParser.java Sun Aug 04 18:02:15 2013 -0700
> @@ -88,6 +88,7 @@
> * @param selectAnnotationClasses an array of annotation types to select when parsing
> */
> @SafeVarargs
> + @SuppressWarnings("varargs") // selectAnnotationClasses is used safely
> static Map<Class<? extends Annotation>, Annotation> parseSelectAnnotations(
> byte[] rawAnnotations,
> ConstantPool constPool,
> diff -r 33617583c545 src/share/classes/sun/swing/AccumulativeRunnable.java
> --- a/src/share/classes/sun/swing/AccumulativeRunnable.java Wed Jul 31 10:53:33 2013 -0700
> +++ b/src/share/classes/sun/swing/AccumulativeRunnable.java Sun Aug 04 18:02:15 2013 -0700
> @@ -1,5 +1,5 @@
> /*
> - * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2005, 2013, 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
> @@ -121,6 +121,7 @@
> * @param args the arguments to accumulate
> */
> @SafeVarargs
> + @SuppressWarnings("varargs") // Copying args is safe
> public final synchronized void add(T... args) {
> boolean isSubmitted = true;
> if (arguments == null) {
>
More information about the core-libs-dev
mailing list