ConditionalIndex Fails To Apply Filter When Removing An Object From The Cache (Doc ID 1360093.1)

Last updated on NOVEMBER 03, 2016

Applies to:

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

Symptoms

When attempting to use a conditional index on a heterogeneous cache that uses a reflection extractor to only index objects that implement a specific method, an error occurs when removing an entry that is not indexed. No error is seen adding entries to the cache.

2011-08-16 10:21:59.766/7.215 Oracle Coherence GE 3.7.0.0 <Error> (thread=DistributedCache, member=1): Exception occured during index update: 1; removing the index...
2011-08-16 10:21:59.767/7.216 Oracle Coherence GE 3.7.0.0 <Error> (thread=DistributedCache, member=1): java.lang.RuntimeException: Missing or inaccessible method:
Main$Car.getWings()
        at com.tangosol.util.extractor.ReflectionExtractor.extract(ReflectionExtractor.java:113)
        at com.tangosol.util.extractor.AbstractExtractor.extractOriginalFromEntry(AbstractExtractor.java:132)
        at com.tangosol.util.InvocableMapHelper.extractOriginalFromEntry(InvocableMapHelper.java:310)
        at com.tangosol.util.SimpleMapIndex.deleteInternal(SimpleMapIndex.java:368)
        at com.tangosol.util.ConditionalIndex.deleteInternal(ConditionalIndex.java:171)
        at com.tangosol.util.SimpleMapIndex.delete(SimpleMapIndex.java:163)
        at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$Storage.updateIndex(PartitionedCache.CDB:27)
        at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$ResourceCoordinator.processEvent(PartitionedCache.CDB:83)
        at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$ResourceCoordinator.finalizeInvokeSingleThreaded(PartitionedCache.CDB:56)
        at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$ResourceCoordinator.finalizeInvoke(PartitionedCache.CDB:9)
        at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.processChanges(PartitionedCache.CDB:4)
        at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.onRemoveRequest(PartitionedCache.CDB:45)
        at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$RemoveRequest.run(PartitionedCache.CDB:1)
        at com.tangosol.coherence.component.net.message.requestMessage.DistributedCacheKeyRequest.onReceived(DistributedCacheKeyRequest.CDB:12)
        at com.tangosol.coherence.component.net.message.requestMessage.distributedCacheKeyRequest.ExtendedKeyRequest.onReceived(ExtendedKeyRequest.CDB:4)
        at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onMessage(Grid.CDB:33)
        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:680)

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