Stefan Zobel Streamsupport Versions Save

Backport of Java 8/9 java.util.stream API to Java 6/7 and Android

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]