diff --git a/briar-core/src/org/briarproject/db/JdbcDatabase.java b/briar-core/src/org/briarproject/db/JdbcDatabase.java index 72c35f358c81f08473d0b7206facd5130203c7ff..3178847e7d26791cc6c463ffedda19bd3e2c321b 100644 --- a/briar-core/src/org/briarproject/db/JdbcDatabase.java +++ b/briar-core/src/org/briarproject/db/JdbcDatabase.java @@ -1205,8 +1205,10 @@ abstract class JdbcDatabase implements Database<Connection> { ps = txn.prepareStatement(sql); rs = ps.executeQuery(); List<GroupStatus> groups = new ArrayList<GroupStatus>(); + Set<GroupId> ids = new HashSet<GroupId>(); while(rs.next()) { GroupId id = new GroupId(rs.getBytes(1)); + if(!ids.add(id)) throw new DbStateException(); String name = rs.getString(2); byte[] salt = rs.getBytes(3); Group group = new Group(id, name, salt); @@ -1226,6 +1228,7 @@ abstract class JdbcDatabase implements Database<Connection> { rs = ps.executeQuery(); while(rs.next()) { GroupId id = new GroupId(rs.getBytes(1)); + if(!ids.add(id)) throw new DbStateException(); String name = rs.getString(2); byte[] salt = rs.getBytes(3); Group group = new Group(id, name, salt); @@ -2246,10 +2249,12 @@ abstract class JdbcDatabase implements Database<Connection> { ps.setLong(2, now); rs = ps.executeQuery(); List<Group> groups = new ArrayList<Group>(); + Set<GroupId> ids = new HashSet<GroupId>(); long version = 0; int txCount = 0; while(rs.next()) { GroupId id = new GroupId(rs.getBytes(1)); + if(!ids.add(id)) throw new DbStateException(); String name = rs.getString(2); byte[] salt = rs.getBytes(3); groups.add(new Group(id, name, salt));