Skip to content

Commit 6ea8379

Browse files
committed
fix(storage): fix flaky storage integration tests
1 parent d08691a commit 6ea8379

3 files changed

Lines changed: 15 additions & 4 deletions

File tree

java-storage/google-cloud-storage/src/main/java/com/google/cloud/storage/BidiUploadStreamingStream.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,9 @@ public void flush() {
165165
public boolean finishWrite(long length) {
166166
lock.lock();
167167
try {
168+
if (state.getState() == State.TERMINAL_SUCCESS) {
169+
return true;
170+
}
168171
// if we're already finalizing, ack rather than enqueueing again
169172
if (state.isFinalizing() && state.getTotalSentBytes() == length) {
170173
return true;
@@ -192,6 +195,10 @@ public boolean closeStream(long length) {
192195
lock.lock();
193196
try {
194197

198+
if (state.getState() == State.TERMINAL_SUCCESS) {
199+
return true;
200+
}
201+
195202
boolean offer = state.finalFlush(length);
196203
if (offer) {
197204
internalSend();

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1356,6 +1356,11 @@ boolean isFinalizing() {
13561356
return false;
13571357
}
13581358

1359+
@Override
1360+
State getState() {
1361+
return State.RUNNING;
1362+
}
1363+
13591364
@Override
13601365
long getTotalSentBytes() {
13611366
return 0;

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -380,12 +380,9 @@ static class DirectWriteService extends StorageImplBase {
380380
private static final Logger LOGGER = LoggerFactory.getLogger(DirectWriteService.class);
381381
private final BiConsumer<StreamObserver<WriteObjectResponse>, List<WriteObjectRequest>> c;
382382

383-
private ImmutableList.Builder<WriteObjectRequest> requests;
384-
385383
DirectWriteService(
386384
BiConsumer<StreamObserver<WriteObjectResponse>, List<WriteObjectRequest>> c) {
387385
this.c = c;
388-
this.requests = new ImmutableList.Builder<>();
389386
}
390387

391388
DirectWriteService(ImmutableMap<List<WriteObjectRequest>, WriteObjectResponse> writes) {
@@ -420,6 +417,9 @@ private static void logUnexpectedRequest(
420417
@Override
421418
public StreamObserver<WriteObjectRequest> writeObject(StreamObserver<WriteObjectResponse> obs) {
422419
return new Adapter() {
420+
private final ImmutableList.Builder<WriteObjectRequest> requests =
421+
new ImmutableList.Builder<>();
422+
423423
@Override
424424
public void onNext(WriteObjectRequest value) {
425425
requests.add(value);
@@ -432,7 +432,6 @@ public void onError(Throwable t) {}
432432
public void onCompleted() {
433433
ImmutableList<WriteObjectRequest> build = requests.build();
434434
c.accept(obs, build);
435-
requests = new ImmutableList.Builder<>();
436435
}
437436
};
438437
}

0 commit comments

Comments
 (0)