4 Bugs Fixed and Enhancements in this Release
Learn about the bugs fixed and enhancements in this release.
This chapter includes the following section:
Oracle Coherence for Java
New features, improvements, and bug fixes added to Oracle Coherence for Java components.
Enhancements and Fixes for 14.1.1.2206
- Removed support for Log4j version 1.x.
- Fixed an issue where a Coherence
LifecycleListenerdiscovered usingServiceLoadercan be registered twice and hence received events multiple times. - Fixed an issue where
TcpRing.close.keys()may throw an unhandledClosedSelectorExceptionwhich can cause theClusterservice to terminate unexpectedly. - Added support for scale, stripping of trailing zeros,
MathContext, and rounding mode to theBigDecimalaggregators. - Fixed an issue with Coherence docker image where the system property,
coherence.serializer, does not take effect when used to specify a default serializer. - Added functionality to allow the list of included POF configuration files to be
discoverable at runtime using Java
ServiceLoader. - Added the ability to show the Coherence version without starting a cluster using
java -jar coherence.jar --version. - Fixed an issue where the cluster service thread may be blocked on a member that is assuming the JMX cluster member role.
- Fixed an issue where catching an entry processor event of type
EXECUTEDdue to a call toinvokeAllwould pass an empty entry set event if at least one entry was successfully processed. - Added a REST endpoint to
ClusterMemberResourceto return the response of thereportEnvironmentMBean operation of theClusterNodeMBean, providing details about the Java environment and system properties. - Fixed an issue where the Coherence
JsonSerializercould not serialize a string made up of a single backslash. - Fixed an issue in Topics where seeking to the tail for a subscriber did not actually move the subscriber's position.
- Fixed an issue in
NamedTopic Subscriberwhere aLockContentionExceptioncould be thrown when many subscribers are being created and polling for messages at the same time. - Fixed an issue in
SubscriberTopic whereCompletableFuturereturned from calls toSubscriber.receieve()could fail to complete on an empty topic when theSubscriberwas created with theCompleteOnEmptyoption enabled. - Enabled the use of custom namespace handlers in the operational configuration file.
- Fixed an issue when there are multiple cache factories in a JVM; the cache factory that created the proxy service may not be the one used by it, resulting in error finding the caches.
- Fixed an issue where a
PartitionedCacheservice may terminate due to an unhandledClassCastExceptioninPartitionedService$PartitionRecoverRequest$Poll.onResponse. - Fixed an issue where multiple Extend client sessions may be unable to access their caches created by different cache factories because the wrong cache factory and proxy were used on the server side.
- Fixed a thread safety issue that can disrupt a joining member from joining the service in very rare cases.
- Moved Coherence metrics functionality into the
coherence.jarfile, removing the requirement to usecoherence-metrics.jarand removing the requirement for additional third-party dependencies when enabling Coherence metrics. - Fixed an issue with serializing classes annotated with
PortableTypethat did not specify an ID. - Reduced the CPU utilization in sending backup messages.
- Changed the default for Java lambda serialization mode to
STATICfor Coherence production mode; See About Lambdas in a Distributed Environment to evaluate whether to alter your environment to work withSTATICmode or to explicitly configure lambda serialization to theDYNAMICmode. - Fixed an issue where
CacheStore.eraseAll()had no path to be called on theNamedCachebulk 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. - Fixed an issue in which
PortableTypeGeneratorwas not generating the relevant code forRawDateandRawDateTime. - Improved cache operations to use an interruptible lock so that operations can be interrupted after the specified timeout.
- Improved
NearCache getOrDefaultandcomputeIfAbsentto utilize the front map. - Removed the Coherence JVisualVM plug-in from distribution. Use the new Open
Source VisualVM plug-in from
https://github.com/oracle/coherence-visualvm. - Improved the ordering of startup messages in
DefaultCacheServerto show the list of services last. - Fixed an issue where the
ValueUpdaterinterface was not serializable and could cause certain lambda entry processors to fail to execute. - Fixed an issue in Coherence*Web where a
NullPointerExceptionmay be thrown when performing operations such asAbstractHttpSessionModel.setAttribute()on a session that is being invalidated. - Fixed an issue where loaded entry from
CacheStorehad inconsistententry-eventtype and thesyntheticflag. - Added the
reportEnvironmentoperation to theClusterNodeMBean to provide details about the Java environment and system properties. - Added default implementations to the
CacheLoaderandCacheStoreinterfaces forloadAll(),storeAll(), anderaseAll(). - Improved persistence to recover data in parallel within a member/process, in addition to in parallel across the cluster. This feature enables the cluster, and more importantly the associated data, to be made available as quickly as possible.
Note:
Fixes from release 14.1.1.0.1 through 14.1.1.0.10 are also included. These fixes are available to view in the README document in the 14.1.1.2206 Feature Pack patch.Enhancements and Fixes for 14.1.1.0
- Fixed an issue where links returned by Management over REST may have incorrectly URL encoded path separators.
- Fixed an issue where a
NullPointerExceptionmay be thrown when resubmitting asynchronous cache requests internally. - Added restricted reflection access to a small subset of core JDK classes.
- Fixed an issue where indexes are not recovered from persistence after a cluster restart.
- Reverted changes to
report-cache-effectiveness.xmldue a performance regression. - Fixed an issue where service statistics from management over REST
do not aggregate across all services. Queries such as
coherence/management/services;field=StatusHAnow return the correct result. - Updated Coherence REST examples to use Oracle JET instead of Bootstrap/AngularJS and jQuery.
- Fixed an issue that would prevent Coherence Metrics from initializing due to a ClassCastException.
- Fixed an issue where federation members may get stuck in the YIELDING state due to changes to cache entries, which expired before the changes were federated to destination participants.
- Fixed an issue where a
ConfigurableCacheFactoryis initialized in a WebLogic server even if Coherence is not enabled. - Fixed an issue where a ClusterService is initialized when
coherence-metrics.jaris added to the classpath. - Fixed an issue where the
getOrDefaultmethod ofInvocableMap(and consequentlyNamedCache) andAsyncNamedCachedid not conform to thejava.util.Mapcontract. The default value should only be returned when the key is not present in the cache. However, the default value was also being returned when the key was present and mapped to null. - Fixed an issue where the
AsynNamedCache.getAll()method did not conform to thecom.tangosol.net.cache.CacheMapcontract in that the returned Map contained entries for all of the requested keys instead of containing entries for only the requested keys that were present in the cache. - Fixed a typographical error in the management over REST API for
/management/coherence/cluster/members/{memberId}/platform/g1SurvivorSpace. - Fixed an issue with the Persistence examples to ensure MBean registration is complete before starting the example.
- Fixed an issue where a
NullPointerExceptionmay be thrown inreportLastOwnershipduring simultaneous shutdown. - Fixed an issue where federation destination members may use heap memory inefficiently for storing cache entries, resulting in larger heap sizes than origin members for the same amount of cache data.
- Fixed an issue where an
OutOfMemoryErrorcould be thrown for aReadWriteBackingMapwith registeredMapListeners. - Fixed an issue where keys are deserialized if returned as keys in
the Map that is returned by an
EntryProcessor.processAllinvocation. - Fixed an issue where Coherence fails to start when
coherence-metrics.jaris added to the classpath and the extendedmbeanname property is set to true. - Fixed an issue where
getAll()on aNearCachemay return incorrect results for an *Extend client. - Fixed an issue in
LimitFilterwhen used in deserialization via the WebLogic T3 protocol that could allow for arbitrary code execution. - Fixed an issue where
getAll()on aNearCachemay return incorrect results for an *Extend client. - Fixed an issue where an exception may not be thrown if a
ContinuousQueryCacheis in a disconnected state and fails to re-synchronize. - Updated the SFTP Snapshot Archiver example to use Apache Mina SSHD.
- Fixed an issue where some of the default
InvocableMapmethods do not cause read-through from aCacheStorewhen they should. - Fixed an issue where there may be repeated logging of a message
related to an unexpected
EvictionApproverduring partition transfer. - Allow persistent writes to be performed asynchronously.
- Fixed an issue where a listener on a 12.2.1.0.x, 12.2.1.1.x,
12.2.1.2.x or 12.2.1.3.x Extend client
NearCachemay miss some events. - Fixed an issue where a
NullPointerExceptionmay be thrown by Coherence*Web due to access to a session which is no longer valid when there is a high rate of sessions being invalidated. - Lowered the severity of the log message, which states that event interceptors are already registered when restarting a service.
- Fixed an issue where a service may terminate due to
IllegalArgumentException: unknown extent identifierbeing thrown during a rolling restart of an active persistence enabled cluster. - Fixed an issue where Berkeley DB configuration specified as
init-paramson thebdb-store-managerconfiguration element was being ignored. - Fixed an issue where connection migration may occur in a loop, without resolution.
- Fixed an issue where the Maven enforcer
dependencyConvergencerule would generate warnings concerning Jackson modules. - Fixed an issue where federation may end up in a high CPU usage
busy-loop during a
ReplicateAlloperation. - Fixed an issue where persistence data loss may occur on cluster restart if a client service had ensured a cache before any storage member was started and there was no cache update operation while the cluster was running, prior to the restart.
- Fixed an issue with management over REST API return values for
MBean attributes, ensuring that the
ObjectNamekey property with same name as attribute does not override its value. - Fixed an issue where the cluster service could be terminated due to
an unhandled
IllegalAccessExceptionbeing thrown by theSlabBufferManager. - Fixed an issue where Coherence*Web threads may be stuck at
com.tangosol.util.SegmentedConcurrentMap.lock. - Fixed a rare issue where destroying and recreating a partitioned cache may incorrectly throw an exception.
- Fixed an issue where the service thread may be blocked in the journal congestion state during a rolling restart.
- Added
AverageReapQueueWaitDurationto theSessionReaperstatistics which indicates the average time a reap task spends in queue, prior to being invoked. - Enhanced the Coherence*Web session reaper to operate on the back map
when a
NearCacheis used to store HTTP sessions. - Enhanced federation to allow synthetic updates in a federation
interceptor. The synthetic update will have different behavior depending on the
federation event type: COMMITTING_LOCAL - the change will not be
federated to other clusters and
CacheStoreswill not be called. REPLICATING - setting the change synthetic is not allowed. AnUnsupportedOperationExceptionwill be thrown. COMMITTING_REMOTE - the change will be applied as a synthetic change.CacheStoreswill not be triggered and federation will not forward the change to other clusters from this destination cluster. - Changed the Coherence REST example to use Oracle JET.
- Federation internal caches are now excluded from persistence snapshots.
- Fixed an issue where partition distribution may take longer than
expected with the error
message:
Unreconcilable ownership conflict; conceding the ownership
Parent topic: Bugs Fixed and Enhancements in this Release