public ObjectReferenceImpl currentContendedMonitor()

in core/src/main/java/com/jetbrains/sa/jdi/ThreadReferenceImpl.java [295:325]


    public ObjectReferenceImpl currentContendedMonitor()
                              throws IncompatibleThreadStateException  {
        if (!vm().canGetCurrentContendedMonitor()) {
            throw new UnsupportedOperationException();
        }

        if (myJavaThread == null) {
           throw new IncompatibleThreadStateException();
        }
        ObjectMonitor mon = myJavaThread.getCurrentWaitingMonitor();
        if (mon == null) {
           // thread is not doing an Object.wait() call
           mon = myJavaThread.getCurrentPendingMonitor();
           if (mon != null) {
               OopHandle handle = mon.object();
               // If obj == NULL, then ObjectMonitor is raw which doesn't count
               // as contended for this API
               return vm().objectMirror(handle);
           } else {
               // no contended ObjectMonitor
               return null;
           }
        } else {
           // thread is doing an Object.wait() call
           OopHandle handle = mon.object();
           if (Assert.ASSERTS_ENABLED) {
               Assert.that(handle != null, "Object.wait() should have an object");
           }
           return vm().objectMirror(handle);
        }
    }