Ich habe den folgenden Code:Nullpointer während Element aus Hazelcast Warteschlange gelöscht
hazelcastInstance.<Void>getQueue(UserStorageService.LOGOUT_ALL_USERS_QUEUE_NAME).addItemListener(new ItemListener<Void>() {
@Override
public void itemAdded(ItemEvent<Void> item) {
//process event logic
hazelcastInstance.<Void>getQueue(UserStorageService.LOGOUT_ALL_USERS_QUEUE_NAME).remove(item.getItem());
}
@Override
public void itemRemoved(ItemEvent<Void> item) {
}
}, false);
ich nur Signal senden und hier verarbeite ich dieses Signal.
Ich bin ein wenig confising sollte ich Ereignis nach seiner Verarbeitung löschen? Ich mache es, um Warteschlangenüberlauf zu vermeiden, aber ich bin mir nicht sicher, ob es sinnvoll ist oder nicht.
ich diese Frage stellen, weil in logs ich sehe folgende Stacktrace:
java.lang.NullPointerException: Object is null
at com.hazelcast.util.Preconditions.checkNotNull(Preconditions.java:59)
at com.hazelcast.collection.impl.queue.QueueProxySupport.checkObjectNotNull(QueueProxySupport.java:166)
at com.hazelcast.collection.impl.queue.QueueProxySupport.removeInternal(QueueProxySupport.java:128)
at com.hazelcast.collection.impl.queue.QueueProxyImpl.remove(QueueProxyImpl.java:96)