GEODE-1580: GemFireDeadlockDetectorDUnitTest.testDistributedDeadlockWithDLock
This doesn't fix the flaky test but while looking at it I found the output difficult to work with. I've added hexadecimal thread ID to stack traces in the deadlock-detector because geode log files have hexadecimal thread IDs while stack dumps have decimal. We need both in deadlock-detector output if we want to correlate artifacts without using a calculator. Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/f68c4160 Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/f68c4160 Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/f68c4160 Branch: refs/heads/develop Commit: f68c41600151b18bd096d7d1e77d6a5fcecce9d5 Parents: c8217f1 Author: Bruce Schuchardt <bschucha...@pivotal.io> Authored: Mon Dec 19 08:57:30 2016 -0800 Committer: Bruce Schuchardt <bschucha...@pivotal.io> Committed: Mon Dec 19 09:50:50 2016 -0800 ---------------------------------------------------------------------- .../apache/geode/distributed/internal/deadlock/LocalThread.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/geode/blob/f68c4160/geode-core/src/main/java/org/apache/geode/distributed/internal/deadlock/LocalThread.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/deadlock/LocalThread.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/deadlock/LocalThread.java index 1400b3f..498ac7c 100644 --- a/geode-core/src/main/java/org/apache/geode/distributed/internal/deadlock/LocalThread.java +++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/deadlock/LocalThread.java @@ -43,8 +43,9 @@ public class LocalThread implements Serializable, ThreadReference { private String generateThreadStack(ThreadInfo info) { // This is annoying, but the to string method on info sucks. StringBuilder result = new StringBuilder(); - result.append(info.getThreadName()).append(" ID=").append(info.getThreadId()).append(" state=") - .append(info.getThreadState()); + result.append(info.getThreadName()).append(" ID=0x") + .append(Long.toHexString(info.getThreadId())).append("(").append(info.getThreadId()) + .append(") state=").append(info.getThreadState()); if (info.getLockInfo() != null) {