*/
public List<com.sun.jdi.MonitorInfo> ownedMonitorsAndFrames()
throws IncompatibleThreadStateException {
initJdwpRequest();
try {
JdwpReplyPacket replyPacket = requestVM(
JdwpCommandPacket.TR_OWNED_MONITOR_STACK_DEPTH, this);
switch (replyPacket.errorCode()) {
case JdwpReplyPacket.INVALID_THREAD:
case JdwpReplyPacket.INVALID_OBJECT:
throw new ObjectCollectedException(
JDIMessages.ThreadReferenceImpl_thread_object_invalid);
case JdwpReplyPacket.THREAD_NOT_SUSPENDED:
throw new IncompatibleThreadStateException(
JDIMessages.ThreadReferenceImpl_Thread_was_not_suspended_5);
case JdwpReplyPacket.NOT_IMPLEMENTED:
throw new UnsupportedOperationException(
JDIMessages.ThreadReferenceImpl_no_force_early_return_on_threads);
case JdwpReplyPacket.VM_DEAD:
throw new VMDisconnectedException(JDIMessages.vm_dead);
}
defaultReplyErrorHandler(replyPacket.errorCode());
DataInputStream replyData = replyPacket.dataInStream();
int owned = readInt("owned monitors", replyData); //$NON-NLS-1$
List<com.sun.jdi.MonitorInfo> result = new ArrayList<com.sun.jdi.MonitorInfo>(owned);
ObjectReference monitor = null;
int depth = -1;