diff options
author | Mark Spruiell <mes@zeroc.com> | 2010-02-22 12:44:47 -0800 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2010-02-22 12:44:47 -0800 |
commit | fbcf50d586cc21f1252649cfbb1ca693e73e5fd1 (patch) | |
tree | 10734d15f6c281247e80b18eaa27078747e7bbe1 /java/src/Freeze/SharedDbEnv.java | |
parent | Bug 4692 - 'make install' does not create symbolic link by default (diff) | |
download | ice-fbcf50d586cc21f1252649cfbb1ca693e73e5fd1.tar.bz2 ice-fbcf50d586cc21f1252649cfbb1ca693e73e5fd1.tar.xz ice-fbcf50d586cc21f1252649cfbb1ca693e73e5fd1.zip |
bug 4694 - Clean up Freeze lock on Java error
Diffstat (limited to 'java/src/Freeze/SharedDbEnv.java')
-rw-r--r-- | java/src/Freeze/SharedDbEnv.java | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/java/src/Freeze/SharedDbEnv.java b/java/src/Freeze/SharedDbEnv.java index ab633d709c1..1bd5ccf232d 100644 --- a/java/src/Freeze/SharedDbEnv.java +++ b/java/src/Freeze/SharedDbEnv.java @@ -390,6 +390,11 @@ public class SharedDbEnv implements com.sleepycat.db.ErrorHandler, Runnable cleanup(); throw ex; } + catch(java.lang.Error ex) + { + cleanup(); + throw ex; + } _refCount = 1; } @@ -406,19 +411,16 @@ public class SharedDbEnv implements com.sleepycat.db.ErrorHandler, Runnable notify(); } - for(;;) + while(_thread != null) { - if(_thread != null) + try + { + _thread.join(); + _thread = null; + break; + } + catch(InterruptedException ex) { - try - { - _thread.join(); - _thread = null; - break; - } - catch(InterruptedException ex) - { - } } } |