Name: rm29839 Date: 11/19/97
Our Development Environment JaWiz uses an embedded 1.1.4 based VM.
Since the VM runs in the same process as the IDE and has to be restartable
(for debugging sessions for instance) we had to implement the missing
"Cleanup" code for the VM .
Needless to say, that it was a painful job which should have been done
by your runtime developers instead of simply relying on the fact that the
process termination will cleanup the mess, but that works only of the
process using the runtime really terminates which is not the case in a
development environment where the VM has to be re-initialized hundreds
of times during a user session.
Our Development Environment JaWiz uses an embedded 1.1.4 based VM.
Since the VM runs in the same process as the IDE and has to be restartable
(for debugging sessions for instance) we had to implement the missing
"Cleanup" code for the VM (a painful task!). One of the tasks of the cleanup
code is killing all threads. This is done in the correct way by posting all
running java threads a ThreadDeath Exception. Unfortunately does almost the
entire native AWT Code ignore exceptions (exceptionClear()) plus that the
AWT EventLoop doesnt check for a set Interrupt event.
(It should use MsgWaitForMultibleObjects())
We have fixed the latter for our implementation and it works fine (cept for
the annoying assertions caused by the unexpected exception) but we think
that this needs review on your side.
(Review ID: 20151)
======================================================================