Skip to content

Releases: oracle/coherence

Coherence CE v21.12.2

04 Feb 03:31
Compare
Choose a tag to compare

This is Patch 2 of the Coherence CE v21.12 release.

Bugs fixed since Coherence CE 21.12.1:

  • Enhanced Coherence REST server logging to assist development time debugging, log handled exceptions for REST HTTP Response of BAD_REQUEST (status 400) at log level 6 or higher.
  • Added ServiceMBean attribute StatusHACode for metrics support.
  • Fixed an issue where the XmlHelper.overrideElement() may not maintain the order of elements in the result XML configuration.
  • Fixed an issue where closing a topic subscriber caused a NotSerializableException on the storage enabled cluster members.

Coherence CE v21.12.1

19 Jan 22:13
Compare
Choose a tag to compare

This is Patch 1 of the Coherence CE v21.12 release.

New Features in 21.12.1:

  • Added support for using a password provider for the keystore password in the AccessController.
  • Added API methods to determine the number of unreceived elements for a NamedTopic subscriber or subscriber group.

Bugs fixed since Coherence CE 21.12:

  • Fixed an issue with AccessController where keystores which support read access without a password could no longer be used without a password.
  • Removed the optional Log4J and SLF4J dependencies from the Coherence POM file.
  • Fixed an issue where topic subscribers failed to be cleaned up causing channels to fail to be reallocated to remaining subscribers.
  • Fixed an issue where deadlock occurs if a topic and one or more of its publishers are closed by different threads at the same time.
  • Fixed an issue where a NullPointerException may be thrown when a topic attempts to clean up subscriber notifications for a non-existent page.
  • Updated the management Swagger to call out certain features that are available when using Grid Edition only.
  • Fixed an issue in topic Subscriber where the CompletableFuture returned from calls to Subscriber.receieve() could fail to complete on an empty topic when the Subscriber was created with the CompleteOnEmpty option enabled.
  • Fixed an issue where the operationId in the management Swagger document was incorrect for the stop service operation.

Coherence CE v14.1.1.0.8

19 Jan 16:03
Compare
Choose a tag to compare

This is patch 8 of the Coherence CE v14.1.1 release.

Bugs fixed since Coherence CE 14.1.1.0.7:

  • Fixed an issue in Management over REST swagger documentation where the operationId was incorrect for the start federation operation.
  • Fixed an issue where a service could be terminated during partition recovery due to guardian timeout.
  • Improved versioning logic to handle future commercial product versioning schemes.
  • Fixed an issue where service names and other path elements were not being validated in Management over REST endpoints.
  • Fixed an issue where a client side memory leak may occur when many TopicPublishers are created and closed with option FailOnFull.enabled().
  • Fixed an issue where setting discovery-address in multicast mode did not have any effect. The specified address will now be used as the discovery endpoint. If a discovery-address is not specified, by default the discovery endpoint will bind to all interfaces on a multi-homed machine.
  • Fixed an issue where a null was returned in a JFR status message instead of the actual member id.
  • Added the ability to register lifecycle listeners with DefaultCacheServer instances, either via the DefaultCacheServer API, or via discovery using the Java ServiceLoader.
  • Fixed a regression in PortableException when Java serialisation introduced in 12.2.1.4.5 and 14.1.1.0.1 that made it incompatible with earlier Coherence versions. Applications using POF are not affected by this change or this bug.
  • Fixed an issue where requests could hang indefinitely due to a failed partition recovery.
  • Fixed an issue where UnitsBytes could be negative when unit factor was greater than one.
  • Updated MVEL version to 2.4.12.Final.
  • Bumped the version for JLine dependencies and included JLine jar files.
  • Fixed an issue where a distributed service could release an unowned partition leading to IllegalStateException.
  • Fixed an issue where a service could hang indefinitely on updateIndex waiting for pending storage version to commit.
  • Fixed an issue where CohQL could return incorrect results when compound conditions are used with parenthesis on the first part of the query statement.
  • Improved startup times in OSs that exhibit slow times in deriving the network interface associated to an IP address.

Coherence CE v21.12

14 Dec 16:28
Compare
Choose a tag to compare

This is the official Coherence CE v21.12 release including the following new features.

New Features in 21.12:

  • Distributed Concurrent Data Structures
    • Distributed implementations of java.util.concurrent primitives, such as atomics, locks, latches and semaphores.
    • An ExecutorService implementation allowing guaranteed remote task execution.
  • Backup Improvements
    • Allow the redundant copies to be used for reads (get/getAll) with the option of choosing primary, closest, a random backup up, or provide your own implementation.
    • Reduce the cost of asynchronous backups, thus improving write throughput, by scheduling the changes to be sent to redundant copies periodically.

Bugs fixed since Coherence CE 21.06:

  • Fixed an issue where a service could be terminated during partition recovery due to guardian timeout.
  • Fixed an issue where service names and other path elements were not being validated in Management over REST endpoints
  • Fixed an issue where a client side memory leak may occur when many TopicPublishers are created and closed with option FailOnFull.enabled().
  • Fixed an issue where setting discovery-address in multicast mode did not have any effect. The specified address will now be used as the discovery endpoint. If a discovery-address is not specified, by default the discovery endpoint will bind to all interfaces on a multi-homed machine.
  • Fixed an issue where a null was returned in a JFR status message instead of the actual member ID.
  • Fixed a regression in PortableException when Java serialization introduced in 12.2.1.4.5 and 14.1.1.0.1 that made it incompatible with earlier Coherence versions. Applications using POF are not affected by this change or this bug.
  • Improved the removal of topic group subscribers created by departed cluster members, by making it more aggressive and hence speeding up reallocation of channels to the remaining subscribers.
  • Fixed an issue where topic subscribers could cause a deadlock when processing non-empty channel notifications.
  • Fixed an issue where member departure caused all topic subscribers on storage disabled members to be disconnected instead of just cleaning up departed subscribers.
  • Fixed an issue where topic subscribers could create a deadlock when reconnecting after loss of storage members, causing the service guardian to terminate the service .
  • Fixed an issue where requests could hang indefinitely due to a failed partition recovery.
  • Fixed an issue where UnitsBytes could be negative when unit factor was greater than one.
  • Bumped the version for JLine dependencies and included JLine jar files.
  • Fixed an issue where a distributed service could release an unowned partition leading to IllegalStateException.
  • Enhanced the Coherence.start() method, released as part of the Bootstrap API in CE version 20.12, to return a CompletableFuture<Coherence> instead of a CompletableFuture<Void>. This allows a more fluent API when using static factory methods to create and start a Coherence instance. This is a breaking change in applications that specifically assign the result of calls to Coherence.start() to a CompletableFuture<Void> variable.
  • Fixed an issue where a service could hang indefinitely on updateIndex waiting for pending storage version to commit.
  • Fixed an issue where CohQL could return incorrect results when compound conditions are used with parenthesis on the first part of the query statement.
  • Fixed an issue where stream collect on NamedCache collections (keySet, values, entrySet) throws UnsupportedOperationException.
  • Fixed a NullPointerException that occurred when generating a log message after failing to start management over REST, which resulted in the misleading, and non-helpful, error log message: "Failure to initialize JMX remote management caused by: NullPointerException".
  • Fixed an issue where expired entries are not evicted for ReadWriteBackingMap.
  • Fixed an issue that class ConverterComparator is serializable, which is not required.
  • Fixed a memory leak that occurred when creating and releasing Topic Publishers and Subscribers
  • Fixed an issue in management over REST where the services list returns an HTTP 500 error when the cluster has no services.
  • Fixed an issue where NullPointerException could occur in the index rebuild thread during failover, and lead to worker threads hanging waiting for index ready.
  • Added cache configuration element cache-values which allows a view-scheme to be configured to cache both keys and values (the default), or only keys.
  • Fixed an issue where a topic subscriber with only a single channel allocated will not stop polling even when the channel is empty.
  • Added example showing how to monitor StatusHA for rolling redeploys
  • Fixed an issue where the Java gRPC client will hang when getting caches if no connection to the server can be made.
  • Fixed an issue with cluster start up when a unicast-listener/discovery-address is specified in multicast mode.
  • Fixed an issue where if an initial event is not received for a partition DurableEvents will miss events that occurred while being disconnected.
  • Fixed an issue in persistence to ensure errors are caught in a rare and unexpected part of the recovery protocol.
  • Fixed an issue where the partitioned cache service thread could hit the guardian timeout while processing deferred events during partition recovery or failover.
  • Fixed an issue where CohQL persistence commands may throw an IllegalArgumentException.
  • Improved startup times in OSs that exhibit slow times in deriving the network interface associated to an IP address.
  • Improved the partition transfer process to work more efficiently while the service is under heavy load.
  • CVE-2021-2344 Fixed an issue where Java array deserialization may be used for a denial of service attack using malicious bytecode sent via WLS T3 and IIOP protocols.
  • CVE-2021-2371 Fixed an issue where Java array deserialization using ExternalizableHelper may be used for a denial of service attack using malicious bytecode sent via WLS T3 and IIOP protocols.
  • Fixed an issue where cluster join may automatically fallback to multicast if all of the configured WKA addresses are unresolvable.
  • Added ILIKE operator to CohQL; the case-insensitive equivalent of LIKE
  • CVE-2021-2428 Fixed Java serialization of the Coherence JCache CoherenceEntryProcessorResult class to prevent unintended usage of this class.
  • Fixed an issue with serializing classes annotated with PortableType that have not specified an ID.
  • Enhanced Coherence metrics to allow metric names to be published without a vendor: prefix. Removing the vendor: prefix is controlled by setting the system property coherence.metrics.legacy.names=false
  • Moved Coherence metrics functionality into coherence.jar, removing the requirement to use coherence-metrics.jar and removing the requirement for additional third-party dependencies when enabling Coherence metrics. 
  • Enhanced CohQL to handle the case where value() is used in where clauses.
  • Fixed a thread safety issue that can disrupt a joining member from joining the service in very rare cases.
  • Fixed an issue when there are multiple cache factories in a JVM, the cache factory created the proxy service may not be the one used by it, resulting in error finding the caches.
  • Fixed an issue where CacheStore.eraseAll() had no path to be called on NamedCache bulk operations such as invokeAll(). With this fix, CacheStore.eraseAll() is called when NamedCache.invokeAll() is invoked with a "remove" processor or when NamedCache.keySet().removeAll() or NamedCache.entrySet().removeAll() are called.
  • Reduced CPU utilization in sending backup messages
  • Bumped the version of Jetty dependency to 9.4.43.v20210629.
  • Fixed an issue where changing the Coherence log level using the Node Mbean had no effect.

Coherence CE v14.1.1.0.7

20 Oct 17:43
Compare
Choose a tag to compare

This is patch 7 of the Coherence CE v14.1.1 release.

Fixed Issues

  • Fixed an issue where stream collect on NamedCache collections (keySet, values, entrySet) throws UnsupportedOperationException.
  • Fixed a NullPointerException that occurred when generating a log message after failing to start management over REST, which resulted in the misleading, and non-helpful, error log message: "Failure to initialize JMX remote management caused by: NullPointerException".
  • Fixed an issue where expired entries are not evicted for ReadWriteBackingMap.
  • Fixed an issue that class ConverterComparator is serializable, which is not required.
  • Added additional logging when metrics registration fails.
  • Fixed an issue in management over REST where the services list returns an HTTP 500 error when the cluster has no services.
  • Fixed an issue where NullPointerException could occur in the index rebuild thread during failover, and lead to worker threads hanging waiting for index ready.
  • Added cache configuration element cache-values which allows a view-scheme to be configured to cache both keys and values (the default), or only keys.
  • Fixed an issue with cluster start up when a unicast-listener/discovery-address is specified in multicast mode.
  • Fixed an issue in persistence to ensure errors are caught in a rare and unexpected part of the recovery protocol.
  • Fixed an issue where session invalidation might lead to "no usable session model error" and stuck threads.
  • Fixed an issue where CohQL persistence commands may throw an IllegalArgumentException.
  • Improved the partition transfer process to work more efficiently while the service is under heavy load.

Coherence CE v21.06.2

22 Sep 18:13
Compare
Choose a tag to compare

This is Patch 2 of the Coherence CE v21.06 release.

Fixed Issues

  • Improved the Coherence.start() method, released as part of the Bootstrap API in CE version 20.12, to return a CompletableFuture<Coherence> instead of a CompletableFuture<Void>. This allows a more fluent API when using static factory methods to create and start a Coherence instance. This is a breaking change in applications that specifically assign the result of calls to Coherence.start() to a CompletableFuture<Void> variable.
  • Fixed a NullPointerException that occurred when generating a log message after failing to start management over REST, which resulted in the misleading, and non-helpful, error log message: "Failure to initialize JMX remote management caused by:NullPointerException".
  • Fixed an issue where expired entries are not evicted for ReadWriteBackingMap.
  • Fixed an issue that class ConverterComparator is serializable, which is not required.
  • Fixed issue where the management over REST Endpoint to list services in a cluster returns a HTTP 500 error when the cluster has no services
  • Fixed an issue where NullPointerException could occur in the index rebuild thread during failover, and lead to worker threads hanging waiting for index ready.
  • Fixed an issue with cluster start up when a unicast-listener/discovery-address is specified in multicast mode.
  • Fixed an issue where CohQL Persistence commands may throw a IllegalArgumentException.
  • Fixed a memory leak that occurred when creating and releasing topic publishers and subscribers
  • Added example showing how to monitor StatusHA for rolling redeploys
  • Fixed an issue where if an initial event is not received for a partition DurableEvents will miss events that occurred while being disconnected.
  • Improved Coherence metrics by removing external dependencies and relocating the code into the core coherence.jar, thereby removing the need for projects to depend on coherence-metrics, which is now an empty jar.
  • Improved the reallocation of topic subscriber channels by triggering this immediately on member departure instead of waiting for departed subscribers to timeout.
  • Improved and hardened topic subscriber channel allocation notification.
  • Improved the algorithm used to distribute channels to subscribers in a topic subscriber group to produce a more even distribution.
  • Enhanced Coherence metrics to allow metric names to be published without a vendor: prefix which is controlled by setting the system property coherence.metrics.legacy.names=false.

Coherence CE v21.06.1

30 Jul 21:46
Compare
Choose a tag to compare

This is Patch 1 of the Coherence CE v21.06 release.

Fixed Issues

  • Fixed an issue with serializing classes annotated with PortableType that have not specified an ID.
  • Fixed an issue where an ArrayIndexOutOfBoundsException could be thrown when using the PortableType annotation.
  • Fixed an issue in persistence to ensure errors are caught in a rare and unexpected part of the recovery protocol.
  • Fixed an issue where a topic subscriber with only a single channel allocated will not stop polling even when the channel is empty.
  • Fixed an issue where the Java gRPC client will hang when getting caches if no connection to the server can be made.
  • CVE-2021-2428 Fixed Java serialization of the Coherence JCache CoherenceEntryProcessorResult class to prevent unintended usage of this class.
  • CVE-2021-2344 Fixed an issue where Java array deserialization may be used for a denial of service attack using malicious bytecode sent via WLS T3 and IIOP protocols.
  • CVE-2021-2371 Fixed an issue where Java array deserialization using ExternalizableHelper may be used for a denial of service attack using malicious bytecode sent via WLS T3 and IIOP protocols.

Coherence CE v14.1.1.0.6

26 Jul 22:57
Compare
Choose a tag to compare

This is patch 6 of the Coherence CE v14.1.1 release.

Fixed Issues

  • Fixed an issue where the partitioned cache service thread could hit the guardian timeout while processing deferred events during partition recovery or failover.
  • Fixed an issue where incremental cache eviction could temporarily hold references to evicted cache keys.
  • Fixed an issue where the recovery of a split-brain condition could be delayed after network connectivity is restored.
  • CVE-2021-2428 Fixed Java serialization of the Coherence JCache CoherenceEntryProcessorResult class to prevent unintended usage of this class.
  • Enhanced CohQL to print out the Exception call stack when trace is turned on.
  • CVE-2021-2344 Fixed an issue where Java array deserialization may be used for a denial of service attack using malicious bytecode sent via WLS T3 and IIOP protocols.
  • CVE-2021-2371 Fixed an issue where Java array deserialization using ExternalizableHelper may be used for a denial of service attack using malicious bytecode sent via WLS T3 and IIOP protocols.
  • Fixed an issue where cluster join may automatically fallback to multicast if all of the configured WKA addresses are unresolvable.

Coherence CE v21.06

30 Jun 18:51
Compare
Choose a tag to compare

This is the official Coherence CE v21.06 release including some significant new features.

New Features in 21.06:

  • Repository API
    • A higher-level, DDD-friendly way to access data managed in Coherence.
  • Topics Improvements
    • Some significant changes to the Coherence Topics feature to support explicit client acknowledgements.
  • Durable Events
    • Never lose an event with Durable Events allowing clients to keep track of event versions and request replay of events.
  • Partition Events Logging
    • For those curious in understanding how long a Coherence partition was blocked for due to transfer, restore from backup, or any other reason, please read the feature documentation.
  • NonBlocking CacheStore
    • Trivially integrate with data sources that provide non-blocking APIs with this new CacheStore variant.
  • Improved config macro paramters
    • An extension to Coherence macro parameters to allow manipulation of the parameter.

Bugs fixed since Coherence CE 20.12:

  • Fixed an issue where incremental cache eviction could temporarily hold references to evicted cache keys.
  • Improved NearCache getOrDefault and computeIfAbsent to utilize the front map.
  • Fixed an issue where the partitioned cache service thread could hit the guardian timeout while processing deferred events during partition recovery or failover.
  • Fixed an issue where the recovery of a split-brain condition could be delayed after network connectivity is restored.
  • Enhanced CohQL to print out the Exception call stack when trace is turned on.
  • Fixed an issue where the metrics for some persistence attributes have unexpected large values.
  • Reverted a method signature change to ConfigurableCacheMap.evict(oKey).
  • Fixed an issue where a guardian timeout could occur on the service thread during partition recovery.
  • Fixed an issue with Management over REST and JMX where queries over all members of a large cluster may fail with an InstanceNotFoundException if a cluster member is shut down in middle of the query computation.
  • Fixed an issue in which PortableTypeGenerator was not generating the relevant code for RawDate and RawDateTime.
  • Fixed an issue where a guardian timeout could occur while creating a snapshot when active persistence is enabled.
  • Fixed an issue with view schemes if they become disconnected from the source causing deserialization errors.
  • Fixed an issue where an AssertionException could be thrown if the partition backup count is greater than 1.
  • Fixed an issue where the metric metadata value retrieved from the Coherence metrics endpoint when using Prometheus text format includes an additional space in the metric type name.
  • Fixed an issue where a deadlock could occur during partition backup transfers.
  • Fixed an issue where a persistence snapshot could contain stale cache data leading to a recovery error.
  • Fixed an issue where an AssertionException could be thrown by the PartitionSet.intersects method.
  • Fixed an issue where a service restart could throw a SecurityException with the message "No security token available" when the security framework is enabled.
  • Fixed an issue where a persistence snapshot recovery operation could hang indefinitely.
  • Fixed an issue where a heavy key listener can be overridden by a lite listener from the same member.
  • Fixed an issue where a NullPointerException could be thrown during concurrent query with BetweenFilter and an entry remove operation.
  • Fixed an issue where a NullPointerException could be thrown if the interface for multicast-listener is incorrectly specified.
  • Fixed an issue where a ClassNotFoundException would be thrown in some situations if javax.inject module is not on the class path.
  • Fixed an issue where archiveSnapshot could throw an ArrayIndexOutOfBoundsException if the partition count is less than the storage enabled member size.
  • Added service name and nodeId to the result of the Cache MBean query. In addition, you can now get the MBean type (type), cluster name (cluster), member name (member), and cache tier (tier) attributes from the Cache MBean query.
  • Fixed NamedTopic methods isDestroyed and isReleased to return true when appropriate.
  • Fixed an issue where a service could fail to start and join the cluster.
  • Excluded maven build artifacts from distributed library jars.
  • Fixed an issue where the PrimingListener optimization of NearCache in Coherence*Extend was broken.
  • Fixed an issue where DefaultCacheServer.shutdown() does not shut down the Coherence server gracefully.
  • Enhanced the default SSL HostnameVerifier to be able to verify wild-card Subject Alternate Names and to disable localhost matching by default. Matching of localhost can be enabled via a system property
  • Fixed a race condition between TransferEvent.ASSIGNED and pre-commit EntryEvents. Interceptors registered for TransferEvent.ASSIGNED should fully complete prior to any EntryEvents for the same partition.
  • Fixed an issue where a distributed service with active persistence may be terminated by an async write to an old persistent store.
  • CVE-2021-2277 Disabled validation during XML deserialization.
  • Fixed an issue where the bootstrap API can deadlock if the stop() method is called on a Coherence instance before start-up has completed.
  • Fixed an issue with the VisualVM Plugin where no error message was displayed when connecting to an invalid URL.
  • Improved ConverterCollections.getNamedCache to support generics and correctly implement methods putIfAbsent, remove, replace and merge. The return types were widened for some of the factory methods in ConverterCollections to be interface and not implementation based.
  • Fixed an issue where loaded entry from CacheStore has inconsistent entry-event type and synthetic flag.
  • Added new attributes starting with Client to ConnectionMBean to identify a Connection to its client when a loadbalancer is between proxy and client. These attributes are mapped to metrics tags on Coherence.Connnection.* metric values.
  • Fixed an issue where cluster join may automatically fallback to multicast if all of the configured WKA addresses are unresolvable.

Coherence CE v20.12.2

10 May 23:10
Compare
Choose a tag to compare

This is Patch 2 of the Coherence CE v20.12 release.

Fixed Issues

  • Fixed an issue where a ClassNotFoundException would be thrown in some situations if javax.inject module is not on the class path.
  • Bumped the version for Jackson dependencies and included Jackson jar files.
  • Fixed an issue where javax.json was being shaded into the coherence jar.
  • Fixed an issue where archiveSnapshot could throw an ArrayIndexOutOfBoundsException if the partition count is less than the storage enabled member size.
  • Added service name and nodeId to the result of the Cache MBean query. In addition, user can also get the MBean type (type), cluster name (cluster), member name (member), and cache tier (tier) attributes from the Cache MBean query.
  • Fixed an issue where a NullPointerException could be thrown during concurrent query with BetweenFilter and an entry remove operation.
  • Fixed NamedTopic methods isDestroyed andFixed an issue where a NullPointerException could be thrown if the interface for multicast-listener is incorrectly specified. isReleased to return true when appropriate.
  • Fixed an issue where a heavy key listener can be overridden by a lite listener from the same member.
  • Fixed an issue where an AssertionException could be thrown by the PartitionSet.intersects method.
  • Fixed an issue where a deadlock could occur during partition backup transfers.
  • Fixed an issue where a persistence snapshot could contain stale cache data leading to a recovery error.
  • Fixed an issue where a persistence snapshot recovery operation could hang indefinitely.
  • Fixed an issue with view schemes if they become disconnected from the source causing deserialization errors.
  • Fixed an issue with Management over REST and JMX where queries over all members of a large cluster may fail with an InstanceNotFoundException if a cluster member is shut down in middle of the query computation.
  • Fixed an issue where an AssertionException could be thrown if the partition backup count is greater than 1.
  • Fixed a bug in the PortableTypeGenerator where Coherence POF Raw types were not supported.
  • Fixed SessionNamedTopic close and destroy handling to resolve memory leak and IllegalStateException thrown if closed after session already closed.
  • Fixed an issue where a guardian timeout could occur on the service thread during partition recovery.
  • Fixed an issue where a guardian timeout could occur while creating a snapshot when active persistence is enabled.
  • Fixed an issue where the metrics for some persistence attributes have unexpected large values.