summaryrefslogtreecommitdiff
path: root/java/src/Freeze/SharedDbEnv.java
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2010-02-22 12:44:47 -0800
committerMark Spruiell <mes@zeroc.com>2010-02-22 12:44:47 -0800
commitfbcf50d586cc21f1252649cfbb1ca693e73e5fd1 (patch)
tree10734d15f6c281247e80b18eaa27078747e7bbe1 /java/src/Freeze/SharedDbEnv.java
parentBug 4692 - 'make install' does not create symbolic link by default (diff)
downloadice-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.java24
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)
- {
- }
}
}