1 22 23 package org.aspectj.debugger.base; 24 25 import com.sun.jdi.*; 26 import java.util.*; 27 28 36 37 public class LockInformation { 38 39 private ObjectReference objectRef; 40 41 public LockInformation (ObjectReference objectRef) { 42 this.objectRef = objectRef; 43 } 44 45 public ThreadReference getOwningThread() throws DebuggerException { 46 try { 47 return objectRef.owningThread(); 48 } catch (UnsupportedOperationException uoe) { 49 throw new DebuggerException(uoe); 50 } catch (IncompatibleThreadStateException itse) { 51 throw new DebuggerException(itse); 52 } 53 } 54 55 public List getWaitingThreads() throws DebuggerException { 56 try { 57 return objectRef.waitingThreads(); 58 } catch (UnsupportedOperationException uoe) { 59 throw new DebuggerException(uoe); 60 } catch (IncompatibleThreadStateException itse) { 61 throw new DebuggerException(itse); 62 } 63 } 64 65 public String toString() { 66 try { 67 String str = "Object: " + objectRef + Consts.newline; 68 str += "Owning thread: " + getOwningThread() + Consts.newline; 69 str += "Waiting threads: " + getWaitingThreads(); 70 return str; 71 } catch (DebuggerException e) { 72 } 73 return "Thread thread has resumed."; 74 } 75 } 76 | Popular Tags |