Releases: oracle/coherence
Releases · oracle/coherence
Coherence CE v14.1.1.0.7
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
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 aCompletableFuture<Coherence>
instead of aCompletableFuture<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 toCoherence.start()
to aCompletableFuture<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 oncoherence-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 propertycoherence.metrics.legacy.names=false
.
Coherence CE v21.06.1
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
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
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
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.
Coherence CE v14.1.1.0.5
This is patch 5 of the Coherence CE v14.1.1 release.
Fixed Issues
- Fixed SessionNamedTopic close and destroy handling to resolve memory leak and IllegalStateException thrown if closed after session already closed.
- 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 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 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.
- Messages will no longer be deserialized if the originating member is no longer a member of the cluster at the time of processing.
Coherence CE v21.06 Milestone 2
This is Milestone 2 pre-release of the Coherence CE v21.06 release.
New Features
Breaking Changes
The following breaking changes were made to the Repository API introduced in M1 release, in order to improve and polish the API before the final release:
- Repository API:
findById
method has been renamed toget
for consistency - Repository API:
findAll
methods have been renamed togetAll
for consistency - Repository API:
findAll
methods that accept sort order as an argument have been renamed togetAllOrderedBy
to avoid collision withgetAll
methods that are used to extract values or fragments from the entities within the repository
Bug Fixes
- Fixed an issue where
ConfigurableCacheMap.evict(oKey)
failed with missing method exception. - Fixed an issue where distributed service could get guardian timeout during partition recovering.
- Fix Managment over REST HTTP request/JMX query over all members of a large cluster from failing with an
InstanceNotFoundException
if a cluster member is shutdown in middle of computation. - Fixed an issue with view schemes if they become disconnected from the source causing deserialization errors.
- Fixed an issue where
AssertionException
could be thrown if partition backup count is greater than 1. - Fixed an issue where the value of a metric metadata retrieved from the Coherence metrics endpoint when using Prometheus text format included an additional space in the metric type name.
- Fixed an issue where a deadlock could occur during service thread does partition backup transfers.
- Fixed an issue where snapshot could contain stale cache data and leads to recovery error.
- Fixed an issue where an
AssertionException
could be thrown by thePartitionSet.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 recover snapshot operation could be 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 withBetweenFilter
and an entry remove operation. - Fixed an issue where a
NullPointerException
could be thrown if the interface for multicast-listener is incorrectly specified. - Fixed
NamedTopic
methodsisDestroyed
andisReleased
to returntrue
when appropriate. - Fixed an issue where a
ClassNotFoundException
would be thrown in some situations ifjavax.inject
module is not on the class path. - Fixed an issue where
archiveSnapshot
could throwArrayIndexOutOfBoundsException
if partition count is less than storage enabled member size. - Fixed an issue where a service could fail to start and join the cluster.
- Fixed an issue where
PrimingListener
optimization ofNearCache
in Coherence*Extend was broken. - Fixed an issue where
DefaultCacheServer.shutdown
does not shutdown coherence server gracefully. - Fixed a race condition between
TransferEvent.ASSIGNED
and pre-commitEntryEvent
s. Interceptors registered forTransferEvent.ASSIGNED
should fully complete prior to anyEntryEvent
s for the same partition. - Fixed an issue where distributed service with active persistence was terminated by an async write to an old persistent store.
- Fixed an issue where the Bootstrap API can deadlock if the
stop()
method is called on aCoherence
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.
- Fixed an issue where loaded entry from
CacheStore
has inconsistent entry-event type and synthetic flag.
Improvements
- Added support for
Raw*
types toPortableTypeGenerator
. - Improved support for macro parameter expressions in cache configuration file.
- Excluded Maven build artifacts from distributed library jars.
- 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. - Improved
ConverterCollections.getNamedCache
to support generics and correctly implement methodsputIfAbsent
,remove
,replace
andmerge
. The return types was widened for some of the factory methods inConverterCollections
to be interface and not implementation based. - 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. - Added new attributes starting with Client to
ConnectionMBean
to identify a connection to its client when a load balancer is between the proxy and the client. These attributes are mapped to metrics tags onCoherence.Connnection.* metric
values. - Added support for CONCAT function to CohQL.
- Added support for case insensitive CohQL function names.
- Added asynchronous execution support to CohQL statements.
- Improved index support and interoperability between static and dynamic lambdas when method references are used.
- Removed incorrectly shaded
javax.json
module fromcoherence.jar
. - Simplified TLS configuration for Coherence gRPC proxies and clients.
Coherence CE v14.1.1.0.4
This is patch 4 of the Coherence CE v14.1.1 release.
Fixed Issues
- Fixed an issue with the JVisualVM plugin where columns on the Service tab would not display data correctly when connecting over REST.
- Fixed an issue where an AssertionException could be thrown by the PartitionSet.intersects method.
- Optimized the JVisualVM Plugin to more efficiently retrieve node storage data over REST.
- 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.
- Updated the JVisualVM Plugin to take advantage of optimizations in management over REST.
- Fixed an issue where a NullPointerException could be thrown if the interface for multicast-listener is incorrectly specified.
- Fixed an issue where archiveSnapshot could throw an ArrayIndexOutOfBoundsException if the partition count is less than the storage enabled member size.
- Bumped the version for Jackson dependencies and included Jackson jar files.
- 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.
- Removed shading of java.json packages from coherence.jar
- Updated the JVisualVM Plugin to more efficiently retrieve data after initial refresh.
- Fixed an issue with the JVisualVM Plugin where the Idle Threads and Task Avg in the Services tab were not being shown correctly.
- 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.
- 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 with the VisualVM Plugin where no error message was displayed when connecting to an invalid URL.
- Fixed an issue where a service could repeatedly fail to recover a partition if persistence is using local disk storage.
- Improved the configuration of the hostname-verifier with the introduction of an "action" element with permitted values of "allow" or "default"; see the XSD for a thorough description.
- Added a system property to the JVisualVM Plugin to enable debugging of HTTP requests when connected via REST
- Fixed an issue with the VisualVM Plugin where cache memory bytes could show incorrectly in large clusters.
- Fixed an issue where CacheLifecycleEvents are not emitted for existing caches.
- Fixed an issue where CacheLifecycleEvents are not emitted on storage-disabled nodes.
- Fixed an issue where a cluster member may run into a StackOverflowError and shut down when processing a malformed deeply nested filter.
- 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 partition redistribution could be stuck after a snapshot recovery.
- Fixed a performance issue when running the VisualVM Plugin over REST against a large cluster.
- Fixed an issue where an IllegalStateException is thrown when a Coherence client runs inside an OSB Java callout utility.
- 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.
Coherence CE v21.06 Milestone 1
This is Milestone 1 pre-release of the Coherence CE v21.06 release.
New Features
Breaking Changes
- None
Bug Fixes
- Fixed an issue where a
ClassNotFoundException
would be thrown in some situations ifjavax.inject
module is not on the class path. - Fixed an issue where
archiveSnapshot
could throwArrayIndexOutOfBoundsException
if partition count is less than storage enabled member size. - Fixed an issue where a service could fail to start and join the cluster.
- Fixed an issue where
PrimingListener
optimization ofNearCache
in Coherence*Extend was broken. - Fixed an issue where
DefaultCacheServer.shutdown
does not shutdown coherence server gracefully. - Fixed a race condition between
TransferEvent.ASSIGNED
and pre-commitEntryEvent
s. Interceptors registered forTransferEvent.ASSIGNED
should fully complete prior to anyEntryEvent
s for the same partition. - Fixed an issue where distributed service with active persistence was terminated by an async write to an old persistent store.
- Fixed an issue where the Bootstrap API can deadlock if the
stop()
method is called on aCoherence
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.
- Fixed an issue where loaded entry from
CacheStore
has inconsistent entry-event type and synthetic flag.
Improvements
- Excluded Maven build artifacts from distributed library jars.
- 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. - Improved
ConverterCollections.getNamedCache
to support generics and correctly implement methodsputIfAbsent
,remove
,replace
andmerge
. The return types was widened for some of the factory methods inConverterCollections
to be interface and not implementation based. - Added new attributes starting with Client to
ConnectionMBean
to identify a connection to its client when a load balancer is between the proxy and the client. These attributes are mapped to metrics tags onCoherence.Connnection.* metric
values. - Added support for CONCAT function to CohQL.
- Added support for case insensitive CohQL function names.
- Added asynchronous execution support to CohQL statements.
- Improved index support and interoperability between static and dynamic lambdas when method references are used.
- Removed incorrectly shaded
javax.json
module fromcoherence.jar
. - Simplified TLS configuration for Coherence gRPC proxies and clients.