diff options
Diffstat (limited to 'libjava/java/util')
-rw-r--r-- | libjava/java/util/Timer.java | 6 | ||||
-rw-r--r-- | libjava/java/util/prefs/AbstractPreferences.java | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/libjava/java/util/Timer.java b/libjava/java/util/Timer.java index e4eb246..3c7223b 100644 --- a/libjava/java/util/Timer.java +++ b/libjava/java/util/Timer.java @@ -343,6 +343,12 @@ public class Timer { task.run(); } + catch (ThreadDeath death) + { + // If an exception escapes, the Timer becomes invalid. + queue.stop(); + throw death; + } catch (Throwable t) { /* ignore all errors */ diff --git a/libjava/java/util/prefs/AbstractPreferences.java b/libjava/java/util/prefs/AbstractPreferences.java index 69f4426..159a887 100644 --- a/libjava/java/util/prefs/AbstractPreferences.java +++ b/libjava/java/util/prefs/AbstractPreferences.java @@ -550,6 +550,8 @@ public abstract class AbstractPreferences extends Preferences { String value; try { value = getSpi(key); + } catch (ThreadDeath death) { + throw death; } catch (Throwable t) { value = null; } |