RFR of lang level code migration patches

Martin Buchholz martinrb at google.com
Thu Dec 19 17:33:11 UTC 2013


To a high degree of accuracy, the following command gives you the list of
upstream-maintained jsr166 files.
(You can also check out jsr166 CVS yourself and poke around in src/main and
src/jtreg.)

openjdk8/jdk $ find -name '*.java' | xargs grep -lF
http://creativecommons.org/publicdomain/zero/1.0/ | sort
./src/share/classes/java/util/AbstractQueue.java
./src/share/classes/java/util/ArrayDeque.java
./src/share/classes/java/util/ArrayPrefixHelpers.java
./src/share/classes/java/util/Deque.java
./src/share/classes/java/util/NavigableMap.java
./src/share/classes/java/util/NavigableSet.java
./src/share/classes/java/util/Queue.java
./src/share/classes/java/util/concurrent/AbstractExecutorService.java
./src/share/classes/java/util/concurrent/ArrayBlockingQueue.java
./src/share/classes/java/util/concurrent/BlockingDeque.java
./src/share/classes/java/util/concurrent/BlockingQueue.java
./src/share/classes/java/util/concurrent/BrokenBarrierException.java
./src/share/classes/java/util/concurrent/Callable.java
./src/share/classes/java/util/concurrent/CancellationException.java
./src/share/classes/java/util/concurrent/CompletableFuture.java
./src/share/classes/java/util/concurrent/CompletionException.java
./src/share/classes/java/util/concurrent/CompletionService.java
./src/share/classes/java/util/concurrent/CompletionStage.java
./src/share/classes/java/util/concurrent/ConcurrentHashMap.java
./src/share/classes/java/util/concurrent/ConcurrentLinkedDeque.java
./src/share/classes/java/util/concurrent/ConcurrentLinkedQueue.java
./src/share/classes/java/util/concurrent/ConcurrentMap.java
./src/share/classes/java/util/concurrent/ConcurrentNavigableMap.java
./src/share/classes/java/util/concurrent/ConcurrentSkipListMap.java
./src/share/classes/java/util/concurrent/ConcurrentSkipListSet.java
./src/share/classes/java/util/concurrent/CopyOnWriteArraySet.java
./src/share/classes/java/util/concurrent/CountDownLatch.java
./src/share/classes/java/util/concurrent/CountedCompleter.java
./src/share/classes/java/util/concurrent/CyclicBarrier.java
./src/share/classes/java/util/concurrent/DelayQueue.java
./src/share/classes/java/util/concurrent/Delayed.java
./src/share/classes/java/util/concurrent/Exchanger.java
./src/share/classes/java/util/concurrent/ExecutionException.java
./src/share/classes/java/util/concurrent/Executor.java
./src/share/classes/java/util/concurrent/ExecutorCompletionService.java
./src/share/classes/java/util/concurrent/ExecutorService.java
./src/share/classes/java/util/concurrent/Executors.java
./src/share/classes/java/util/concurrent/ForkJoinPool.java
./src/share/classes/java/util/concurrent/ForkJoinTask.java
./src/share/classes/java/util/concurrent/ForkJoinWorkerThread.java
./src/share/classes/java/util/concurrent/Future.java
./src/share/classes/java/util/concurrent/FutureTask.java
./src/share/classes/java/util/concurrent/LinkedBlockingDeque.java
./src/share/classes/java/util/concurrent/LinkedBlockingQueue.java
./src/share/classes/java/util/concurrent/LinkedTransferQueue.java
./src/share/classes/java/util/concurrent/Phaser.java
./src/share/classes/java/util/concurrent/PriorityBlockingQueue.java
./src/share/classes/java/util/concurrent/RecursiveAction.java
./src/share/classes/java/util/concurrent/RecursiveTask.java
./src/share/classes/java/util/concurrent/RejectedExecutionException.java
./src/share/classes/java/util/concurrent/RejectedExecutionHandler.java
./src/share/classes/java/util/concurrent/RunnableFuture.java
./src/share/classes/java/util/concurrent/RunnableScheduledFuture.java
./src/share/classes/java/util/concurrent/ScheduledExecutorService.java
./src/share/classes/java/util/concurrent/ScheduledFuture.java
./src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java
./src/share/classes/java/util/concurrent/Semaphore.java
./src/share/classes/java/util/concurrent/SynchronousQueue.java
./src/share/classes/java/util/concurrent/ThreadFactory.java
./src/share/classes/java/util/concurrent/ThreadLocalRandom.java
./src/share/classes/java/util/concurrent/ThreadPoolExecutor.java
./src/share/classes/java/util/concurrent/TimeUnit.java
./src/share/classes/java/util/concurrent/TimeoutException.java
./src/share/classes/java/util/concurrent/TransferQueue.java
./src/share/classes/java/util/concurrent/atomic/AtomicBoolean.java
./src/share/classes/java/util/concurrent/atomic/AtomicInteger.java
./src/share/classes/java/util/concurrent/atomic/AtomicIntegerArray.java
./src/share/classes/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java
./src/share/classes/java/util/concurrent/atomic/AtomicLong.java
./src/share/classes/java/util/concurrent/atomic/AtomicLongArray.java
./src/share/classes/java/util/concurrent/atomic/AtomicLongFieldUpdater.java
./src/share/classes/java/util/concurrent/atomic/AtomicMarkableReference.java
./src/share/classes/java/util/concurrent/atomic/AtomicReference.java
./src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java
./src/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java
./src/share/classes/java/util/concurrent/atomic/AtomicStampedReference.java
./src/share/classes/java/util/concurrent/atomic/DoubleAccumulator.java
./src/share/classes/java/util/concurrent/atomic/DoubleAdder.java
./src/share/classes/java/util/concurrent/atomic/LongAccumulator.java
./src/share/classes/java/util/concurrent/atomic/LongAdder.java
./src/share/classes/java/util/concurrent/atomic/Striped64.java
./src/share/classes/java/util/concurrent/atomic/package-info.java
./src/share/classes/java/util/concurrent/locks/AbstractOwnableSynchronizer.java
./src/share/classes/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java
./src/share/classes/java/util/concurrent/locks/AbstractQueuedSynchronizer.java
./src/share/classes/java/util/concurrent/locks/Condition.java
./src/share/classes/java/util/concurrent/locks/Lock.java
./src/share/classes/java/util/concurrent/locks/LockSupport.java
./src/share/classes/java/util/concurrent/locks/ReadWriteLock.java
./src/share/classes/java/util/concurrent/locks/ReentrantLock.java
./src/share/classes/java/util/concurrent/locks/ReentrantReadWriteLock.java
./src/share/classes/java/util/concurrent/locks/StampedLock.java
./src/share/classes/java/util/concurrent/locks/package-info.java
./src/share/classes/java/util/concurrent/package-info.java
./test/java/util/PriorityQueue/NoNulls.java
./test/java/util/PriorityQueue/PriorityQueueSort.java
./test/java/util/Random/DistinctSeeds.java
./test/java/util/concurrent/BlockingQueue/CancelledProducerConsumerLoops.java
./test/java/util/concurrent/BlockingQueue/LoopHelpers.java
./test/java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java
./test/java/util/concurrent/BlockingQueue/OfferDrainToLoops.java
./test/java/util/concurrent/BlockingQueue/PollMemoryLeak.java
./test/java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java
./test/java/util/concurrent/BlockingQueue/SingleProducerMultipleConsumerLoops.java
./test/java/util/concurrent/CompletableFuture/Basic.java
./test/java/util/concurrent/ConcurrentHashMap/LoopHelpers.java
./test/java/util/concurrent/ConcurrentHashMap/MapCheck.java
./test/java/util/concurrent/ConcurrentHashMap/MapLoops.java
./test/java/util/concurrent/ConcurrentQueues/ConcurrentQueueLoops.java
./test/java/util/concurrent/ConcurrentQueues/GCRetention.java
./test/java/util/concurrent/ConcurrentQueues/IteratorWeakConsistency.java
./test/java/util/concurrent/ConcurrentQueues/LoopHelpers.java
./test/java/util/concurrent/ConcurrentQueues/RemovePollRace.java
./test/java/util/concurrent/Exchanger/ExchangeLoops.java
./test/java/util/concurrent/Exchanger/LoopHelpers.java
./test/java/util/concurrent/ExecutorCompletionService/ExecutorCompletionServiceLoops.java
./test/java/util/concurrent/ExecutorCompletionService/LoopHelpers.java
./test/java/util/concurrent/FutureTask/CancelledFutureLoops.java
./test/java/util/concurrent/FutureTask/DoneTimedGetLoops.java
./test/java/util/concurrent/FutureTask/LoopHelpers.java
./test/java/util/concurrent/Phaser/Arrive.java
./test/java/util/concurrent/Phaser/Basic.java
./test/java/util/concurrent/Phaser/FickleRegister.java
./test/java/util/concurrent/Phaser/PhaseOverflow.java
./test/java/util/concurrent/Phaser/TieredArriveLoops.java
./test/java/util/concurrent/ScheduledThreadPoolExecutor/DelayOverflow.java
./test/java/util/concurrent/Semaphore/PermitOverflow.java
./test/java/util/concurrent/Semaphore/RacingReleases.java
./test/java/util/concurrent/atomic/DoubleAdderDemo.java
./test/java/util/concurrent/atomic/LongAdderDemo.java
./test/java/util/concurrent/forkjoin/FJExceptionTableLeak.java
./test/java/util/concurrent/forkjoin/Integrate.java
./test/java/util/concurrent/forkjoin/NQueensCS.java
./test/java/util/concurrent/forkjoin/ThreadLessCommon.java
./test/java/util/concurrent/forkjoin/ThrowingRunnable.java
./test/java/util/concurrent/locks/ReentrantLock/CancelledLockLoops.java
./test/java/util/concurrent/locks/ReentrantLock/LockOncePerThreadLoops.java
./test/java/util/concurrent/locks/ReentrantLock/LoopHelpers.java
./test/java/util/concurrent/locks/ReentrantLock/SimpleReentrantLockLoops.java
./test/java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java
./test/java/util/concurrent/locks/ReentrantReadWriteLock/LoopHelpers.java
./test/java/util/concurrent/locks/ReentrantReadWriteLock/MapLoops.java
./test/java/util/concurrent/locks/ReentrantReadWriteLock/RWMap.java
./test/java/util/concurrent/locks/StampedLock/Basic.java


On Thu, Dec 19, 2013 at 9:19 AM, Brian Goetz <brian.goetz at oracle.com> wrote:

> Paul deliberately stayed away from the JUC classes.  Can we get a
> definitive list of non-JUC classes that primarily live in the JSR166 CVS?
>
>
> On 12/19/2013 11:48 AM, Martin Buchholz wrote:
>
>> (as always) Please don't modify jsr166 classes (ArrayDeque) here, since
>> they are maintained upstream in jsr166 CVS.  Since jsr166 targets a
>> variety
>> of java runtimes in general, it tends to be a late adopter of new language
>> features.  Although it's probably time to start using jdk7 features.
>>
>>
>> On Thu, Dec 19, 2013 at 6:51 AM, Paul Sandoz <paul.sandoz at oracle.com>
>> wrote:
>>
>>  Hi,
>>>
>>> Here are some patches that migrate some code to use more up to date
>>> language features. I will create a bug later on after feedback.
>>>
>>> This is motivated from Brian's patches to lang tools.
>>>
>>> I focused just on java.util, minus the concurrent packages, and i used
>>> the
>>> IDE to assist in the code migration. It's easy to pick off other packages
>>> over time. This makes for more of a low-brow effort [*], perfect when one
>>> has a cold.
>>>
>>> Use <> syntax:
>>> http://cr.openjdk.java.net/~psandoz/tl/j.u.diamond/webrev/
>>>
>>> Replace for with for-each
>>> http://cr.openjdk.java.net/~psandoz/tl/j.u.foreach/webrev/
>>>
>>> Replace while with for-each
>>> http://cr.openjdk.java.net/~psandoz/tl/j.u.foreach-while/webrev/
>>>
>>> Compress catches
>>> http://cr.openjdk.java.net/~psandoz/tl/j.u.catch/webrev/
>>>
>>> Use switch for strings; not sure this one is worth it
>>> http://cr.openjdk.java.net/~psandoz/tl/j.u.swtich/webrev/
>>>
>>> I ran all the j.u. tests locally and there were no regressions. Yet to
>>> run
>>> a JPRT job.
>>>
>>> Paul.
>>>
>>> [*] although one needs to be vigilant since sometimes the IDE can
>>> refactor
>>> incorrectly and sometimes code is arranged in a certain way for a reason
>>> (which one reason for leaving j.u.concurrent packages alone for now).
>>>
>>>



More information about the core-libs-dev mailing list