Author: toad
Date: 2006-10-06 17:12:27 +0000 (Fri, 06 Oct 2006)
New Revision: 10636
Modified:
trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
Log:
Close the Environment if we can't open it.
Modified: trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
===================================================================
--- trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2006-10-06
17:03:18 UTC (rev 10635)
+++ trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2006-10-06
17:12:27 UTC (rev 10636)
@@ -107,20 +107,28 @@
this.maxChkBlocks=maxChkBlocks;
- // Initialize environment
- EnvironmentConfig envConfig = new EnvironmentConfig();
- envConfig.setAllowCreate(true);
- envConfig.setTransactional(true);
- envConfig.setTxnWriteNoSync(true);
File dir = new File(storeDir);
if(!dir.exists())
dir.mkdir();
File dbDir = new File(dir,"database");
if(!dbDir.exists())
dbDir.mkdir();
-
- environment = new Environment(dbDir, envConfig);
+ Environment env = null;
+ // Initialize environment
+ try {
+ EnvironmentConfig envConfig = new EnvironmentConfig();
+ envConfig.setAllowCreate(true);
+ envConfig.setTransactional(true);
+ envConfig.setTxnWriteNoSync(true);
+ env = new Environment(dbDir, envConfig);
+ } catch (DatabaseException e) {
+ if(env != null)
+ env.close();
+ throw e;
+ }
+ environment = env;
+
// Initialize CHK database
DatabaseConfig dbConfig = new DatabaseConfig();
dbConfig.setAllowCreate(true);