Olá Pessoal,
Queria ver com vocês se podem me dar uma ajuda.
No seguinte código
Iterator lista = this.getComandosPendentes().iterator();
logger.info( "Iniciando passagem do usuário " + this.nick );
while( lista.hasNext() )
{
logger.info( "\tPassando por um comando do usuário." );
AbstractCommandTurno temp = ( AbstractCommandTurno ) lista.next();
temp.passaTurno();
}
Na linha AbstractCommandTurno temp = ( AbstractCommandTurno ) lista.next();
Acontece o seguinte erro:
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
at java.util.HashMap$KeyIterator.next(Unknown Source)
at org.hibernate.collection.AbstractPersistentCollection$IteratorProxy.next(AbstractPersistentCollection.java:555)
at Jogador.passaTurno(Jogador.java:539)
at Usuario.passaTurno(Ticker.java:111)
at Ticker.run(Ticker.java:79)
Alguém sabe o que pode ser?
Uma coisa que eu posso garantir é que não há nenhuma outra thread minha em execução no momento em que esta é executada. Eu sei disso pq eu bloqueio qualquer solicitação http que aconteça no momento que essa thread acorda.
Outra coisa importante, se eu debugo, e dou um tempo entre uma iteração e outra, não dá erro! Só se eu deixo executar ou se eu vou muito rápido nos passos.
Alguém tem alguma idéia do que pode ser?