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