From e1f36037b58b02e12ae5d09773ecb481e72f3381 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Mon, 17 Oct 2011 12:02:55 +0200 Subject: [PATCH] plugin exception tolerance (SCL-3697) --- .../compiler/options/CompilerConfigurable.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/java/compiler/impl/src/com/intellij/compiler/options/CompilerConfigurable.java b/java/compiler/impl/src/com/intellij/compiler/options/CompilerConfigurable.java index 576c43a07979..a25e7a5d2953 100644 --- a/java/compiler/impl/src/com/intellij/compiler/options/CompilerConfigurable.java +++ b/java/compiler/impl/src/com/intellij/compiler/options/CompilerConfigurable.java @@ -21,6 +21,7 @@ import com.intellij.compiler.CompilerSettingsFactory; import com.intellij.compiler.impl.rmiCompiler.RmicConfiguration; import com.intellij.openapi.compiler.CompilerBundle; import com.intellij.openapi.compiler.options.ExcludedEntriesConfigurable; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.fileChooser.FileChooserDescriptor; import com.intellij.openapi.options.Configurable; @@ -41,6 +42,8 @@ import java.util.Comparator; import java.util.List; public class CompilerConfigurable implements SearchableConfigurable.Parent { + private static final Logger LOG = Logger.getInstance("#com.intellij.compiler.options.CompilerConfigurable"); + private final Project myProject; private static final Icon ICON = IconLoader.getIcon("/general/configurableCompiler.png"); private final CompilerUIConfigurable myCompilerUIConfigurable; @@ -123,7 +126,15 @@ public class CompilerConfigurable implements SearchableConfigurable.Parent { final CompilerSettingsFactory[] factories = Extensions.getExtensions(CompilerSettingsFactory.EP_NAME, myProject); if (factories.length > 0) { for (CompilerSettingsFactory factory : factories) { - additional.add(factory.create(myProject)); + final Configurable configurable; + try { + configurable = factory.create(myProject); + } + catch (Exception e) { + LOG.error(e); + continue; + } + additional.add(configurable); } Collections.sort(additional, new Comparator() { public int compare(final Configurable o1, final Configurable o2) {