Android Retrofuture Versions Save

Backport of Java 9 (JEP 266) CompletableFuture API for Android Studio 3.x D8 / desugar toolchain, forked from https://github.com/stefan-zobel/streamsupport

1.7.4

2 years ago
  • JDK-8265029: Preserve SIZED characteristics on slice operations (skip, limit)
  • JDK-8267452: Delegate forEachRemaining in Spliterators.iterator
  • JDK-8199318: add idempotent copy operation for Map.Entry
  • JDK-8267939: Clarify the specification of forEachRemaining
  • JDK-8271601: use x ^ y in the floorMod(int, int) test
  • JDK-8268113: Reuse Long.hashCode()
  • Implement Java 17 j.u.r.RandomGenerator methods
  • Add new CompensatedSums test for JDK-8214761
  • Completed Java 17 port

1.7.3

3 years ago
  • JDK-8238286: Add new flatMap stream operation multiMap (Java 16)
  • JDK-8180352: Add Stream.toList() method (Java 16)
  • JDK-8234131: Misc. changes imported from jsr166 CVS 2021-01
  • JDK-8156071: List.of: reduce array copying during creation
  • JDK-8255150: Add utility methods to check long indexes and ranges
  • JDK-8238669: Long.divideUnsigned is slow for certain values
  • JDK-8254350: CompletableFuture.get may swallow InterruptedException
  • JDK-8259796: Timed CompletableFuture.get swallows InterruptedException
  • JDK-8254973: ThreadPerTaskExecutor does not throw NPE in #execute
  • JDK-8250240: Address use of default constructors in java.util.concurrent
  • JDK-8254146: Avoid unnecessary volatile write on new AtomicBoolean
  • JDK-8247402: Map::compute Javadoc confusing implementation requirements
  • JDK-8228615: Optional.empty doc should suggest using isEmpty
  • JDK-8245970: IntStream.reduce Javadoc should not mention average
  • JDK-8243655: Map.replace javadoc code snippet typo
  • JDK-8253066: Typo in Stream.mapMulti
  • JDK-8259816: Typo in java.util.stream package description
  • Add Loom's CompletableFuture.completed (Project Loom)
  • Completed Java 16 port

1.7.2

4 years ago
  • JDK-8226297: Dual-pivot quicksort improvements
  • JDK-8033148: Comparators and mismatchers for arrays (partially)
  • JDK-8225490: Misc. changes imported from jsr166 CVS 2019-09
  • JDK-8236850: Consistent constant folding on List/​Set.of() instances
  • JDK-8236641: Improve Set.of(...).iterator() warmup characteristics
  • JDK-8227235: Rare failures in testForkHelpQuiesce tests
  • JDK-8231161: Wrong return type in Collector Javadoc code sample
  • JDK-8224716: SummaryStatistics Javadoc overflow of count
  • JDK-8238919: Spacing and punctuation in stream package doc
  • JDK-8241014: Misc. typos in doc comments
  • Test compatibility with Android 10 [#410, #411]
  • Test on Java 14, 15 (early access) [#409, #416]

1.7.1

5 years ago
  • Completed Java 12 port, integrated improvements from Java 13
  • JDK-8215995: Add toArray() methods to immutable collections
  • JDK-8221921: Implement size() / isEmpty() in immutable collections
  • JDK-8214761: Bug in parallel Kahan summation
  • JDK-8221924: Unmodifiable Map with one entry returns null
  • JDK-8221981: Simplify Map/List/Set.of() implementation
  • JDK-8221980: Simplify Optional implementation
  • JDK-8215359: setContextClassLoader() needlessly throws
  • JDK-8211283: Misc. changes imported from jsr166 CVS 2018-11
  • JDK-8219138: Misc. changes imported from jsr166 CVS 2019-05
  • JDK-8223112: Clarify semantics of java.util.Objects.equals
  • JDK-8223379: Clarify ForkJoinPool.getStealCount() Javadoc
  • JDK-8213238: Erroneous Javadoc in MatchOps.MatchKind
  • Test on Java 13 (early access) [#396]

1.7.0

5 years ago
  • Completed Java 11 port, new methods from Java 12
  • JDK-8205461: Create a merging Collector
  • JDK-8210971: CompletionStage / CompletableFuture exception methods
  • JDK-8060192: Add A[] Collection.toArray(IntFunction<A[]>)
  • JDK-8050818: Predicate::not
  • JDK-8203670: Don't use ListIterator for ImmutableCollections iterator()
  • JDK-8203184: List.copyOf() fails to copy sublists
  • JDK-8207003: Misc. changes imported from jsr166 CVS 2018-09
  • JDK-8203681: Misc. changes imported from jsr166 CVS 2018-06
  • JDK-8203864: Execution error in Timsort
  • JDK-8210347: Combine Set.contains() and Set.add() calls
  • JDK-8212899: SubmissionPublisherTest timed out waiting
  • JDK-8204172: Predicate::not should explicitly mention NPE
  • Test on Java 12 early-access [#379]
  • Test with latest Java 8 / Java 11 JRE public builds [#387]

1.6.3

6 years ago
  • Compatibility with Android P preview rev. 3 [#365]
  • JDK-8184693: Add Optional.isEmpty
  • JDK-8201650: Move randomized iteration order to iterators

1.6.2

6 years ago
  • JDK-8200520: ForkJoin tasks interrupted after shutdown
  • JDK-8193128: Reduce number of classes returned by List/Set/Map.of()
  • JDK-8195590: Misc. changes imported from jsr166 CVS 2018-02
  • JDK-8197531: Misc. changes imported from jsr166 CVS 2018-04
  • JDK-8191418: List.of().indexOf(null) doesn't throw NPE
  • JDK-8195649: Reorganize tests for Optional
  • Rename the j8.u.ImmutableCollections version of CollSer [#356]

1.6.1

6 years ago
  • JDK-8075939: flatMap() breaks short-circuiting of terminal Ops
  • JDK-8193856: takeWhile produces incorrect result with flatMap
  • JDK-8140281: Add no-arg orElseThrow() as alternative to get()
  • JDK-8193300: Misc. changes imported from jsr166 CVS 2018-01
  • JDK-8134459: WhileOpTest.java timed out
  • Move j8.u.c.Phaser to atomic component [#349]
  • Move j8.u.c.CompletionException to cfuture component [#348]

1.6.0

6 years ago
  • a first dive into Java 10 (in the sense of new API methods)
    • JDK-8184690: Add Collectors for unmodifiable List, Set, and Map
    • JDK-8177290: Add unmodifiable List, Set, Map copy factories
    • JDK-8178117: Public state constructors for Int/Long/DoubleSummaryStatistics
    • JDK-8188047: Add SplittableRandom.nextBytes
  • backported recent improvements from the Java 10 repo
    • JDK-8190974: Obey parallelism within custom ForkJoinPool
    • JDK-8187947: Race condition in SubmissionPublisher
    • JDK-8193174: SubmissionPublisher invokes the Subscriber's onComplete too early
    • JDK-8189764: Misc. changes imported from jsr166 CVS 2017-11
    • JDK-8192943: Optimize atomic accumulators using getAndSet
    • JDK-8186265: Make toString() methods of "task" objects more useful
    • JDK-8179314: CountedCompleterTest test failure
    • JDK-8181175: Stream.concat behaves like terminal operation
    • JDK-8015667: Stream.toArray(IntFunction) ArrayStoreException spec
    • JDK-8191429: List.sort should specify the sort is stable
    • JDK-8186466: Fix minor issues in java.base javadoc
    • JDK-8186684: Fix broken links in java.base API docs
  • streamsupport-specific changes and fixes
    • merge literal component into streamsupport (JDK-8184690) [#328]
    • Asynchronous tasks marker interface can't be loaded [#323]
    • exempt spliterator-delegated LBD / LBQ from Collection8Test [#327]

1.5.6

6 years ago
  • first "stable release" (1.5.6)
  • JDK-8178409: Misc. changes imported from jsr166 CVS 2017-07
  • JDK-8185099: Misc. changes imported from jsr166 CVS 2017-08
  • reenable LHM Spliterator delegation on Android O [#314]
  • test on Android O preview [#315]
  • reduce method count and jar size [#303]
  • enforce Spliterator delegation on Java 9 [#299]