was dein erster Listener genau macht, frage ich mich auch,
unabhängig davon, ob er funktioniert, ist durch den angegebenen Code nicht gesagt, ob er je aufgerufen wird,
jegliche Spekulationen erübrigen sich also,
dabei ist alles ganz einfach:
schreibe in den ersten Listener in irgendein if
System.out.println("eins dazugefüllt, size der Liste ist nun: "+..);
und vor dem Zugriff schreibst du
System.out.println("Listenzugriff, size ist: "+..);
schon weißt du was los ist,
wer dazwischen die Liste leert und ähnliche Probleme kann es natürlich weiter geben, die teilweise anders zu klären sind,
oft aber auch nur durch weitere System.out.println,
zu bedenken ist auch immer wieder, dass du vielleicht mit verschiedenen Objekten arbeitest,
in Objekt 1 wird die Liste gut gefüllt, in Objekt 2 greifst du auf die dortige leere Liste zu..