Author: zothar
Date: 2006-06-04 04:29:29 +0000 (Sun, 04 Jun 2006)
New Revision: 9038
Modified:
trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
Log:
Add expanded information to an IOException I was getting with Debian Sarge
Linux running IBM's 1.5 JVM on a PowerPPC eMac. Perhaps we should check for a
2 GB limit on startup and report if a problem?
Modified: trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
===================================================================
--- trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2006-06-04
04:17:21 UTC (rev 9037)
+++ trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2006-06-04
04:29:29 UTC (rev 9038)
@@ -183,7 +183,16 @@
byte[] header = new byte[headerBlockSize];
byte[] data = new byte[dataBlockSize];
synchronized(chkStore) {
-
chkStore.seek(storeBlock.offset*(long)(dataBlockSize+headerBlockSize));
+ long seekTarget =
storeBlock.offset*(long)(dataBlockSize+headerBlockSize);
+ try {
+ chkStore.seek(seekTarget);
+ } catch (IOException ioe) {
+ if(seekTarget > (2*1024*1024*1024))
+ Logger.error(this, "Environment
does not support files greater than 2 GB?");
+ System.out.println("Environment
does not support files greater than 2 GB? (exception to follow)");
+ Logger.error(this, "Caught IOException
on chkStore.seek("+seekTarget+")");
+ throw ioe;
+ }
chkStore.readFully(header);
chkStore.readFully(data);
}
@@ -520,7 +529,15 @@
DatabaseEntry blockDBE = new DatabaseEntry();
storeBlockTupleBinding.objectToEntry(storeBlock,
blockDBE);
chkDB.put(t,routingkeyDBE,blockDBE);
- chkStore.seek(byteOffset);
+ try {
+ chkStore.seek(byteOffset);
+ } catch (IOException ioe) {
+ if(byteOffset > (2*1024*1024*1024))
+ Logger.error(this, "Environment does not support
files greater than 2 GB?");
+ System.out.println("Environment does not support
files greater than 2 GB? (exception to follow)");
+ Logger.error(this, "Caught IOException on
chkStore.seek("+byteOffset+")");
+ throw ioe;
+ }
chkStore.write(header);
chkStore.write(data);
t.commit();