diff --git a/bramble-core/src/main/java/org/briarproject/bramble/sync/DuplexOutgoingSession.java b/bramble-core/src/main/java/org/briarproject/bramble/sync/DuplexOutgoingSession.java index fc007cd0f..4e1e74fac 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/sync/DuplexOutgoingSession.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/sync/DuplexOutgoingSession.java @@ -166,6 +166,9 @@ class DuplexOutgoingSession implements SyncSession, EventListener { dataToFlush = true; } } + // Write any records that were already in the queue + ThrowingRunnable task; + while ((task = writerTasks.poll()) != null) task.run(); streamWriter.sendEndOfStream(); } catch (InterruptedException e) { LOG.info("Interrupted while waiting for a record to write"); diff --git a/bramble-core/src/main/java/org/briarproject/bramble/sync/SimplexOutgoingSession.java b/bramble-core/src/main/java/org/briarproject/bramble/sync/SimplexOutgoingSession.java index 9e1e62909..c2b1952fd 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/sync/SimplexOutgoingSession.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/sync/SimplexOutgoingSession.java @@ -95,6 +95,9 @@ class SimplexOutgoingSession implements SyncSession, EventListener { if (task == CLOSE) break; task.run(); } + // Write any records that were already in the queue + ThrowingRunnable task; + while ((task = writerTasks.poll()) != null) task.run(); streamWriter.sendEndOfStream(); } catch (InterruptedException e) { LOG.info("Interrupted while waiting for a record to write");