In the update function of a fork when one tries to add an observer to the child process the state machine does not handel the transition. This however works: public Action updateForked(Task task, Proc child) { //... child.observableTaskAdded.addObserver(new Observer(){ public void update(Observable arg0, Object task) { Task myTask = (Task) task; myTask.requestAddForkedObserver(customObserver); } }); //...
public Action updateForked(Task task, Proc child) { //... child.observableTaskAdded.addObserver(new Observer(){ public void update(Observable arg0, Object task) { Task myTask = (Task) task; myTask.requestAddForkedObserver(customObserver); } }); //... This does not actually work... it just does not throw an exception. I tested this by trying to trace the execution tree of firefox; only the very first fork is caught.
(title changed, it isn't an unhandled state) is this still broken? known problems with the observer code have been fixed
frysk.proc.TestTaskForkedObserver.testTaskForkedObserver seems to test for this and passes.