402585: NPE in UiUsageMonitorPlugin.stop

Change-Id: Iefc191ee7886ee5c3b8572962ba3779fc0bd863c
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=402585
diff --git a/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/UiUsageMonitorPlugin.java b/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/UiUsageMonitorPlugin.java
index 5e9829b..b3b369d 100644
--- a/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/UiUsageMonitorPlugin.java
+++ b/org.eclipse.mylyn.monitor.usage/src/org/eclipse/mylyn/internal/monitor/usage/UiUsageMonitorPlugin.java
@@ -52,6 +52,7 @@
 /**
  * @author Mik Kersten
  * @author Shawn Minto
+ * @author Frank Becker
  */
 public class UiUsageMonitorPlugin extends AbstractUIPlugin {
 
@@ -258,8 +259,9 @@
 	}
 
 	public boolean isObfuscationEnabled() {
-		return UiUsageMonitorPlugin.getDefault().getPreferenceStore().getBoolean(
-				MonitorPreferenceConstants.PREF_MONITORING_OBFUSCATE)
+		return UiUsageMonitorPlugin.getDefault()
+				.getPreferenceStore()
+				.getBoolean(MonitorPreferenceConstants.PREF_MONITORING_OBFUSCATE)
 				|| (studyParameters != null && studyParameters.forceObfuscation());
 	}
 
@@ -286,10 +288,14 @@
 		// ContextCore.getPluginPreferences().removePropertyChangeListener(DATA_DIR_MOVE_LISTENER);
 
 		MonitorUiPlugin.getDefault().removeWindowPerspectiveListener(perspectiveMonitor);
-		workbench.getActivitySupport().getActivityManager().removeActivityManagerListener(activityMonitor);
-		if (workbench.getDisplay() != null && !workbench.getDisplay().isDisposed()) {
-			workbench.getDisplay().removeFilter(SWT.Selection, menuMonitor);
-			workbench.removeWindowListener(windowMonitor);
+		if (workbench != null) {
+			if (workbench.getActivitySupport() != null) {
+				workbench.getActivitySupport().getActivityManager().removeActivityManagerListener(activityMonitor);
+			}
+			if (workbench.getDisplay() != null && !workbench.getDisplay().isDisposed()) {
+				workbench.getDisplay().removeFilter(SWT.Selection, menuMonitor);
+				workbench.removeWindowListener(windowMonitor);
+			}
 		}
 
 		// uninstallBrowserMonitor(workbench);
@@ -366,15 +372,18 @@
 
 	public Date getLastTransmitDate() {
 		Date lastTransmit;
-		if (UiUsageMonitorPlugin.getDefault().getPreferenceStore().contains(
-				MonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE)) {
+		if (UiUsageMonitorPlugin.getDefault()
+				.getPreferenceStore()
+				.contains(MonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE)) {
 
-			lastTransmit = new Date(UiUsageMonitorPlugin.getDefault().getPreferenceStore().getLong(
-					MonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE));
+			lastTransmit = new Date(UiUsageMonitorPlugin.getDefault()
+					.getPreferenceStore()
+					.getLong(MonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE));
 		} else {
 			lastTransmit = new Date();
-			UiUsageMonitorPlugin.getDefault().getPreferenceStore().setValue(
-					MonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE, lastTransmit.getTime());
+			UiUsageMonitorPlugin.getDefault()
+					.getPreferenceStore()
+					.setValue(MonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE, lastTransmit.getTime());
 		}
 		return lastTransmit;
 	}