2014-10-15 9 views
1

직접 메모리에서 순환 대기열을 만들 때. 내가 한 일 :CircularQueue를 만들 때 MapDB가 Serializer를 허용하지 않습니다.

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

대기열에 버그가 있습니다. null 요소를 사용하지 않습니다.

+0

이것은 무엇을 의미합니까? 위와 같이 대기열을 만들 수 없습니까? 나는 같은 문제를 가지고있다. –