void (@NotNull SuspendContextImpl suspendContext) { ThreadDescriptorImpl threadDescriptor = ((ThreadDescriptorImpl)myNode.getDescriptor()); ThreadReferenceProxyImpl threadProxy = threadDescriptor.getThreadReference(); if (!threadProxy.isCollected() && getDebuggerContext().getDebugProcess().getSuspendManager().isSuspended(threadProxy)) { int status = threadProxy.status(); if (!(status == ThreadReference.THREAD_STATUS_UNKNOWN) && !(status == ThreadReference.THREAD_STATUS_NOT_STARTED) && !(status == ThreadReference.THREAD_STATUS_ZOMBIE)) { try { for (StackFrameProxyImpl stackFrame : threadProxy.frames()) { //Method method = stackFrame.location().method(); //ToDo :check whether is synthetic if (shouldDisplay(method)) { myChildren.add(myNodeManager.createNode(myNodeManager.getStackFrameDescriptor(threadDescriptor, stackFrame), getDebuggerContext().createEvaluationContext())); } } catch (EvaluateException e) { myChildren.clear(); myChildren.add(myNodeManager.createMessageNode(e.getMessage())); LOG.debug(e); //LOG.assertTrue(false); // if we pause during evaluation of this method the exception is thrown // private static void longMethod() { // try { // Thread.sleep(100000); // } catch (InterruptedException e) { // e.printStackTrace(); // } // } } } } updateUI(true); } }