From 4613badeb362d1d1fcd41225dec8506258cb12c2 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Fri, 29 Nov 2013 15:31:01 +0100 Subject: [PATCH] fix NPEs --- .../debugger/engine/DebugProcessImpl.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java index dc9d1e9e1ec7..a5b1be2ba733 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java @@ -99,7 +99,7 @@ public abstract class DebugProcessImpl implements DebugProcess { private final Project myProject; private final RequestManagerImpl myRequestManager; - private VirtualMachineProxyImpl myVirtualMachineProxy = null; + private volatile VirtualMachineProxyImpl myVirtualMachineProxy = null; protected EventDispatcher myDebugProcessDispatcher = EventDispatcher.create(DebugProcessListener.class); protected EventDispatcher myEvaluationDispatcher = EventDispatcher.create(EvaluationListener.class); @@ -685,11 +685,13 @@ public abstract class DebugProcessImpl implements DebugProcess { } public boolean canRedefineClasses() { - return myVirtualMachineProxy != null && myVirtualMachineProxy.canRedefineClasses(); + final VirtualMachineProxyImpl vm = myVirtualMachineProxy; + return vm != null && vm.canRedefineClasses(); } public boolean canWatchFieldModification() { - return myVirtualMachineProxy != null && myVirtualMachineProxy.canWatchFieldModification(); + final VirtualMachineProxyImpl vm = myVirtualMachineProxy; + return vm != null && vm.canWatchFieldModification(); } public boolean isInInitialState() { @@ -714,10 +716,11 @@ public abstract class DebugProcessImpl implements DebugProcess { public VirtualMachineProxyImpl getVirtualMachineProxy() { DebuggerManagerThreadImpl.assertIsManagerThread(); - if (myVirtualMachineProxy == null) { + final VirtualMachineProxyImpl vm = myVirtualMachineProxy; + if (vm == null) { throw new VMDisconnectedException(); } - return myVirtualMachineProxy; + return vm; } public void appendPositionManager(final PositionManager positionManager) { @@ -1820,7 +1823,8 @@ public abstract class DebugProcessImpl implements DebugProcess { } public boolean isPausePressed() { - return myVirtualMachineProxy != null && myVirtualMachineProxy.isPausePressed(); + final VirtualMachineProxyImpl vm = myVirtualMachineProxy; + return vm != null && vm.isPausePressed(); } public DebuggerCommandImpl createPauseCommand() {