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 809e8f9b2d8b4215678bb169eb0e50cc0ec949db..f1f795a8c1eb85cb33dd73c7894ad144a9649fde 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<Connection> { 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 a0f040c2067dac2d86137d95de328c543ccbc493..32d4e5faa4b36b6330f0eeb1c2ab404dde264d7d 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);