On Wed, Sep 23, 2015 at 3:16 AM, Paul Sandoz <[email protected]> wrote:
> Hi,
>
> I trawled through the patches and could not find anything obvious that
> clobbered existing JDK stuff.
>
> In the misc/locks patches there are some classes that might contain spec
> changes:
>
> ConcurrentLinkedDeque
> CopyOnWriteArraySet
> ScheduledExecutorService
> ScheduledThreadPoolExecutor
>
> LockSupport
> ReentrantReadWriteLock
>
> Any opinions? sometimes it’s a fine line between a clarification and a
> spec update.
>
>
Right. jsr166 bulk updates generally contain so many diverse changes that I
always just assume a CCC would be required (in the past, this was done via
a single request instead of split up as we are doing here).
If you generate a public specdiff (as I believe only Oracle folks can), it
would be easier for all of us to review the spec changes.
>
> There are some new methods we need to track in the following classes:
>
> LinkedTransferQueue
> SynchronousQueue
>
>
Those aren't "really" new methods - just new drop-in implementations of
existing interface methods like toString(), with no new real spec content.
But yeah, a grey area.
>
> In ThreadPoolExecutor there is style used to declare a set of fonts:
>
> 249 * <dd style="font-family:'DejaVu Sans', Arial, Helvetica,
> sans-serif">
> 250 * This class provides {@code protected} overridable
> 251 * {@link #beforeExecute(Thread, Runnable)} and
>
> Is that necessary?
>
>
Compare and contrast:
http://gee.cs.oswego.edu/dl/jsr166/dist/docs/java/util/concurrent/ThreadPoolExecutor.html
http://download.java.net/jdk9/docs/api/java/util/concurrent/ThreadPoolExecutor.html
This is a workaround for
https://bugs.openjdk.java.net/browse/JDK-8136434
javadoc should not use a monotype font for <dd> elements
>
> In Helpers:
>
> 121 private static String newStringUnsafe(char[] chars) {
> 122 // If porting to a JDK where sun.misc.SharedSecrets is not
> 123 // available, modify the code below to simply:
> 124 // return new String(chars);
> 125 // TODO: Can we do this more portably?
> 126 return
> sun.misc.SharedSecrets.getJavaLangAccess().newStringUnsafe(chars);
> 127 }
>
> Yes, you can do this more portably *and* safely by not using it! :-)
>
> Do we really really need to use SharedSecrets? IMO this unsafe dependency
> should be removed in the JDK patch.
Of course, this is "just" a (relatively unimportant) performance
optimization.
Should only classes in java.lang get to use the constructor String(char[]
value, boolean share)?
Will there be a jigsaw-blessed way of creating Strings this way from
"trusted" modules?
More generally, will there be a blessed way to provide relatively unsafe
access to code you trust?
Will hotspot be smart enough to elide the allocation by proving the input
array is never used again?