From b99a5960cb0aea2b84bd38a40a70e739212d8f3e Mon Sep 17 00:00:00 2001 From: Eugene Tarassov Date: Thu, 28 May 2015 21:27:25 -0700 Subject: TCF Debugger: fixed NPE when TCFMemoryBlockRetrieval.MemoryBlock is disposed --- .../debug/ui/model/TCFMemoryBlockRetrieval.java | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFMemoryBlockRetrieval.java b/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFMemoryBlockRetrieval.java index 57dec4626..ae950a886 100644 --- a/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFMemoryBlockRetrieval.java +++ b/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFMemoryBlockRetrieval.java @@ -138,15 +138,17 @@ class TCFMemoryBlockRetrieval implements IMemoryBlockRetrievalExtension { @Override public void doneCreate(IToken token, Exception error, IExpressions.Expression context) { if (disposed) { - IExpressions exps = channel.getRemoteService(IExpressions.class); - exps.dispose(context.getID(), new IExpressions.DoneDispose() { - @Override - public void doneDispose(IToken token, Exception error) { - if (error == null) return; - if (channel.getState() != IChannel.STATE_OPEN) return; - Activator.log("Error disposing remote expression evaluator", error); - } - }); + if (context != null) { + IExpressions exps = channel.getRemoteService(IExpressions.class); + exps.dispose(context.getID(), new IExpressions.DoneDispose() { + @Override + public void doneDispose(IToken token, Exception error) { + if (error == null) return; + if (channel.getState() != IChannel.STATE_OPEN) return; + Activator.log("Error disposing remote expression evaluator", error); + } + }); + } return; } set(token, error, context); -- cgit v1.2.3