当前位置: 首页>>代码示例>>Java>>正文


Java ThreadInfo.getLockOwnerName方法代码示例

本文整理汇总了Java中java.lang.management.ThreadInfo.getLockOwnerName方法的典型用法代码示例。如果您正苦于以下问题:Java ThreadInfo.getLockOwnerName方法的具体用法?Java ThreadInfo.getLockOwnerName怎么用?Java ThreadInfo.getLockOwnerName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.lang.management.ThreadInfo的用法示例。


在下文中一共展示了ThreadInfo.getLockOwnerName方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: printThread

import java.lang.management.ThreadInfo; //导入方法依赖的package包/类
private static void printThread(ThreadInfo ti, PrintWriter out) {
  out.print("\"" + ti.getThreadName() + "\"" + " Id="
      + ti.getThreadId() + " in " + ti.getThreadState());
  if (ti.getLockName() != null) {
    out.print(" on lock=" + ti.getLockName());
  }
  if (ti.isSuspended()) {
    out.print(" (suspended)");
  }
  if (ti.isInNative()) {
    out.print(" (running in native)");
  }
  out.println();
  if (ti.getLockOwnerName() != null) {
    out.println(INDENT + " owned by " + ti.getLockOwnerName() + " Id="
        + ti.getLockOwnerId());
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:19,代码来源:TimedOutTestsListener.java

示例2: printThread

import java.lang.management.ThreadInfo; //导入方法依赖的package包/类
private static StringBuilder printThread(ThreadInfo ti, StringBuilder sb) {
    sb.append("\"" + ti.getThreadName() + "\"" + " Id="
            + ti.getThreadId() + " in " + ti.getThreadState());
    if (ti.getLockName() != null) {
        sb.append(" waiting on lock=" + ti.getLockName());
    }
    if (ti.isSuspended()) {
        sb.append(" (suspended)");
    }
    if (ti.isInNative()) {
        sb.append(" (running in native)");
    }
    sb.append("\n");
    if (ti.getLockOwnerName() != null) {
        sb.append("\t owned by " + ti.getLockOwnerName() + " Id="
                + ti.getLockOwnerId()).append("\n");
    }
    return sb;
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:20,代码来源:NbTestCase.java

示例3: printThread

import java.lang.management.ThreadInfo; //导入方法依赖的package包/类
private void printThread(ThreadInfo ti, PrintStream out) {
   StringBuilder sb = new StringBuilder("\"" + ti.getThreadName() + "\"" + // NOI18N
                                        " Id=" + ti.getThreadId() +       // NOI18N
                                        " in " + ti.getThreadState());    // NOI18N
   if (ti.getLockName() != null) {
       sb.append(" on lock=").append(ti.getLockName()); // NOI18N
   }
   if (ti.isSuspended()) {
       sb.append(" (suspended)"); // NOI18N
   }
   if (ti.isInNative()) {
       sb.append(" (running in native)"); // NOI18N
   }
   out.println(sb.toString());
   if (ti.getLockOwnerName() != null) {
        out.println(INDENT + " owned by " + ti.getLockOwnerName() + // NOI18N
                           " Id=" + ti.getLockOwnerId());           // NOI18N
   }
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:20,代码来源:Detector.java

示例4: print15Thread

import java.lang.management.ThreadInfo; //导入方法依赖的package包/类
private void print15Thread(final StringBuilder sb, final ThreadInfo thread, boolean goToSourceAvailable) {
    sb.append("<br>\"" + thread.getThreadName() + // NOI18N
            "\" - Thread [email protected]" + thread.getThreadId() + "<br>");    // NOI18N
    sb.append("   java.lang.Thread.State: " + thread.getThreadState()); // NOI18N
    if (thread.getLockName() != null) {
        sb.append(" on " + thread.getLockName());   // NOI18N
        if (thread.getLockOwnerName() != null) {
            sb.append(" owned by: " + thread.getLockOwnerName());   // NOI18N
        }
    }
    sb.append("<br>");    // NOI18N
    for (StackTraceElement st : thread.getStackTrace()) {
        String stackElementText = htmlize(st.toString());
        String stackEl = stackElementText;
        if (goToSourceAvailable) {
            String className = st.getClassName();
            String method = st.getMethodName();
            int lineNo = st.getLineNumber();
            String stackUrl = OPEN_THREADS_URL + className + "|" + method + "|" + lineNo; // NOI18N
            stackEl = "<a href=\"" + stackUrl + "\">" + stackElementText + "</a>";    // NOI18N
        }
        sb.append("        at ").append(stackEl).append("<br>");    // NOI18N
    }
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:25,代码来源:ThreadDumpWindow.java

示例5: getThreadInfo

import java.lang.management.ThreadInfo; //导入方法依赖的package包/类
private String getThreadInfo(ThreadInfo ti) {
	String message = "\"" + ti.getThreadName() + "\" [ID=" + ti.getThreadId() + "]";
	message += " is " + ti.getThreadState();
	
	if (ti.isSuspended()) {
		message += " (suspended)";
	}
	
	if (ti.isInNative()) {
		message += " (running in native)";
	}

	message += ":\n";
	
	if (ti.getLockName() != null) {
		message += INDENT + "waiting to lock " + ti.getLockName() + "\n";
	}
	
	if (ti.getLockOwnerName() != null) {
		message += INDENT + "owned by \"" + ti.getLockOwnerName() + "\" [ID=" + ti.getLockOwnerId() + "]\n";
	}
	
	return message;
}
 
开发者ID:convertigo,项目名称:convertigo-engine,代码行数:25,代码来源:ThreadManager.java

示例6: printThread

import java.lang.management.ThreadInfo; //导入方法依赖的package包/类
private void printThread(ThreadInfo ti) {
   StringBuilder sb = new StringBuilder("\"" + ti.getThreadName() + "\"" +
                                        " Id=" + ti.getThreadId() +
                                        " in " + ti.getThreadState());
   if (ti.getLockName() != null) {
       sb.append(" on lock=" + ti.getLockName());
   }
   if (ti.isSuspended()) {
       sb.append(" (suspended)");
   }
   if (ti.isInNative()) {
       sb.append(" (running in native)");
   }
   System.out.println(sb.toString());
   if (ti.getLockOwnerName() != null) {
        System.out.println(INDENT + " owned by " + ti.getLockOwnerName() +
                           " Id=" + ti.getLockOwnerId());
   }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:20,代码来源:ThreadMonitor.java

示例7: onBlockDetected

import java.lang.management.ThreadInfo; //导入方法依赖的package包/类
protected void onBlockDetected(ThreadInfo blockedThread, @Nullable ThreadInfo blockingThread) {
    String blockedThreadStackTrace = stackTrace(blockedThread.getStackTrace());
    String blockingThreadStackTrace = blockingThread != null ?
        stackTrace(blockingThread.getStackTrace()) : "not available";
    throw new AssertionError("Thread [" + blockedThread.getThreadName() + "] is blocked waiting on the resource [" +
        blockedThread.getLockInfo() + "] held by the suspended thread [" + blockedThread.getLockOwnerName() +
        "] of the disrupted node [" + disruptedNode + "].\n" +
        "Please add this occurrence to the unsafeClasses list in [" + LongGCDisruption.class.getName() + "].\n" +
        "Stack trace of blocked thread: " + blockedThreadStackTrace + "\n" +
        "Stack trace of blocking thread: " + blockingThreadStackTrace);
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:12,代码来源:LongGCDisruption.java

示例8: getThreadDump

import java.lang.management.ThreadInfo; //导入方法依赖的package包/类
/**
 * Formats the thread dump for one thread.
 *
 * @param ti
 *            the ThreadInfo describing the thread
 * @return the formatted thread dump
 */
private static String getThreadDump(ThreadInfo ti) {
	StringBuilder sb = new StringBuilder(getThreadDumpHeader(ti));
	for (LockInfo li : ti.getLockedSynchronizers()) {
		sb.append(INDENT2 + "locks " + li.toString() + CRLF);
	}
	boolean start = true;
	StackTraceElement[] stes = ti.getStackTrace();
	Object[] monitorDepths = new Object[stes.length];
	MonitorInfo[] mis = ti.getLockedMonitors();
	for (int i = 0; i < mis.length; i++) {
		monitorDepths[mis[i].getLockedStackDepth()] = mis[i];
	}
	for (int i = 0; i < stes.length; i++) {
		StackTraceElement ste = stes[i];
		sb.append(INDENT2 + "at " + ste.toString() + CRLF);
		if (start) {
			if (ti.getLockName() != null) {
				sb.append(INDENT2 + "- waiting on (a " + ti.getLockName() + ")");
				if (ti.getLockOwnerName() != null) {
					sb.append(" owned by " + ti.getLockOwnerName() + " Id=" + ti.getLockOwnerId());
				}
				sb.append(CRLF);
			}
			start = false;
		}
		if (monitorDepths[i] != null) {
			MonitorInfo mi = (MonitorInfo) monitorDepths[i];
			sb.append(INDENT2 + "- locked (a " + mi.toString() + ")" + " index " + mi.getLockedStackDepth()
					+ " frame " + mi.getLockedStackFrame().toString());
			sb.append(CRLF);

		}
	}
	return sb.toString();
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:43,代码来源:Diagnostics.java

示例9: print16Thread

import java.lang.management.ThreadInfo; //导入方法依赖的package包/类
private void print16Thread(final StringBuilder sb, final ThreadInfo thread, boolean goToSourceAvailable) {
    MonitorInfo[] monitors = thread.getLockedMonitors();
    sb.append("&nbsp;<b>");   // NOI18N
    sb.append("\"").append(thread.getThreadName()).append("\" - Thread [email protected]").append(thread.getThreadId()).append("<br>");    // NOI18N
    sb.append("    java.lang.Thread.State: ").append(thread.getThreadState()); // NOI18N
    sb.append("</b><br>");   // NOI18N
    int index = 0;
    for (StackTraceElement st : thread.getStackTrace()) {
        LockInfo lock = thread.getLockInfo();
        String stackElementText = htmlize(st.toString());
        String lockOwner = thread.getLockOwnerName();

        String stackEl = stackElementText;
        if (goToSourceAvailable) {
            String className = st.getClassName();
            String method = st.getMethodName();
            int lineNo = st.getLineNumber();
            String stackUrl = OPEN_THREADS_URL + className + "|" + method + "|" + lineNo; // NOI18N
            stackEl = "<a href=\"" + stackUrl + "\">" + stackElementText + "</a>";    // NOI18N
        }

        sb.append("    at ").append(stackEl).append("<br>");    // NOI18N
        if (index == 0) {
            if ("java.lang.Object".equals(st.getClassName()) && // NOI18N
                    "wait".equals(st.getMethodName())) {                // NOI18N
                if (lock != null) {
                    sb.append("    - waiting on ");    // NOI18N
                    printLock(sb, lock);
                    sb.append("<br>");    // NOI18N
                }
            } else if (lock != null) {
                if (lockOwner == null) {
                    sb.append("    - parking to wait for ");      // NOI18N
                    printLock(sb, lock);
                    sb.append("<br>");            // NOI18N
                } else {
                    sb.append("    - waiting to lock ");      // NOI18N
                    printLock(sb, lock);
                    sb.append(" owned by \"").append(lockOwner).append("\" [email protected]").append(thread.getLockOwnerId()).append("<br>");   // NOI18N
                }
            }
        }
        printMonitors(sb, monitors, index);
        index++;
    }
    StringBuilder jnisb = new StringBuilder();
    printMonitors(jnisb, monitors, -1);
    if (jnisb.length() > 0) {
        sb.append("   JNI locked monitors:<br>");
        sb.append(jnisb);
    }
    LockInfo[] synchronizers = thread.getLockedSynchronizers();
    if (synchronizers != null) {
        sb.append("<br>   Locked ownable synchronizers:");    // NOI18N
        if (synchronizers.length == 0) {
            sb.append("<br>    - None\n");  // NOI18N
        } else {
            for (LockInfo li : synchronizers) {
                sb.append("<br>    - locked ");         // NOI18N
                printLock(sb, li);
                sb.append("<br>");  // NOI18N
            }
        }
    }
    sb.append("<br>");
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:67,代码来源:ThreadDumpWindow.java

示例10: print16Thread

import java.lang.management.ThreadInfo; //导入方法依赖的package包/类
private void print16Thread(final StringBuilder sb, final ThreadInfo thread, boolean goToSourceAvailable) {
    MonitorInfo[] monitors = thread.getLockedMonitors();
    sb.append("&nbsp;<b>");   // NOI18N
    sb.append("\"").append(thread.getThreadName()).append("\" - Thread [email protected]").append(thread.getThreadId()).append("<br>");    // NOI18N
    sb.append("    java.lang.Thread.State: ").append(thread.getThreadState()); // NOI18N
    sb.append("</b><br>");   // NOI18N
    int index = 0;
    for (StackTraceElement st : thread.getStackTrace()) {
        LockInfo lock = thread.getLockInfo();
        String stackElementText = htmlize(st.toString());
        String lockOwner = thread.getLockOwnerName();
        String className = st.getClassName();
        String method = st.getMethodName();
        int lineNo = st.getLineNumber();
        
        String stackEl = stackElementText;
        if (goToSourceAvailable) {
            String stackUrl = OPEN_THREADS_URL+className+"|"+method+"|"+lineNo; // NOI18N
            stackEl = "<a href=\""+stackUrl+"\">"+stackElementText+"</a>";    // NOI18N
        }

        sb.append("\tat ").append(stackEl).append("<br>");    // NOI18N
        if (index == 0) {
            if ("java.lang.Object".equals(st.getClassName()) &&     // NOI18N
                    "wait".equals(st.getMethodName())) {                // NOI18N
                if (lock != null) {
                    sb.append("\t- waiting on ");    // NOI18N
                    printLock(sb,lock);
                    sb.append("<br>");    // NOI18N
                }
            } else if (lock != null) {
                if (lockOwner == null) {
                    sb.append("\t- parking to wait for ");      // NOI18N
                    printLock(sb,lock);
                    sb.append("<br>");            // NOI18N
                } else {
                    sb.append("\t- waiting to lock ");      // NOI18N
                    printLock(sb,lock);
                    sb.append(" owned by \"").append(lockOwner).append("\" [email protected]").append(thread.getLockOwnerId()).append("<br>");   // NOI18N
                }
            }
        }
        printMonitors(sb, monitors, index);
        index++;
    }
    StringBuilder jnisb = new StringBuilder();
    printMonitors(jnisb, monitors, -1);
    if (jnisb.length() > 0) {
        sb.append("   JNI locked monitors:<br>");
        sb.append(jnisb);
    }
    LockInfo[] synchronizers = thread.getLockedSynchronizers();
    if (synchronizers != null) {
        sb.append("<br>   Locked ownable synchronizers:");    // NOI18N
        if (synchronizers.length == 0) {
            sb.append("<br>\t- None\n");  // NOI18N
        } else {
            for (LockInfo li : synchronizers) {
                sb.append("<br>\t- locked ");         // NOI18N
                printLock(sb,li);
                sb.append("<br>");  // NOI18N
            }
        }
    }
    sb.append("<br>");
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:67,代码来源:SampledCPUSnapshot.java

示例11: getThreadDump

import java.lang.management.ThreadInfo; //导入方法依赖的package包/类
/**
 * Formats the thread dump for one thread.
 *
 * @param ti the ThreadInfo describing the thread
 * @return the formatted thread dump
 */
private static String getThreadDump(ThreadInfo ti) {
    StringBuilder sb = new StringBuilder(getThreadDumpHeader(ti));
    for (LockInfo li : ti.getLockedSynchronizers()) {
        sb.append(INDENT2 + "locks " +
                  li.toString() + CRLF);
    }
    boolean start = true;
    StackTraceElement[] stes = ti.getStackTrace();
    Object[] monitorDepths = new Object[stes.length];
    MonitorInfo[] mis = ti.getLockedMonitors();
    for (int i = 0; i < mis.length; i++) {
        monitorDepths[mis[i].getLockedStackDepth()] = mis[i];
    }
    for (int i = 0; i < stes.length; i++) {
        StackTraceElement ste = stes[i];
        sb.append(INDENT2 +
                  "at " + ste.toString() + CRLF);
        if (start) {
            if (ti.getLockName() != null) {
                sb.append(INDENT2 + "- waiting on (a " +
                          ti.getLockName() + ")");
                if (ti.getLockOwnerName() != null) {
                    sb.append(" owned by " + ti.getLockOwnerName() +
                              " Id=" + ti.getLockOwnerId());
                }
                sb.append(CRLF);
            }
            start = false;
        }
        if (monitorDepths[i] != null) {
            MonitorInfo mi = (MonitorInfo)monitorDepths[i];
            sb.append(INDENT2 +
                      "- locked (a " + mi.toString() + ")"+
                      " index " + mi.getLockedStackDepth() +
                      " frame " + mi.getLockedStackFrame().toString());
            sb.append(CRLF);

        }
    }
    return sb.toString();
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:48,代码来源:Diagnostics.java

示例12: checkLockInfo

import java.lang.management.ThreadInfo; //导入方法依赖的package包/类
private static void checkLockInfo(ThreadStateController t, Thread.State state,
                                  Object lock, Thread owner) {
    ThreadInfo info = getThreadInfo(t, state);
    if (info == null) {
        throw new RuntimeException(t.getName() +
           " expected to have ThreadInfo " +
           " but got null.");
    }

    if (info.getThreadState() != state) {
        throw new RuntimeException(t.getName() + " expected to be in " +
            state + " state but got " + info.getThreadState());
    }

    if (lock == null && info.getLockName() != null) {
        throw new RuntimeException(t.getName() +
            " expected not to be blocked on any lock" +
            " but got " + info.getLockName());
    }
    String expectedLockName = getLockName(lock);
    if (lock != null && info.getLockName() == null) {
        throw new RuntimeException(t.getName() +
            " expected to be blocked on lock [" + expectedLockName +
            "] but got null.");
    }

    if (lock != null && !expectedLockName.equals(info.getLockName())) {
        throw new RuntimeException(t.getName() +
            " expected to be blocked on lock [" + expectedLockName +
            "] but got [" + info.getLockName() + "].");
    }

    if (owner == null && info.getLockOwnerName() != null) {
        throw new RuntimeException("Lock owner is expected " +
            " to be null but got " + info.getLockOwnerName());
    }

    if (owner != null && info.getLockOwnerName() == null) {
        throw new RuntimeException("Lock owner is expected to be " +
            owner.getName() +
            " but got null.");
    }
    if (owner != null && !info.getLockOwnerName().equals(owner.getName())) {
        throw new RuntimeException("Lock owner is expected to be " +
            owner.getName() +
            " but got " + owner.getName());
    }
    if (owner == null && info.getLockOwnerId() != -1) {
        throw new RuntimeException("Lock owner is expected " +
            " to be -1 but got " + info.getLockOwnerId());
    }

    if (owner != null && info.getLockOwnerId() <= 0) {
        throw new RuntimeException("Lock owner is expected to be " +
            owner.getName() + "(id = " + owner.getId() +
            ") but got " + info.getLockOwnerId());
    }
    if (owner != null && info.getLockOwnerId() != owner.getId()) {
        throw new RuntimeException("Lock owner is expected to be " +
            owner.getName() + "(id = " + owner.getId() +
            ") but got " + info.getLockOwnerId());
    }
    if (info.isSuspended()) {
        throw new RuntimeException(t.getName() +
            " isSuspended() returns " + info.isSuspended());
    }
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:68,代码来源:ThreadMXBeanStateTest.java

示例13: checkThreadInfo

import java.lang.management.ThreadInfo; //导入方法依赖的package包/类
static void checkThreadInfo(ThreadInfo info) throws Exception {
    if (info.getThreadId() != ((Long) values[THREAD_ID]).longValue()) {
        throw new RuntimeException("Thread Id = " + info.getThreadId() +
           " expected = " + values[THREAD_ID]);
    }
    if (!info.getThreadName().equals(values[THREAD_NAME])) {
        throw new RuntimeException("Thread Name = " +
           info.getThreadName() + " expected = " + values[THREAD_NAME]);
    }
    if (info.getThreadState() != Thread.State.RUNNABLE) {
        throw new RuntimeException("Thread Name = " +
           info.getThreadName() + " expected = " + Thread.State.RUNNABLE);
    }
    if (info.getBlockedTime() != ((Long) values[BLOCKED_TIME]).longValue()) {
        throw new RuntimeException("blocked time = " +
           info.getBlockedTime() +
           " expected = " + values[BLOCKED_TIME]);
    }
    if (info.getBlockedCount() != ((Long) values[BLOCKED_COUNT]).longValue()) {
        throw new RuntimeException("blocked count = " +
           info.getBlockedCount() +
           " expected = " + values[BLOCKED_COUNT]);
    }
    if (info.getWaitedTime() != ((Long) values[WAITED_TIME]).longValue()) {
        throw new RuntimeException("waited time = " +
           info.getWaitedTime() +
           " expected = " + values[WAITED_TIME]);
    }
    if (info.getWaitedCount() != ((Long) values[WAITED_COUNT]).longValue()) {
        throw new RuntimeException("waited count = " +
           info.getWaitedCount() +
           " expected = " + values[WAITED_COUNT]);
    }
    if (!info.getLockName().equals(values[LOCK_NAME])) {
        throw new RuntimeException("Lock Name = " +
           info.getLockName() + " expected = " + values[LOCK_NAME]);
    }
    if (info.getLockOwnerId() !=
            ((Long) values[LOCK_OWNER_ID]).longValue()) {
        throw new RuntimeException(
           "LockOwner Id = " + info.getLockOwnerId() +
           " expected = " + values[LOCK_OWNER_ID]);
    }
    if (!info.getLockOwnerName().equals(values[LOCK_OWNER_NAME])) {
        throw new RuntimeException("LockOwner Name = " +
           info.getLockOwnerName() + " expected = " +
           values[LOCK_OWNER_NAME]);
    }

    checkStackTrace(info.getStackTrace());

    checkLockInfo(info.getLockInfo());
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:54,代码来源:ThreadInfoCompositeData.java

示例14: checkThreadInfo

import java.lang.management.ThreadInfo; //导入方法依赖的package包/类
static void checkThreadInfo(ThreadInfo info) throws Exception {
    if (info.getThreadId() != ((Long) values[THREAD_ID]).longValue()) {
        throw new RuntimeException("Thread Id = " + info.getThreadId() +
           " expected = " + values[THREAD_ID]);
    }
    if (!info.getThreadName().equals(values[THREAD_NAME])) {
        throw new RuntimeException("Thread Name = " +
           info.getThreadName() + " expected = " + values[THREAD_NAME]);
    }
    if (info.getThreadState() != Thread.State.RUNNABLE) {
        throw new RuntimeException("Thread Name = " +
           info.getThreadName() + " expected = " + Thread.State.RUNNABLE);
    }
    if (info.getBlockedTime() != ((Long) values[BLOCKED_TIME]).longValue()) {
        throw new RuntimeException("blocked time = " +
           info.getBlockedTime() +
           " expected = " + values[BLOCKED_TIME]);
    }
    if (info.getBlockedCount() != ((Long) values[BLOCKED_COUNT]).longValue()) {
        throw new RuntimeException("blocked count = " +
           info.getBlockedCount() +
           " expected = " + values[BLOCKED_COUNT]);
    }
    if (info.getWaitedTime() != ((Long) values[WAITED_TIME]).longValue()) {
        throw new RuntimeException("waited time = " +
           info.getWaitedTime() +
           " expected = " + values[WAITED_TIME]);
    }
    if (info.getWaitedCount() != ((Long) values[WAITED_COUNT]).longValue()) {
        throw new RuntimeException("waited count = " +
           info.getWaitedCount() +
           " expected = " + values[WAITED_COUNT]);
    }
    if (!info.getLockName().equals(values[LOCK_NAME])) {
        throw new RuntimeException("Lock Name = " +
           info.getLockName() + " expected = " + values[LOCK_NAME]);
    }
    if (info.getLockOwnerId() !=
            ((Long) values[LOCK_OWNER_ID]).longValue()) {
        throw new RuntimeException(
           "LockOwner Id = " + info.getLockOwnerId() +
           " expected = " + values[LOCK_OWNER_ID]);
    }
    if (!info.getLockOwnerName().equals(values[LOCK_OWNER_NAME])) {
        throw new RuntimeException("LockOwner Name = " +
           info.getLockOwnerName() + " expected = " +
           values[LOCK_OWNER_NAME]);
    }
    if (!values[DAEMON].equals(info.isDaemon())) {
        throw new RuntimeException("Daemon = " +
           info.isDaemon() + " expected = " +
           values[DAEMON]);
    }

    checkStackTrace(info.getStackTrace());

    checkLockInfo(info.getLockInfo());
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:59,代码来源:ThreadInfoCompositeData.java

示例15: asString

import java.lang.management.ThreadInfo; //导入方法依赖的package包/类
static String asString(ThreadInfo inf) {
    StringBuilder sb = new StringBuilder();
    sb.append("\"").append(inf.getThreadName()).append("\"")
            .append(inf.isDaemon() ? " daemon" : "")
            .append(" prio=").append(inf.getPriority())
            .append(" Id=").append(inf.getThreadId())
            .append(" ").append(inf.getThreadState());
    if (inf.getLockName() != null) {
        sb.append(" on ").append(inf.getLockName());
    }
    if (inf.getLockOwnerName() != null) {
        sb.append(" owned by \"").append(inf.getLockOwnerName())
                .append("\" Id=").append(inf.getLockOwnerId());
    }
    if (inf.isSuspended()) {
        sb.append(" (suspended)");
    }
    if (inf.isInNative()) {
        sb.append(" (in native)");
    }
    sb.append('\n');
    int i = 0;
    StackTraceElement[] stackTrace = inf.getStackTrace();
    for (; i < stackTrace.length; i++) {
        StackTraceElement ste = stackTrace[i];
        sb.append("\tat ").append(ste.toString());
        sb.append('\n');
        if (i == 0 && inf.getLockInfo() != null) {
            Thread.State ts = inf.getThreadState();
            switch (ts) {
                case BLOCKED:
                    sb.append("\t-  blocked on ").append(inf.getLockInfo());
                    sb.append('\n');
                    break;
                case WAITING:
                    sb.append("\t-  waiting on ").append(inf.getLockInfo());
                    sb.append('\n');
                    break;
                case TIMED_WAITING:
                    sb.append("\t-  waiting on ").append(inf.getLockInfo());
                    sb.append('\n');
                    break;
                default:
            }
        }

        for (MonitorInfo mi : inf.getLockedMonitors()) {
            if (mi.getLockedStackDepth() == i) {
                sb.append("\t-  locked ").append(mi);
                sb.append('\n');
            }
        }
    }
    if (i < stackTrace.length) {
       sb.append("\t...");
       sb.append('\n');
    }

    LockInfo[] locks = inf.getLockedSynchronizers();
    if (locks.length > 0) {
       sb.append("\n\tNumber of locked synchronizers = ").append(locks.length);
       sb.append('\n');
       for (LockInfo li : locks) {
           sb.append("\t- ").append(li);
           sb.append('\n');
       }
    }
    sb.append('\n');
    return sb.toString();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:71,代码来源:TestConfigurationLock.java


注:本文中的java.lang.management.ThreadInfo.getLockOwnerName方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。