Skip to content

v5.7.5

Choose a tag to compare

@github-actions github-actions released this 04 Jul 12:51
  • Revert to using colapi.jar when building Javadoc.
  • Doug Lea's util.concurrent package in Release 1.3.4 has been implemented in javolution.util.concurrent, except for PropertyChangeMulticaster.java and VetoableChangeMulticaster.java for maintenance and backport reasons.
  • javolution.util.concurrent will be split into sub-packages similar to the JDK:
    • java.util.concurrent can be replaced with javolution.util.concurrent.
    • java.util.concurrent.atomic can be replaced with javolution.util.concurrent.atomic.
    • java.util.concurrent.locks can be replaced with javolution.util.concurrent.locks.
  • Added Javadoc for packages: javolution.util.concurrent, javolution.util.concurrent.atomic, javolution.util.concurrent.locks, javolution.util.internal.collection, and javolution.util.primitive.
  • Added an override for FastSet.shared().
  • Added an iterator method for FastSet.
  • Optimized javolution.util.concurrent.ConcurrentHashMap for high concurrency and low GC pressure:
    • Converted the internal chain links to a volatile Entry _next pointer to ensure safe lock-free reads.
    • Redesigned the removal logic to perform in-place unlinking (prev._next = e._next) under segment locks, completely eliminating the original Copy-on-Write chain replication overhead and achieving zero-allocation removals.
    • Added static newKeySet() and newKeySet(int) helper methods mimicking JDK 8+ concurrent set support.
    • Implemented the nested static class KeySetView to support concurrent, reusable Set views of map keys, fully backported for J2ME and legacy JDK (1.4+) compatibility.

Full Changelog: v5.7.4...v5.7.5