RFR: jsr166 jdk9 integration wave 2
Doug Lea
dl at cs.oswego.edu
Tue Nov 17 12:01:39 UTC 2015
On 11/17/2015 05:16 AM, Paul Sandoz wrote:
> src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java
> —
>
> CCC created.
Thanks, although it is just a clarification that makes
ForkJoinWorkerThreadFactory spec more similar to ThreadFactory.
>
>
> src/java.base/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java
> —
>
> 398 private final void valueCheck(V v) {
> 399 if (v != null && !(vclass.isInstance(v)))
> 400 throwCCE();
> 401 }
>
> Why not directly use vclass.cast ?
Only to preserve the exact exception thrown. Class.cast adds a detail message
to the ClassCastException that can be deceptive in...
>
> I think there may be a subtle change in behaviour with the updates to A*FU, where previously a CCE would be thrown and now a IAE is thrown e.g. consider an erased A*FU to a public field of some class and and a receiver of the incorrect type is passed to an access method. Does not really matter in practice, although the error message will be confusing.
>
We added more tck tests to check this, and all pass.
ClassCastException was/is thrown in two cases, without distinguishing them,
which allowed a path merge by arranging that "cclass" is now the same as
"vclass" unless field is protected.
-Doug
More information about the core-libs-dev
mailing list