Bug 507546 - fixed IllegalArgumentException on code mining dispose

Change-Id: Ia1ae9e513b023fc33026a6cdd73d2fd16159bdbb
Reviewed-on: https://git.eclipse.org/r/c/platform/eclipse.platform.debug/+/190795
Tested-by: Andrey Loskutov <loskutov@gmx.de>
Reviewed-by: Andrey Loskutov <loskutov@gmx.de>
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/codemining/DebugValueCodeMiningProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/codemining/DebugValueCodeMiningProvider.java
index b960305..96d6d7c 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/codemining/DebugValueCodeMiningProvider.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/codemining/DebugValueCodeMiningProvider.java
@@ -34,8 +34,8 @@
 
 public class DebugValueCodeMiningProvider extends AbstractCodeMiningProvider {
 
-	private boolean alreadyListening;
-	private IDebugEventSetListener listener;
+	private volatile boolean alreadyListening;
+	private volatile IDebugEventSetListener listener;
 
 	@Override
 	public CompletableFuture<List<? extends ICodeMining>> provideCodeMinings(ITextViewer viewer,
@@ -84,6 +84,8 @@
 
 	@Override
 	public void dispose() {
-		DebugPlugin.getDefault().removeDebugEventListener(listener);
+		if (listener != null) {
+			DebugPlugin.getDefault().removeDebugEventListener(listener);
+		}
 	}
 }