check that vms match if class loader is null, otherwise we may take last result from the different debug session

This commit is contained in:
Egor.Ushakov
2016-07-06 18:29:10 +03:00
parent a516994054
commit 8b846f9d2b
@@ -52,9 +52,12 @@ public class TypeEvaluator implements Evaluator {
*/
public Object evaluate(EvaluationContextImpl context) throws EvaluateException {
ClassLoaderReference classLoader = context.getClassLoader();
Object lastRes = SoftReference.dereference(myLastResult);
ReferenceType lastRes = SoftReference.dereference(myLastResult);
if (lastRes != null && classLoader == SoftReference.dereference(myLastClassLoader)) {
return lastRes;
// if class loader is null, check that vms match
if (classLoader != null || lastRes.virtualMachine().equals(context.getDebugProcess().getVirtualMachineProxy().getVirtualMachine())) {
return lastRes;
}
}
DebugProcessImpl debugProcess = context.getDebugProcess();
String typeName = myTypeName.getName(debugProcess);