mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-24 01:15:29 +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()) {
|
||||
case "provider": //$NON-NLS-1$
|
||||
// TODO check for enablement
|
||||
try {
|
||||
SafeRunner.run(() -> {
|
||||
IToolChainProvider provider = (IToolChainProvider) element
|
||||
.createExecutableExtension("class"); //$NON-NLS-1$
|
||||
providers.put(element.getAttribute("id"), provider); //$NON-NLS-1$
|
||||
provider.init(this);
|
||||
} catch (CoreException e) {
|
||||
CCorePlugin.log(e);
|
||||
}
|
||||
provider.init(ToolChainManager.this);
|
||||
});
|
||||
break;
|
||||
case "type": //$NON-NLS-1$
|
||||
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) {
|
||||
IConfigurationElement element = providerElements.get(providerId);
|
||||
if (element != null) {
|
||||
provider = (IToolChainProvider) element.createExecutableExtension("class"); //$NON-NLS-1$
|
||||
providers.put(providerId, provider);
|
||||
SafeRunner.run(() ->{
|
||||
IToolChainProvider provider2 = (IToolChainProvider) element.createExecutableExtension("class"); //$NON-NLS-1$
|
||||
providers.put(providerId, provider2);
|
||||
provider2.init(ToolChainManager.this);
|
||||
});
|
||||
return providers.get(providerId);
|
||||
}
|
||||
}
|
||||
return provider;
|
||||
|
|
Loading…
Add table
Reference in a new issue