Releases: oracle/coherence
Releases · oracle/coherence
Coherence CE v22.06.1
This is patch 1 of the Coherence CE v22.06 release.
Bugs fixed since Coherence CE 22.06
COH-25961
Fixed an issue whereScriptAggregator
,ScriptFilter
andScriptProcessor
could not be serialized using JSON.COH-25928
Fixed an issue where Extend clientMEMBER_LEFT
andMEMBER_JOINED
events could be sent to cluster members running an older incompatible Coherence version.COH-25906
Removed support for Log4j version 1.x.COH-25884
Fixed an issue where a CoherenceLifecycleListener
discovered using theServiceLoader
can be registered twice and hence receive events multiple times.COH-25863
Fixed a rare issue where a Coherence cache server may be inadvertently restarted when attempting to do an asynchronous shutdown of a registered executor.COH-25840
Fixed an issue with persistent backups where a deadlock situation may occur during partition re-distribution.COH-25830
Fixed an issue whereTcpRing.close.keys()
may throw an unhandledClosedSelectorException
which can cause the Cluster service to terminate unexpectedly.COH-25821
Fixed an issue with the executor service where task properties could be set after a task had completed.COH-25637
CVE-2022-21570
Coherence CE v14.1.1.0.10
This is patch 10 of the Coherence CE v14.1.1 release.
Bugs fixed since Coherence CE 14.1.1.0.9
COH-25637
CVE-2022-21570COH-25611
Changed the logging level to 9 for log messages pertaining to dynamic thread pool sizing.COH-25523
Fixed an issue where skipping null String references within a uniform map would raise an exception.COH-25445
Fix for Jackson-Databind CVE-2020-36518.COH-25371
Fixed an issue where cluster-quorum-policy attributes could not be overridden with a system-property.COH-25350
Fixed an issue where aMessageBus
connection with heartbeats enabled may throw anOutOfMemoryError
when reestablishing a dropped connection.COH-25318
Added system propertycoherence.discovery.address
for providing the discovery address.COH-25311
Fixed an issue where the underlying exception is not properly logged when theSimpleServiceMonitor
fails to restart services.COH-25263
Added a new report (reports/report-cache-storage.xml
) forStorageManager
MBean attributes.COH-25261
Fixed an issue that would incorrectly close the Extend client channel upon service exit leading to an error being raised about theNamedCache
being explicitly destroyed.COH-25238
Added a new report (reports/report-proxy-connections.xml
) for Coherence*Extend connection information.COH-25065
Fixed an issue where aPartitionedCache
service could be terminated due to an unhandledNullPointerException
inInflatableMap
.
Coherence CE v22.06
This is the official Coherence CE v22.06 release.
New Features in 22.06:
- Java Modules Support - You can now run Coherence using Java modules.
- Topics Improvements
- A number of durability and stability improvements have been applied to make topics more stable during fail-over.
- Topics now guarantee at least once delivery, where as in previous releases this was not the case. A subscriber that is part of a group can commit a processed message to indicate that processing is complete and it should not be redelivered on fail-over.
- Subscribers that are part of a subscriber group are now fairly allocated topic channels to subscribe from; only a single subscriber receives messages from an allocated channel.
- Subscribers will be timed-out after a configurable period of inactivity (or failure to heartbeat) causing their channels to be reallocated to remaining subscribers in the same group.
- Added API methods to determine the number of unreceived elements for a
NamedTopic
subscriber or subscriber group.
- Caffeine - Coherence now adds a Caffeine backing map implementation, enabling you to use Caffeine wherever the standard Coherence local cache can be used.
- Cache Configuration Override - Similar to the Coherence Cluster override, you can now specify a cache configuration override to override elements of existing cache configuration with new elements at runtime.
BigDecimal
-related aggregators - These aggregators now support the ability to setBigDecimal
properties such asscale
,roundingMode
,stripTrailingZeros
, andmathContext
(where applicable) for the final result.- Persistent Backups - You can now enable and configure persistent backups which stores backup partitions on a disk, as additional copies of persisted primary one.
- POF Configuration Discovery - It is now possible to make POF configuration files discoverable at runtime by the
ConfigurablePofContext
class instead of needing to put them inside<include>
elements. - Support for
MEMBER_JOINED
andMEMBER_LEFT
events for Extend clients - Extend proxy now sendsMEMBER_JOINED
andMEMBER_LEFT
events to all active services on the proxy when a remote client joins and leaves. This event enables management of a service’s server side resources being retained per remote client. If aMemberListener
is registered on a service and the environment has both remote and cluster member access to a service, theMemberListener
may need to account for remote clientMemberEvent
(s). - SSL Improvements - Various SSL improvements that enable more flexible configuration and allow customizations through extensions. These include using private key and certificate files, using custom keystore, private key and certificate loaders, which can also be refreshable.
Locks
andSemaphores
can now be accessed via Coherence*Extend Java clients.- Health Check API - A new health check API to enable application code to determine the health of the local Coherence member. Management over REST has also been updated to support the health check API.
- New Reports - Executor, View, Storage, and Proxy Connections.
Bugs fixed since Coherence CE 21.12:
COH-25733
Fixed an issue where the cluster service thread may be blocked on a member that is assuming the JMX cluster member role.COH-25703
Fixed an issue with Coherence docker image where the system property,coherence.serializer
, does not take effect when used to specify a default serializer.COH-25653
Added the ability to show the Coherence version without starting a cluster viajava -jar coherence.jar --version
.COH-25615
Fixed an issue where a lock on an invalidated session might not be released, causing other threads waiting on the lock to be stuck indefinitely, when a session is invalidated and replaced by a new one.COH-25611
Changed the logging level to 9 for log messages pertaining to dynamic thread pool sizing.COH-25544
Fixed an issue where anEntryProcessorEvent
EXECUTED
event raised by aninvokeAll
may incorrectly contain an empty entry set.COH-25523
Fixed an issue where skippingnull
String references within a uniform map would raise an exception.COH-25445
Fix for Jackson-Databind CVE-2020-36518.COH-25371
Fixed an issue where cluster-quorum-policy attributes could not be overridden with a system-property.COH-25350
Fixed an issue where aMessageBus
connection with heartbeats enabled may throw anOutOfMemoryError
when reestablishing a dropped connection.COH-25343
Added a REST endpoint to theClusterMemberResource
to return the response of thereportEnvironment
MBean operation of theClusterNodeMBean
, providing details about the Java environment and system properties.COH-25318
Added system propertycoherence.discovery.address
for providing the discovery address.COH-25309
Fixed an issue where thehigh-units
setting for atransactional-scheme
was being ignored.COH-25261
Fixed an issue that would incorrectly close the extend client channel upon service exit leading to an error being raised about theNamedCache
being explicitly destroyed.COH-25103
Fixed an issue where aStackOverflowError
could occur when skippingnull
String references of a uniform collection during POF deserialization.COH-25065
Fixed an issue where aPartitionedCache
service could be terminated due to an unhandledNullPointerException
inInflatableMap
.COH-25061
Fixed an issue where the CoherenceJsonSerializer
could not serialize a String made up of a single back-slash.COH-25056
Fixed an issue where a SEGV core dump could occur innio.DirectByteBuffer
operations when releasing anAsyncBinaryStore
backed by an external file.COH-25049
Updated the Netty dependency version to 4.1.77.Final.COH-24993
Fixed an issue in topics where seeking to the tail for a subscriber did not actually move the subscriber's position.COH-24968
Fixed an issue where an *Extend client may incorrectly treat a cache as being explicitly destroyed in some rare scenarios.COH-24945
Fixed an issue inNamedTopic
Subscriber where aLockContentionException
could be thrown when many subscribers are being created and polling for messages at the same time.COH-24941
Fixed an issue whereXmlHelper.overrideElement()
may not maintain the order of elements in the resulting XML configuration.COH-24927
AddedCacheEvent.isExpired()
. OnENTRY_DELETED
,isExpired()
will return true if the entry was evicted due to expiry.COH-24891
AddedServiceMBean
attributeStatusHACode
for metrics support.COH-24890
Added the ability to specify a domain name suffix for Coherence MBeans by setting thecoherence.management-config.domain-name-suffix
in the operational override configuration.COH-24823
Fixed an issue where the Coherence Reporter proxy reports do not account for members joining and leaving the cluster.COH-24799
Removed the shaded MVEL2 library from coherence-rest.jar and switched to using built in Coherence classes for Coherence REST query processing. MVEL can still be used for query processing if desired by adding the library (mvel2.jar
) to the class path.COH-24796
Fixed an issue where Management over REST queries could fail if non-Coherence MBeans exist with the same type field in theObjectName
, for example "type=Service
".COH-24773
Fixed an issue inNamedTopic
Subscriber where theCompletableFuture
returned from calls toSubscriber.receieve()
could fail to complete on an empty topic when the Subscriber was created with theCompleteOnEmpty
option was enabled.COH-24741
Allow custom namespace handlers to be used in the operational configuration file.COH-24722
Added support for using a password provider for the keystore password in theAccessController
.COH-24721
Fixed an issue withAccessController
wherekeystores
which support read access without a password could no longer be used without a password.COH-24697
Corrected theoperationId
in the Management over REST Swagger documen...
Coherence CE v21.12.4
This is Patch 4 of the Coherence CE v21.12 release.
Bugs fixed since Coherence CE 21.12.3:
- Fixed an issue where
cluster-quorum-policy
attributes could not be overridden with a system-property. - Fixed an issue where a
MessageBus
connection with heartbeats enabled may throw anOutOfMemoryError
when reestablishing a dropped connection. - Added the default system property,
coherence.discovery.address
, to allow user to provide the discovery address. - Added a new report,
reports/report-cache-storage.xml
, to report onStorageManager
MBean - Fixed an issue that would incorrectly close the Extend client channel upon service exit leading to an error being raised about the
NamedCache
being explicitly destroyed. As this could be a transitory issue, there is no need to terminate the channel. - Added a new report,
reports/report-proxy-connections.xml
, to display Coherence*Extend connection information - Fixed an issue where a
StackOverflowError
could occur when skipping null String references of a uniform collection during POF deserialization. - Fixed an issue where an Extend client may incorrectly treat a cache as being explicitly destroyed in some rare scenarios.
- Added
CacheEvent.isExpired()
. OnENTRY_DELETED
,isExpired()
will return true if the entry was evicted due to expiry. - Removed the shaded MVEL2 library from
coherence-rest.jar
and switched to using built in Coherence classes for Coherence REST query processing. MVEL can still be used for query processing if desired by adding the library (mvel2.jar
) to the classpath. - Removed identity token deserialization in
NameService
TcpAcceptor
processing. - Added JEP 290 support for
ExternalizableLite
.
Coherence CE v14.1.1.0.9
This is patch 9 of the Coherence CE v14.1.1 release.
Bugs fixed since Coherence CE 14.1.1.0.8
- Fixed an issue where a
StackOverflowError
could occur when skipping null String references of a uniform collection during POF deserialization. - Fixed an issue where
XmlHelper.overrideElement()
may not maintain the order of elements in the resulting XML configuration. - Added
CacheEvent.isExpired()
. OnENTRY_DELETED
,isExpired()
will return true if the entry was evicted due to expiry. - Added
ServiceMBean
attributeStatusHACode
for metrics support. - Added the ability to specify a domain name suffix for Coherence MBeans by setting the
coherence.management-config.domain-name-suffix
in the operational override configuration. - Fixed an issue where the Coherence Reporter proxy reports do not account for members joining and leaving the cluster.
- Removed the shaded MVEL2 library from
coherence-rest.jar
and switched to using built in Coherence classes for Coherence REST query processing. MVEL can still be used for query processing if desired by adding the library (mvel2.jar
) to the classpath. - Fixed an issue where Management over REST queries could fail if non-Coherence MBeans exist with the same type field in the
ObjectName
, for example"type=Service"
. - Added support for using a password provider for the keystore password in
AccessController
. - Fixed an issue with
AccessController
where keystores which support read access without a password could no longer be used without a password. - Corrected the
operationId
in the Management over REST Swagger documentation for the servicestop
operation. - Fixed an issue where
NotSerializableException
may be thrown when usinginvokeAll()
on a partitioned cache with persistence configured in active mode. - Corrected the default value returned by the
ClusterNodeMBean
'stracingSamplingRatio
when tracing dependencies aren't present on the class path. - Removed the optional Log4j and SLF4J dependences from the Coherence pom file.
- Fixed an issue where a SEGV core dump could occur in
nio.DirectByteBuffer
operations when releasing anAsyncBinaryStore
backed by an external file. - Updated the Management over REST Swagger documentation to call out certain features that are only available in Grid Edition.
- Updated the Netty dependency version to 4.1.73.
- Enhanced Coherence REST server logging to assist development time debugging by logging handled exceptions for a REST HTTP Response of
BAD_REQUEST
(status 400) at log level 6 or higher. - Removed identity token deserialization in
NameService
TcpAcceptor
processing. - Added JEP 290 support for
ExternalizableLite
.
Coherence CE v21.12.3
This is Patch 3 of the Coherence CE v21.12 release.
Bugs fixed since Coherence CE 21.12.2:
- Fixed an issue where
NotSerializableException
may be thrown when usinginvokeAll()
on a partitioned cache with persistence configured in active mode. - Fixed an issue where
XmlHelper.overrideElement()
may not maintain the order of elements in the resulting XML configuration. - Fixed an issue in the
NamedTopic
subscriber where aLockContentionException
could be thrown when many subscribers are being created and polling for messages at the same time. - Fixed an issue in topics where seeking to the tail for a subscriber did not actually move the subscriber’s position.
- Added ability to specify a descriptive MBean domain name suffix to replace the generated domain name
Coherence@NNN
when a domain name conflict is detected due to multiple clusters running in same JVM. Configuremanagment-config.domain-name-suffix
to replace the generated number component suffix,NNN
. - Fixed an issue where the Coherence
JsonSerializer
could not serialize aString
made up of a single backslash. - Fixed an issue where the Coherence Reporter’s proxy reports do not account for members joining and leaving the cluster.
- Updated the Netty dependency version to 4.1.73.
Coherence CE v21.12.2
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
attributeStatusHACode
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
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 theCompletableFuture
returned from calls toSubscriber.receieve()
could fail to complete on an empty topic when theSubscriber
was created with theCompleteOnEmpty
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
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
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.
- Distributed implementations of
- 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.
- Allow the redundant copies to be used for reads (
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 optionFailOnFull.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 adiscovery-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 aCompletableFuture<Coherence>
instead of aCompletableFuture<Void>
. This allows a more fluent API when using static factory methods to create and start aCoherence
instance. This is a breaking change in applications that specifically assign the result of calls toCoherence.start()
to aCompletableFuture<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
onNamedCache
collections (keySet
,values
,entrySet
) throwsUnsupportedOperationException
. - 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 ofLIKE
- 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 propertycoherence.metrics.legacy.names=false
- Moved Coherence metrics functionality into
coherence.jar
, removing the requirement to usecoherence-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 onNamedCache
bulk operations such asinvokeAll()
. With this fix,CacheStore.eraseAll()
is called whenNamedCache.invokeAll()
is invoked with a "remove" processor or whenNamedCache.keySet().removeAll()
orNamedCache.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.