beim letzten Kolloquium (Gruppe 1) wurde uns mitgeteilt dass unsere Copy Propagation in manchen Fällen hängen bliebe und den Timeout überschreite. Beim Testen was so passiert wenn unsere Shell von anderen Programmen gestartet wird und der Output weitergeleitet bin ich durch Zufall in den gleichen Fehler gerannt. Und die Quelle war nicht in unserer Shell sondern im Testprogramm: Der InputStream vom Prozess war voll und somit konnte unsere Shell nichts mehr ausgeben und System.out.println blockierte bis der Timeout kam.
Also, falls das ESA-Testprogramm unsere Shell mittels eines java.lang.Process aufruft und mittels process.getInputStream() die Daten ausliest nachdem darauf gewartet wurde dass die Shell beendet wurde: Das reicht bei sehr viel Output nicht. Der Stream sollte in einem separaten Thread während die Shell läuft dauerhaft gelesen werden.
Viele Grüße,
Jakob Wenzel
P.S.: Wir haben die Ausgaben der CopyPropagation reduziert, jetzt sollte das eh nicht mehr passieren
