Skip to content

Commit e679b7d

Browse files
author
Dhriti Chopra
committed
test(storage): deliver mock errors asynchronously to prevent thread starvation deadlock
1 parent 3ff63b8 commit e679b7d

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

java-storage/google-cloud-storage/src/test/java/com/google/cloud/storage/ITGapicUnbufferedReadableByteChannelTest.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,12 @@ public void readObject(
105105
if (request.equals(req1)) {
106106
responseObserver.onNext(resp1);
107107
responseObserver.onNext(resp2);
108-
responseObserver.onError(apiException(Code.DATA_LOSS));
108+
new Thread(() -> {
109+
try {
110+
Thread.sleep(200);
111+
} catch (InterruptedException ignored) {}
112+
responseObserver.onError(apiException(Code.DATA_LOSS));
113+
}).start();
109114
} else if (request.equals(req2)) {
110115
responseObserver.onNext(resp3);
111116
responseObserver.onNext(resp4);
@@ -194,7 +199,12 @@ public void readObject(
194199
if (count == 0) {
195200
responseObserver.onNext(resp1);
196201
responseObserver.onNext(resp2);
197-
responseObserver.onError(apiException(Code.DATA_LOSS));
202+
new Thread(() -> {
203+
try {
204+
Thread.sleep(200);
205+
} catch (InterruptedException ignored) {}
206+
responseObserver.onError(apiException(Code.DATA_LOSS));
207+
}).start();
198208
}
199209
} else if (request.equals(req2)) {
200210
ReadObjectResponse.Builder builder = resp3.toBuilder();

0 commit comments

Comments
 (0)