File tree Expand file tree Collapse file tree
java-storage/google-cloud-storage/src
main/java/com/google/cloud/storage
test/java/com/google/cloud/storage Expand file tree Collapse file tree Original file line number Diff line number Diff 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 ();
Original file line number Diff line number Diff 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 ;
Original file line number Diff line number Diff 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 }
You can’t perform that action at this time.
0 commit comments