Предложение Hazelcast 3.4 IQueue

В Hazelcast 3.4 я получаю исключение NoSuchMethodError при использовании предложения IQueue с параметрами времени. Он отлично работает в Hazelcast 3.2. Код компилируется и запускается, но когда он выполняет предложение, он генерирует исключение.

Это сигнатура метода для BlockingQueue:

публичное логическое предложение (E e, long l, 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 удалил этот метод предложения?

Спасибо!


person Michael Chan    schedule 11.02.2015    source источник


Ответы (1)


Не берите в голову. Я понял. После того, как я удалил объявление типа, это сработало.

От:

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

To:

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

Я не уверен, почему они сделали это изменение. (Справочная ошибка в JDK https://bugs.openjdk.java.net/browse/JDK-8064803)

person Michael Chan    schedule 11.02.2015