Entry Processor Rollback Causes Distributed Service Failure In Backup Node Due to a NullPointerException (Doc ID 1380741.1)

Last updated on NOVEMBER 03, 2016

Applies to:

Oracle Coherence - Version 3.7.1 and later
Information in this document applies to any platform.
***Checked for relevance on 21-Nov-2013***

Symptoms

To rollback changes from the work done by an EntryProcessor, an exception can be thrown from the EntryProcessor's process() method, as documented in the InvocableMap.EntryProcessor API documentation.

However, if you do this in 3.7.1, then you may see a NullPointerException occuring in the cache service that is responsible for the backup partition for the data being modified.

2011-10-17 10:37:14.941/31.890 Oracle Coherence GE 3.7.1.0 <Error (thread=DistributedCache, member=1): java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:881)
at java.util.concurrent.ConcurrentHashMap.putAll(ConcurrentHashMap.java:909)
at java.util.concurrent.ConcurrentHashMap.<init>(ConcurrentHashMap.java:667)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$ResultInfo.mergeResults(PartitionedCache.CDB:9)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.registerSingleResult(PartitionedCache.CDB:22)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.onBackupSingleRequest(PartitionedCache.CDB:74)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$BackupSingleRequest.onReceived(PartitionedCache.CDB:2)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onMessage(Grid.CDB:34)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onNotify(Grid.CDB:33)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.PartitionedService.onNotify(PartitionedService.CDB:3)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.onNotify(PartitionedCache.CDB:3)
at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:42)
at java.lang.Thread.run(Thread.java:662)

Changes

This problem was introduced in 3.7.1; it should not be encountered in earlier releases.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms