Ticket #1856 (closed defect: invalid)
Opened 2013-05-08T16:27:44-05:00
Last modified 2014-05-01T12:24:27-05:00
A exit hack
Reported by: | bdezonia | Owned by: | curtis |
---|---|---|---|
Priority: | major | Milestone: | imagej2-b8-analysis |
Component: | Core | Version: | |
Severity: | serious | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | #1457 |
Description
In order to always exit safely even if plugin writers do not dispose their windows correctly we can have a catch all close routine. Thus, though hacky, we can avoid System.exit(). I have created such a hacky hack on the exit-hack branch.
Change History
comment:2 Changed 2013-06-04T11:43:39-05:00 by bdezonia
- Blocking 1457 added; 1563 removed
- Milestone changed from imagej2-b7-ndim-data to imagej2-b8-analysis
comment:3 Changed 2014-05-01T12:24:27-05:00 by curtis
- Status changed from new to closed
- Resolution set to invalid
The main purpose of avoiding System.exit is to avoid touching state within the JVM that doesn't "belong" to ImageJ. Unfortunately, iterating through all open windows would potentially affect "non-ImageJ" objects within the JVM. While it is conceivable we could somehow listen for all window creations and determine whether each one is "ImageJ-related" and then dispose only those, it would be a lot of work just to work around other people's bugs.
For quitting, if we are going to end up touching global state anyway, I'd rather ImageJ just call System.exit(0) since it is much simpler. There is also a user option for whether to call System.exit IIRC. In any case, this hack unfortunately won't do the job.