Between VM death (JVMDI_EVENT_VM_DEATH) and JDWP disconnection
is a time window wherein the VM is shutting down (and is therefore
unstable) and commands can still be sent across JDWP.
There is one easily reproducible case in which a JDI client has set
a breakpoint and requested class prepare events (SUSPEND_ALL).
On the VMDeathEvent the client does clean up which includes attempting
to delete the breakpoint. Since in Ladybird the VMDeathEvent is
SUSPEND_NONE, the VM has proceeded and is now deep in its death.
The class prepare has prevented the death from completing to the
point of disconnection because the Shutdown class has been loaded.
At this point the breakpoint has been thrown away as part of VM
shutdown so the breakpoint delete raises a JVMDI_ERROR_NOT_FOUND -
which is an internal error. This is probably one of many possible
such scenarios.
abhijit.saha@Eng 2001-07-02
updating the bugtraq for bugs integrated in appropriate version of jdk.