boolean (ThreadState state) { if (myOriginalState.isEDT()) return false; if (!Objects.equals(state.myState, myOriginalState.myState)) return false; if (state.myEmptyStackTrace != myOriginalState.myEmptyStackTrace) return false; if (state.isDaemon != myOriginalState.isDaemon) return false; if (!Objects.equals(state.myJavaThreadState, myOriginalState.myJavaThreadState)) return false; if (!Objects.equals(state.myThreadStateDetail, myOriginalState.myThreadStateDetail)) return false; if (!Objects.equals(state.myExtraState, myOriginalState.myExtraState)) return false; if (!Comparing.haveEqualElements(state.myThreadsWaitingForMyLock, myOriginalState.myThreadsWaitingForMyLock)) return false; if (!Comparing.haveEqualElements(state.myDeadlockedThreads, myOriginalState.myDeadlockedThreads)) return false; if (!Objects.equals(getMergeableStackTrace(state.myStackTrace, true), getMergeableStackTrace(myOriginalState.myStackTrace, true))) return false; myCounter++; return true; }