Merge pull request #14572: [BEAM-12118] Fix racy precondition exception in QueueingBeamFnDataClient

diff --git a/sdks/java/harness/src/main/java/org/apache/beam/fn/harness/data/QueueingBeamFnDataClient.java b/sdks/java/harness/src/main/java/org/apache/beam/fn/harness/data/QueueingBeamFnDataClient.java
index a1180f9..21d0b14 100644
--- a/sdks/java/harness/src/main/java/org/apache/beam/fn/harness/data/QueueingBeamFnDataClient.java
+++ b/sdks/java/harness/src/main/java/org/apache/beam/fn/harness/data/QueueingBeamFnDataClient.java
@@ -97,7 +97,7 @@
     }
 
     boolean isEmpty() {
-      return queue.isEmpty();
+      return queue.isEmpty() || queue.peek() == POISON;
     }
   }