| Summary: | UI Hangs after model crash. | ||
|---|---|---|---|
| Product: | [Modeling] AMP | Reporter: | Miles Parker <milesparker> |
| Component: | AXF UI | Assignee: | Jonas Ruttimann <jonas.ruettimann> |
| Status: | NEW --- | QA Contact: | Miles Parker <milesparker> |
| Severity: | normal | ||
| Priority: | P3 | ||
| Version: | 0.9.0 | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
When hitting the restart-buttons repeatedly and like mad, I can even provoke the GUI to freeze with an absolute correct model. Looks like this is the same bug. Just committed a bug fix to avoid deadlocks when using simulation control buttons. I'm not quite sure if this solves the "Bad Model" problem as well. I'm still on it. BTW, we do have SWTBot tests for these, I was just never able to get them automated. Might be worth resurecting them. This change introduced really serious problems with the update mechanism. There was a lot of discussion on the mailing list about this issue. I do _not_ believe that switching to an asynchronous mechanism will work. In any case, things are very definitely quite broken now. :) For now, I'm going to back these changes out. I've created a branch called "SynchronousExperiment" -- please continue any other changes that you'd like to try out there, and/or we can try to discuss here or on mailing list. I'm going to have my hands full now with some other projects, but I'll try to respond to any followup as soon as I can. Until we agree on a course of action, please do not make any more update related changes to the main branch. (In reply to comment #4) > This change introduced really serious problems with the update mechanism. There > was a lot of discussion on the mailing list about this issue. I do _not_ > believe that switching to an [asynchronous mechanism will work]. In any case, sorry, please replace above with "synchronous mechanism is the correct solution" |
If you execute a model that fails with an exception of some kind, the UI hangs. It should close gracefully. (It will close after a period if you open the progress monitor and kill it there.) This snippet demonstrates the issue: package test; import org.ascape.model.Agent; import org.ascape.model.Scape; import org.ascape.model.rule.Rule; public class BadModel extends Scape { @Override public void createScape() { super.createScape(); addRule(new Rule("Bad Model!") { @Override public void execute(Agent agent) { throw new RuntimeException("I'm a very bad model."); } }); } }