diff options
author | Darin Wright | 2004-05-13 18:14:30 +0000 |
---|---|---|
committer | Darin Wright | 2004-05-13 18:14:30 +0000 |
commit | a74f7c97388ea9a290e53589879cedcb4364aaf0 (patch) | |
tree | c27e573102b5c8f62cc510a2ad810e7bd17d27f3 /org.eclipse.core.variables/src | |
parent | f68d36e73f629c82842855ec14529bcd7363ab7a (diff) | |
download | eclipse.platform.debug-a74f7c97388ea9a290e53589879cedcb4364aaf0.tar.gz eclipse.platform.debug-a74f7c97388ea9a290e53589879cedcb4364aaf0.tar.xz eclipse.platform.debug-a74f7c97388ea9a290e53589879cedcb4364aaf0.zip |
Bug 61958 - dangerous practice of catching Throwable
Diffstat (limited to 'org.eclipse.core.variables/src')
-rw-r--r-- | org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java index 4c0241d9d..aa646f7d0 100644 --- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java +++ b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java @@ -22,6 +22,7 @@ import java.util.Map; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.FactoryConfigurationError; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; @@ -49,6 +50,7 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; /** * Singleton string variable manager. @@ -227,12 +229,24 @@ public class StringVariableManager implements IStringVariableManager { return; } Element root= null; + Throwable ex = null; try { - ByteArrayInputStream stream= new ByteArrayInputStream(variablesString.getBytes("UTF-8")); //$NON-NLS-1$ + ByteArrayInputStream stream = new ByteArrayInputStream(variablesString.getBytes("UTF-8")); //$NON-NLS-1$ DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder(); root = parser.parse(stream).getDocumentElement(); - } catch (Throwable throwable) { - VariablesPlugin.logMessage("An exception occurred while loading persisted value variables.", throwable); //$NON-NLS-1$ + } catch (UnsupportedEncodingException e) { + ex = e; + } catch (ParserConfigurationException e) { + ex = e; + } catch (FactoryConfigurationError e) { + ex = e; + } catch (SAXException e) { + ex = e; + } catch (IOException e) { + ex = e; + } + if (ex != null) { + VariablesPlugin.logMessage("An exception occurred while loading persisted value variables.", ex); //$NON-NLS-1$ return; } if (!root.getNodeName().equals(VALUE_VARIABLES_TAG)) { |