assylias is correct, you need to use an Iterator to remove something from your collection as you are iterating through it. Here is an example for more illustration:
Iterator<Runnable> runIt = listeners.iterator();
while (runIt.hasNext())
{
Runnable listener = runIt.next();
Platform.runLater(listener);
runIt.remove();
}