1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-22 22:22:11 +02:00

Fix NPE on initializing the external executables state service provider

- part 2
This commit is contained in:
Uwe Stieber 2016-03-19 09:18:30 +01:00
parent 6b26ac987b
commit 23e5ed3b10
2 changed files with 7 additions and 12 deletions

View file

@ -10,8 +10,10 @@
package org.eclipse.tm.terminal.view.ui.internal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.tm.terminal.view.ui.local.showin.ExternalExecutablesManager;
import org.eclipse.ui.AbstractSourceProvider;
import org.eclipse.ui.ISources;
@ -20,13 +22,11 @@ import org.eclipse.ui.ISources;
*/
public class ExternalExecutablesState extends AbstractSourceProvider {
public final static String CONFIGURED_STATE = "org.eclipse.tm.terminal.external.executable.configured"; //$NON-NLS-1$
private boolean enabled = false;
private boolean enabled;
public ExternalExecutablesState() {
// Cannot initialize the state here by calling ExternalExecutablesManager.load(),
// because it will trigger a ExternalExectuablesManger.save() which tries to call
// the enable() or disable() method here. Better initialize the state from the
// load method itself.
List<Map<String, String>> externals = ExternalExecutablesManager.load();
this.enabled = (externals != null && !externals.isEmpty());
}
@Override

View file

@ -166,11 +166,6 @@ public class ExternalExecutablesManager {
gitBashSearchDone = true;
}
// Make sure the source provider is initialized properly
ISourceProviderService sourceProviderService = (ISourceProviderService) PlatformUI.getWorkbench().getService(ISourceProviderService.class);
ExternalExecutablesState stateService = (ExternalExecutablesState) sourceProviderService.getSourceProvider(ExternalExecutablesState.CONFIGURED_STATE);
if (l.isEmpty()) stateService.disable(); else stateService.enable();
return l;
}
@ -212,7 +207,7 @@ public class ExternalExecutablesManager {
@SuppressWarnings("unused")
boolean s = f.delete();
stateService.disable();
if (stateService != null) stateService.disable();
} else {
FileWriter w = null;
@ -234,7 +229,7 @@ public class ExternalExecutablesManager {
w = new FileWriter(f);
data.store(w, null);
stateService.enable();
if (stateService != null) stateService.enable();
} catch (Exception e) {
if (Platform.inDebugMode()) {
e.printStackTrace();