boolean (EvaluationContext evaluationContext) { if (!myBatchEvaluatorChecked) { myBatchEvaluatorChecked = true; if (DebuggerUtilsImpl.isRemote(myDebugProcess)) { // optimization: for remote sessions the BatchEvaluator is not there for sure return false; } ThreadReferenceProxy thread = evaluationContext.getSuspendContext().getThread(); if (thread == null) { return false; } ThreadReference threadReference = thread.getThreadReference(); if (threadReference == null) { return false; } try { myBatchEvaluatorClass = (ClassType)myDebugProcess.findClass(evaluationContext, BatchEvaluatorServer.class.getName(), evaluationContext.getClassLoader()); } catch (EvaluateException ignored) { } if (myBatchEvaluatorClass != null) { myBatchEvaluatorMethod = DebuggerUtils.findMethod(myBatchEvaluatorClass, "evaluate", "([Ljava/lang/Object;)Ljava/lang/String;"); } } return myBatchEvaluatorMethod != null; }