Java 8 RFR: 8019862: Fix doclint errors in java.lang.*.

Joe Darcy joe.darcy at oracle.com
Wed Jul 3 23:59:53 UTC 2013


On 07/03/2013 04:40 PM, Brian Burkhalter wrote:
> OK, this is ready to go now.
>
> This error
>
> src/share/classes/java/lang/ThreadLocal.java:139: warning: no @param for <T>
>      public static <T> ThreadLocal<T> withInitial(Supplier<? extends T> supplier) {
>                                       ^
> Note: src/share/classes/java/lang/Boolean.java uses unchecked or unsafe operations.
> Note: Recompile with -Xlint:unchecked for details.
> 1 warning
>
> is still reported but I don't see the problem so perhaps it's a bug in the doclint option?

I believe the doclint option is correct, the T in that method is *not* 
the T in the class declaration; it is a local type variable on the 
method. Therefore, this change would resolve the warning:

diff -r a49208237599 src/share/classes/java/lang/ThreadLocal.java
--- a/src/share/classes/java/lang/ThreadLocal.java    Wed Jul 03 
13:30:46 2013 -0700
+++ b/src/share/classes/java/lang/ThreadLocal.java    Wed Jul 03 
16:57:54 2013 -0700
@@ -131,12 +131,13 @@
       * Creates a thread local variable. The initial value of the 
variable is
       * determined by invoking the {@code get} method on the {@code 
Supplier}.
       *
+     * @param <S> the type of the thread local's value
       * @param supplier the supplier to be used to determine the 
initial value
       * @return a new thread local variable
       * @throws NullPointerException if the specified supplier is null
       * @since 1.8
       */
-    public static <T> ThreadLocal<T> withInitial(Supplier<? extends T> 
supplier) {
+    public static <S> ThreadLocal<S> withInitial(Supplier<? extends S> 
supplier) {
          return new SuppliedThreadLocal<>(supplier);
      }

as would

diff -r a49208237599 src/share/classes/java/lang/ThreadLocal.java
--- a/src/share/classes/java/lang/ThreadLocal.java    Wed Jul 03 
13:30:46 2013 -0700
+++ b/src/share/classes/java/lang/ThreadLocal.java    Wed Jul 03 
16:58:38 2013 -0700
@@ -131,6 +131,7 @@
       * Creates a thread local variable. The initial value of the 
variable is
       * determined by invoking the {@code get} method on the {@code 
Supplier}.
       *
+     * @param <T> the type of the thread local's value
       * @param supplier the supplier to be used to determine the 
initial value
       * @return a new thread local variable
       * @throws NullPointerException if the specified supplier is null

However, I would recommend the first of these.

Otherwise, the change looks good to go back.

-Joe

>
> Brian
>
> On Jul 3, 2013, at 3:21 PM, Brian Burkhalter wrote:
>
>> Reviewers:
>>
>> For this issue
>>
>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8019862 (should be public "soon").
>>
>> here is the proposed update
>>
>> http://cr.openjdk.java.net/~bpb/8019862/
>>
>> Thanks,
>>
>> Brian




More information about the core-libs-dev mailing list