Java 一致性:使用条目处理器从缓存中逐出密钥时出现问题

Java 一致性:使用条目处理器从缓存中逐出密钥时出现问题,java,oracle-coherence,Java,Oracle Coherence,我正在尝试使用executeprocessor退出缓存密钥,有人知道此错误的含义吗?当此代码使用Coherence 3.5时,我在Coherence 3.7中遇到此错误 错误: 读写备份映射的内部映射具有意外的收回禁止;自定义地图应接受并使用提供的审批人 public class EvictProcessor extends AbstractProcessor implements ExternalizableLite, PortableObject { static ValueExt

我正在尝试使用
executeprocessor
退出缓存密钥,有人知道此错误的含义吗?当此代码使用
Coherence 3.5
时,我在
Coherence 3.7
中遇到此错误

错误:
读写备份映射的内部映射具有意外的收回禁止;自定义地图应接受并使用提供的审批人

public class EvictProcessor extends AbstractProcessor implements
    ExternalizableLite, PortableObject {

static ValueExtractor s_extractorMap = new ReflectionExtractor("getMap");
static ValueExtractor s_extractorKey = new ReflectionExtractor("getBinaryKey");

public EvictProcessor() {
}

public Object process(com.tangosol.util.InvocableMap.Entry entry) {
    if (entry.isPresent())
    {
        final ReadWriteBackingMap bm = (ReadWriteBackingMap) s_extractorMap.extract(entry); 
        final ConfigurableCacheMap local = (ConfigurableCacheMap) bm.getInternalCache(); 
        local.evict(s_extractorKey.extract(entry));
    }
    return null 
}
public void readExternal(PofReader pofreader) throws IOException {}
public void writeExternal(PofWriter pofwriter) throws IOException {}
}
然后我使用上面的
executeprocessor
从缓存中逐出条目

cache.invoke(key,new EvictProcessor ());

当我将一致性升级到
3.7.1.16
时,上述错误消失,但逐出仍不起作用

一致性
v3.7.1.16
中存在缺陷,使用
BackingMap
逐出。升级到一致性v12时,此问题已得到修复。请参阅:。有一个关于
executionapprover
修复错误的信息。也许您应该升级Coherence版本。@KrzysztofKosmatka当我升级到Coherence 3.7.1.16时,此错误消息消失,但手动逐出仍不起作用。
条目的实际类别是什么?它是否有方法
getMap
getBinaryKey
过程
方法是否无一例外地结束?我没有彻底搜索,但在任何常见的
InvocableMap.Entry
实现中都没有看到
getMap
方法。可能在3.5和3.7之间执行
InvocableMap.Entry
已更改或
getMap
方法已删除。我只是在这里猜测,但也许它会对您有所帮助。@KrzysztofKosmatka在升级到3.7.1.16之后,对于少数分布式缓存来说,逐出仍然不起作用。我看不到任何错误或警告。我很抱歉,我不能再帮你了。