うーーん、よく分からん動作がいっぱい・・・

ArrayListが不安定な動作をする。
今特に問題なのが、

Queue で poll すると
java.util.NoSuchElementException が発生する。

調べたところ、ArrayListは意外と Thread safetyじゃないらしく
ttp://www.velocityreviews.com/forums/t147203-problems-with-linked-lists.html
みたいな話になっているようだけど。

確かにThreadは使っている。
でもQueue.add以外は他のThreadからはアクセスしていないし、
肝心なコードもいちおう synchronizedで囲んでる

while(queue.isEmpty()){
synchronized(queue){
try {queue.wait(2000);} catch (InterruptedException e) {}
}
System.out.println("exit");
}
return queue.poll();  //ここでExceptionが発生する

他にjava.util.NoSuchElementExceptionが発生する要素は無いでしょうか