2014-10-15 2 views
1

Когда я создаю круговую очередь в прямой памяти. Что я сделал:MapDB не принимает Serializer при создании CircularQueue

BlockingQueue<String> queue = DBMaker.newMemoryDirectDB().make().getCircularQueue("my-queue"); 
queue.add("sdfsd"); 
queue.add("345345"); 
queue.add("dfgdfg"); 
queue.add("dfgdgfdgdf"); 
System.out.println(queue.take()); 

Это прекрасно работает. Но когда я создаю очередь, как это:

BlockingQueue<String> queue = DBMaker.newMemoryDirectDB().make().createCircularQueue("my-queue", Serializer.STRING, 1000); 

Он бросает NullPointerException:

Exception in thread "main" java.lang.NullPointerException 
    at org.mapdb.DataOutput2.writeUTF(DataOutput2.java:147) 
    at org.mapdb.Serializer$1.serialize(Serializer.java:70) 
    at org.mapdb.Serializer$1.serialize(Serializer.java:67) 
    at org.mapdb.Queues$SimpleQueue$NodeSerializer.serialize(Queues.java:63) 
    at org.mapdb.Queues$SimpleQueue$NodeSerializer.serialize(Queues.java:52) 
    at org.mapdb.Store.serialize(Store.java:154) 
    at org.mapdb.StoreWAL.put(StoreWAL.java:232) 
    at org.mapdb.Caches$HashTable.put(Caches.java:216) 
    at org.mapdb.DB.createCircularQueue(DB.java:1208) 
    at com.mycompany.testjoda.Main.main(Main.java:11) 

ли я что-то отсутствует?

ответ

1

В очереди есть ошибка. Он не принимает нулевые элементы

+0

Что это значит? Невозможно создать очередь, как он хотел выше? У меня такая же проблема. –