Ganz allgemeiner Tipp (ohne den Code nachvollzogen zu haben):
Sinnvolle TEXTAUSGABEN zum debuggen in den Code reinmachen damit Du sehen kannst was wo wie passiert.
Auch die Werte ausgeben lassen mit writeInteger und writeString ...

MfG,
SlyD