mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-10 17:55:39 +02:00
Bug 532209: Run extensions in SafeRunners
Change-Id: Icf748b9769c7a454cf3bc4b4a27fff896ce38086
This commit is contained in:
parent
a5203143e9
commit
a8af87b6ba
1 changed files with 9 additions and 7 deletions
|
@ -59,14 +59,12 @@ public class ToolChainManager implements IToolChainManager {
|
||||||
switch (element.getName()) {
|
switch (element.getName()) {
|
||||||
case "provider": //$NON-NLS-1$
|
case "provider": //$NON-NLS-1$
|
||||||
// TODO check for enablement
|
// TODO check for enablement
|
||||||
try {
|
SafeRunner.run(() -> {
|
||||||
IToolChainProvider provider = (IToolChainProvider) element
|
IToolChainProvider provider = (IToolChainProvider) element
|
||||||
.createExecutableExtension("class"); //$NON-NLS-1$
|
.createExecutableExtension("class"); //$NON-NLS-1$
|
||||||
providers.put(element.getAttribute("id"), provider); //$NON-NLS-1$
|
providers.put(element.getAttribute("id"), provider); //$NON-NLS-1$
|
||||||
provider.init(this);
|
provider.init(ToolChainManager.this);
|
||||||
} catch (CoreException e) {
|
});
|
||||||
CCorePlugin.log(e);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case "type": //$NON-NLS-1$
|
case "type": //$NON-NLS-1$
|
||||||
toolChainTypeNames.put(element.getAttribute("id"), element.getAttribute("name")); //$NON-NLS-1$ //$NON-NLS-2$
|
toolChainTypeNames.put(element.getAttribute("id"), element.getAttribute("name")); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
|
@ -169,8 +167,12 @@ public class ToolChainManager implements IToolChainManager {
|
||||||
if (provider == null) {
|
if (provider == null) {
|
||||||
IConfigurationElement element = providerElements.get(providerId);
|
IConfigurationElement element = providerElements.get(providerId);
|
||||||
if (element != null) {
|
if (element != null) {
|
||||||
provider = (IToolChainProvider) element.createExecutableExtension("class"); //$NON-NLS-1$
|
SafeRunner.run(() ->{
|
||||||
providers.put(providerId, provider);
|
IToolChainProvider provider2 = (IToolChainProvider) element.createExecutableExtension("class"); //$NON-NLS-1$
|
||||||
|
providers.put(providerId, provider2);
|
||||||
|
provider2.init(ToolChainManager.this);
|
||||||
|
});
|
||||||
|
return providers.get(providerId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return provider;
|
return provider;
|
||||||
|
|
Loading…
Add table
Reference in a new issue