From 10f63ad60bf0363ee7cf15caf9c1959fc48d3f1f Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Thu, 22 Feb 2018 12:46:33 +0000
Subject: [PATCH] Include requested messages when getting next send time.

---
 .../main/java/org/briarproject/bramble/db/JdbcDatabase.java   | 3 +--
 .../java/org/briarproject/bramble/db/JdbcDatabaseTest.java    | 4 ++++
 2 files changed, 5 insertions(+), 2 deletions(-)

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 809e8f9b2d..f1f795a8c1 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 a0f040c206..32d4e5faa4 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);
-- 
GitLab