diff --git a/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java b/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java index 809e8f9b2..f1f795a8c 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java @@ -1938,8 +1938,7 @@ abstract class JdbcDatabase implements Database { String sql = "SELECT expiry FROM statuses" + " WHERE contactId = ? AND state = ?" + " AND groupShared = TRUE AND messageShared = TRUE" - + " AND deleted = FALSE" - + " AND seen = FALSE AND requested = FALSE" + + " AND deleted = FALSE AND seen = FALSE" + " ORDER BY expiry LIMIT 1"; ps = txn.prepareStatement(sql); ps.setInt(1, c.getInt()); diff --git a/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabaseTest.java b/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabaseTest.java index a0f040c20..32d4e5faa 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabaseTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabaseTest.java @@ -1653,6 +1653,10 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { db.setMessageShared(txn, messageId); assertEquals(0, db.getNextSendTime(txn, contactId)); + // Mark the message as requested - it should still be sendable + db.raiseRequestedFlag(txn, contactId, messageId); + assertEquals(0, db.getNextSendTime(txn, contactId)); + // Update the message's expiry time as though we sent it - now the // message should be sendable after one round-trip db.updateExpiryTime(txn, contactId, messageId, 1000);