diff --git a/.classpath b/.classpath
index 2ed9bb6ee..88eeadcf4 100644
--- a/.classpath
+++ b/.classpath
@@ -15,5 +15,6 @@
+
diff --git a/components/net/sf/briar/db/H2Database.java b/components/net/sf/briar/db/H2Database.java
index 34e6647a2..82df78d04 100644
--- a/components/net/sf/briar/db/H2Database.java
+++ b/components/net/sf/briar/db/H2Database.java
@@ -1,6 +1,7 @@
package net.sf.briar.db;
import java.io.File;
+import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
@@ -13,6 +14,8 @@ import net.sf.briar.api.crypto.Password;
import net.sf.briar.api.db.DatabasePassword;
import net.sf.briar.api.db.DbException;
+import org.apache.commons.io.FileSystemUtils;
+
import com.google.inject.Inject;
/** Contains all the H2-specific code for the database. */
@@ -50,13 +53,17 @@ class H2Database extends JdbcDatabase {
}
public long getFreeSpace() throws DbException {
- File dir = home.getParentFile();
- long free = dir.getFreeSpace();
- long used = getDiskSpace(dir);
- long quota = maxSize - used;
- long min = Math.min(free, quota);
- if(LOG.isLoggable(Level.FINE)) LOG.fine("Free space: " + min);
- return min;
+ try {
+ File dir = home.getParentFile();
+ long free = FileSystemUtils.freeSpaceKb(dir.getAbsolutePath());
+ long used = getDiskSpace(dir);
+ long quota = maxSize - used;
+ long min = Math.min(free, quota);
+ if(LOG.isLoggable(Level.FINE)) LOG.fine("Free space: " + min);
+ return min;
+ } catch(IOException e) {
+ throw new DbException(e);
+ }
}
@Override
diff --git a/components/net/sf/briar/db/JdbcDatabase.java b/components/net/sf/briar/db/JdbcDatabase.java
index 4e648b351..44ba21db3 100644
--- a/components/net/sf/briar/db/JdbcDatabase.java
+++ b/components/net/sf/briar/db/JdbcDatabase.java
@@ -442,7 +442,8 @@ abstract class JdbcDatabase implements Database {
ps.setBytes(4, m.getAuthor().getBytes());
ps.setLong(5, m.getTimestamp());
ps.setInt(6, m.getSize());
- ps.setBlob(7, new ByteArrayInputStream(m.getBytes()));
+ byte[] raw = m.getBytes();
+ ps.setBinaryStream(7, new ByteArrayInputStream(raw), raw.length);
ps.setInt(8, 0);
int rowsAffected = ps.executeUpdate();
assert rowsAffected == 1;
diff --git a/components/net/sf/briar/invitation/InvitationWorker.java b/components/net/sf/briar/invitation/InvitationWorker.java
index cfa03930a..9b05d6329 100644
--- a/components/net/sf/briar/invitation/InvitationWorker.java
+++ b/components/net/sf/briar/invitation/InvitationWorker.java
@@ -75,7 +75,7 @@ class InvitationWorker implements Runnable {
try {
transports = databaseComponent.getTransports();
} catch(DbException e) {
- throw new IOException(e);
+ throw new IOException(e.getMessage());
}
FileOutputStream out = new FileOutputStream(invitationDat);
Writer w = writerFactory.createWriter(out);
diff --git a/components/net/sf/briar/protocol/SigningDigestingInputStream.java b/components/net/sf/briar/protocol/SigningDigestingInputStream.java
index d95768eff..a4871725f 100644
--- a/components/net/sf/briar/protocol/SigningDigestingInputStream.java
+++ b/components/net/sf/briar/protocol/SigningDigestingInputStream.java
@@ -41,7 +41,7 @@ class SigningDigestingInputStream extends FilterInputStream {
try {
signature.update(b);
} catch(SignatureException e) {
- throw new IOException(e);
+ throw new IOException(e.getMessage());
}
}
if(digesting) messageDigest.update(b);
@@ -52,7 +52,7 @@ class SigningDigestingInputStream extends FilterInputStream {
try {
signature.update(b, off, len);
} catch(SignatureException e) {
- throw new IOException(e);
+ throw new IOException(e.getMessage());
}
}
if(digesting) messageDigest.update(b, off, len);
diff --git a/components/net/sf/briar/protocol/SigningDigestingOutputStream.java b/components/net/sf/briar/protocol/SigningDigestingOutputStream.java
index 5b411c63b..6d72dc905 100644
--- a/components/net/sf/briar/protocol/SigningDigestingOutputStream.java
+++ b/components/net/sf/briar/protocol/SigningDigestingOutputStream.java
@@ -44,7 +44,7 @@ class SigningDigestingOutputStream extends FilterOutputStream {
try {
signature.update(b, off, len);
} catch(SignatureException e) {
- throw new IOException(e);
+ throw new IOException(e.getMessage());
}
}
if(digesting) messageDigest.update(b, off, len);
@@ -57,7 +57,7 @@ class SigningDigestingOutputStream extends FilterOutputStream {
try {
signature.update((byte) b);
} catch(SignatureException e) {
- throw new IOException(e);
+ throw new IOException(e.getMessage());
}
}
if(digesting) messageDigest.update((byte) b);