2015-02-11 40 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上的參考錯誤)