LinkedList.poll() lançando exceção

Olá!

A classe LinkedList tem um método poll() que deveria retornar null se a lista está vazia.
No entanto, estou usando LinkedList e recebo direto a exceção NoSuchElementException, mesmo quando testo logo antes para ter certeza de que a lista não está vazia…

if(!movesOut.isEmpty()) communicationManager.sendMessage(movesOut.poll());

Não faço idéia de onde vem essa exceção, alguém já passou por isso?

Valeu.

Felipe,

Já pessou em fazer um tratamento de excessão para caso se ele der esta exception, ele aplicar este tratamento te avisando na tela a mensagem da linkedlist vazia.

Irei fazer um laboratório e colocarei a solução aqui depois!

Abraço!!!

Sim, eu trato a exceção. Mas, segundo a expecificação da classe e do método, essa exceção não deveria ser lançada nunca. Se a lista está vazia, o método teria que retornar null, e não lançar uma exceção…

Nunca vi essa exceção no método poll().
Já tentou seguir o stacktrace e ver onde vai parar?

Hum… será que não está ocorrendo algum problema de concorrência? Lembre-se que LinkedList não é sincronizada automaticamente. Pela documentação, poll deveria retornar null se a lista estiver vazia.
Talvez você tenha de usar um monte de “synchronized” ou então usar um LinkedBlockinDeque ou coisa semelhante, que são bem otimizadas comparando com qualquer código cheio de “syncronized” que você possa tentar usar.