2015-02-11 62 views
0

在Hazelcast 3.4中,我使用带时间参数的IQueue提供了一个NoSuchMethodError异常。它在Hazelcast 3.2中运行良好。代码编译并运行,但是当它执行报价时,它会抛出异常。Hazelcast 3.4 IQueue offer

这是BlockingQueue的方法的签名:

公共布尔报价(E E,长升,TIMEUNIT TU)抛出InterruptedException的;

IQueue<GLBCSchema> queue=hzMQUtils.getQueue("myQueueName"); 
... 
GLBCSchema tmpMsg=new GLBCSchema(); 
//queue.offer(tmpMsg); <=== works! 
queue.offer(tmpMsg, 3, TimeUnit.SECONDS); <== throws NoSuchMethodError 
Exception in thread "main" java.lang.NoSuchMethodError: com.hazelcast.core.IQueue.offer(Lgblx/gis/rtapi/facade/internal/GLBCSchema;JLjava/util/concurrent/TimeUnit;)Z 

这是一个错误或已删除Hazelcast此优惠的方法?

Thx!

回答

0

没关系。我想到了。我删除了类型声明后,它工作。

来源:

IQueue<GLBCSchema> queue=hzMQUtils.getQueue("myQueueName"); 

要:

IQueue queue=hzMQUtils.getQueue("myQueueName"); 

我不知道他们为什么做出这种改变。 (JDK https://bugs.openjdk.java.net/browse/JDK-8064803上的参考错误)