Java Hazelcast-AtomicReference.alterAndGet正在引发HazelcastSerializationException异常

Java Hazelcast-AtomicReference.alterAndGet正在引发HazelcastSerializationException异常,java,exception,hazelcast,atomicreference,Java,Exception,Hazelcast,Atomicreference,我在同一台机器上运行三个Hazelcast节点,每个节点都试图更改一个原子引用。第一个和第二个节点运行正常,第三个节点抛出HazelcastSerializationException Hazelcast版本:Hazelcast 3.4.2(20150326-f6349a4) 有人知道发生了什么吗 Exception in thread "main" com.hazelcast.nio.serialization.HazelcastSerializationException: Cannot w

我在同一台机器上运行三个Hazelcast节点,每个节点都试图更改一个原子引用。第一个和第二个节点运行正常,第三个节点抛出HazelcastSerializationException

Hazelcast版本:Hazelcast 3.4.2(20150326-f6349a4)

有人知道发生了什么吗

Exception in thread "main" com.hazelcast.nio.serialization.HazelcastSerializationException: Cannot write a Data instance! Use #writeData(ObjectDataOutput out, Data data) instead. at com.hazelcast.nio.serialization.SerializationServiceImpl.writeObject(SerializationServiceImpl.java:272) at com.hazelcast.nio.serialization.ByteArrayObjectDataOutput.writeObject(ByteArrayObjectDataOutput.java:262) at com.hazelcast.concurrent.atomicreference.operations.AbstractAlterOperation.writeInternal(AbstractAlterOperation.java:61) at com.hazelcast.spi.Operation.writeData(Operation.java:281) at com.hazelcast.nio.serialization.DataSerializer.write(DataSerializer.java:140) at com.hazelcast.nio.serialization.DataSerializer.write(DataSerializer.java:39) at com.hazelcast.nio.serialization.StreamSerializerAdapter.toData(StreamSerializerAdapter.java:51) at com.hazelcast.nio.serialization.SerializationServiceImpl.toData(SerializationServiceImpl.java:222) at com.hazelcast.nio.serialization.SerializationServiceImpl.toData(SerializationServiceImpl.java:203) at com.hazelcast.spi.impl.NodeEngineImpl.toData(NodeEngineImpl.java:180) at com.hazelcast.spi.impl.BasicOperationService.send(BasicOperationService.java:348) at com.hazelcast.spi.impl.BasicInvocation.doInvokeRemote(BasicInvocation.java:288) at com.hazelcast.spi.impl.BasicInvocation.doInvoke(BasicInvocation.java:260) at com.hazelcast.spi.impl.BasicInvocation.invoke(BasicInvocation.java:229) at com.hazelcast.spi.impl.BasicOperationService.invokeOnPartition(BasicOperationService.java:272) at com.hazelcast.concurrent.atomicreference.AtomicReferenceProxy.asyncInvoke(AtomicReferenceProxy.java:56) at com.hazelcast.concurrent.atomicreference.AtomicReferenceProxy.asyncAlterAndGet(AtomicReferenceProxy.java:87) at com.hazelcast.concurrent.atomicreference.AtomicReferenceProxy.alterAndGet(AtomicReferenceProxy.java:78) at com.senior.seguranca.csm.datamart.hazelcast.HazelcastTest.(HazelcastTest.java:18) at com.senior.seguranca.csm.datamart.hazelcast.HazelcastTest.main(HazelcastTest.java:22) 线程“main”com.hazelcast.nio.serialization.HazelcastSerializationException中出现异常:无法写入数据实例!改用#writeData(ObjectDataOutput,Data Data)。 位于com.hazelcast.nio.serialization.SerializationServiceImpl.writeObject(SerializationServiceImpl.java:272) 位于com.hazelcast.nio.serialization.ByteArrayObjectDataOutput.writeObject(ByteArrayObjectDataOutput.java:262) 位于com.hazelcast.concurrent.atomicreference.operations.AbstractAlterOperation.writeInternal(AbstractAlterOperation.java:61) 在com.hazelcast.spi.Operation.writeData上(Operation.java:281) 位于com.hazelcast.nio.serialization.DataSerializer.write(DataSerializer.java:140) 位于com.hazelcast.nio.serialization.DataSerializer.write(DataSerializer.java:39) 在com.hazelcast.nio.serialization.StreamSerializerAdapter.toData(StreamSerializerAdapter.java:51)上 位于com.hazelcast.nio.serialization.SerializationServiceImpl.toData(SerializationServiceImpl.java:222) 位于com.hazelcast.nio.serialization.SerializationServiceImpl.toData(SerializationServiceImpl.java:203) 位于com.hazelcast.spi.impl.NodeEngineImpl.toData(NodeEngineImpl.java:180) 位于com.hazelcast.spi.impl.BasicOperationService.send(BasicOperationService.java:348) 在com.hazelcast.spi.impl.basicinovation.doInvokeRemote上(basicinovation.java:288) 在com.hazelcast.spi.impl.basicinovation.doInvoke上(basicinovation.java:260) 在com.hazelcast.spi.impl.BasicInvocation.invoke(BasicInvocation.java:229)上 位于com.hazelcast.spi.impl.BasicOperationService.invokeOnPartition(BasicOperationService.java:272) 在com.hazelcast.concurrent.atomicreference.AtomicReferenceProxy.asyncInvoke(AtomicReferenceProxy.java:56) 位于com.hazelcast.concurrent.atomicreference.AtomicReferenceProxy.asyncAlterAndGet(AtomicReferenceProxy.java:87) 在com.hazelcast.concurrent.atomicreference.AtomicReferenceProxy.alterAndGet(AtomicReferenceProxy.java:78) 在com.senior.seguranca.csm.datamart.hazelcast.HazelcastTest.(HazelcastTest.java:18) 在com.senior.seguranca.csm.datamart.hazelcast.HazelcastTest.main(HazelcastTest.java:22)上 我的代码:

package com.senior.seguranca.csm.datamart.hazelcast;

import com.hazelcast.config.Config;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.core.IAtomicReference;
import com.hazelcast.core.IFunction;

public class HazelcastTest {

    public HazelcastTest() {
        Config config = new Config();
        config.setInstanceName("HAZELCAST_INSTANCE");
        HazelcastInstance hazelcastInstance = Hazelcast.getOrCreateHazelcastInstance(config);

        IAtomicReference<String> atomicReference = hazelcastInstance.getAtomicReference("TEST");
        String item = "A";
        System.out.println("Item: " + atomicReference.alterAndGet(new MyFunction(item)));
    }

    public static void main(String[] args) {
        new HazelcastTest();
    }
}

class MyFunction implements IFunction<String, String> {

    private String newItem;

    public MyFunction(String newItem) {
        this.newItem = newItem;
    }

    @Override
    public String apply(String item) {
        return newItem;
    }
}
package com.senior.seguraca.csm.datamart.hazelcast;
导入com.hazelcast.config.config;
导入com.hazelcast.core.hazelcast;
导入com.hazelcast.core.hazelcast实例;
导入com.hazelcast.core.IAtomicReference;
导入com.hazelcast.core.IFunction;
公共级Hazelcast试验{
公共榛树试验(){
Config=new Config();
config.setInstanceName(“HAZELCAST_实例”);
HazelcastInstance=Hazelcast.getOrCreateHazelcastInstance(配置);
IATOMCreference atomicReference=hazelcastInstance.getAtomicReference(“测试”);
String item=“A”;
System.out.println(“项:+atomicReference.alterAndGet(新的MyFunction(项)));
}
公共静态void main(字符串[]args){
新的hazelcast测试();
}
}
类MyFunction实现IFunction{
私有字符串newItem;
公共MyFunction(字符串newItem){
this.newItem=newItem;
}
@凌驾
公共字符串应用(字符串项){
返回新项目;
}
}

如果您确定所有三个节点都具有相同的Hazelcast版本(请验证这一点,因为我假设第三个节点由于未知原因具有旧版本),请在bug tracker中提交一个问题。

您解决了问题吗?我有一样的。