diff --git a/.kokoro/build.sh b/.kokoro/build.sh index cc84660b1b..c7d7ce778e 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -51,9 +51,7 @@ test) RETURN_CODE=$? ;; lint) - mvn \ - -Penable-samples \ - com.coveo:fmt-maven-plugin:check + mvn com.coveo:fmt-maven-plugin:check RETURN_CODE=$? ;; javadoc) diff --git a/CHANGELOG.md b/CHANGELOG.md index 119764962e..bc7aefd967 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### [0.133.4](https://www.github.com/googleapis/java-bigquerystorage/compare/v0.133.3...v0.133.4) (2020-06-11) + + +### Bug Fixes + +* make awaitTermination and shutdown protected, since we already have close() method, it is confusing to have 3 shutdown methods ([#330](https://www.github.com/googleapis/java-bigquerystorage/issues/330)) ([8856288](https://www.github.com/googleapis/java-bigquerystorage/commit/88562883051fa1d856818d4ff47fcc020e0452de)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigquery to v1.116.2 ([#334](https://www.github.com/googleapis/java-bigquerystorage/issues/334)) ([a611756](https://www.github.com/googleapis/java-bigquerystorage/commit/a611756faea308c7e6714d8eecdb6a295ccb3e6a)) + ### [0.133.3](https://www.github.com/googleapis/java-bigquerystorage/compare/v0.133.2...v0.133.3) (2020-06-04) diff --git a/README.md b/README.md index 2a5fe06b30..d6645fe7e6 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file com.google.cloud libraries-bom - 5.5.0 + 5.6.0 pom import @@ -41,7 +41,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquerystorage - 0.133.2-beta + 0.133.3-beta ``` @@ -50,11 +50,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquerystorage:0.133.3-beta' +compile 'com.google.cloud:google-cloud-bigquerystorage:0.133.4-beta' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquerystorage" % "0.133.3-beta" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquerystorage" % "0.133.4-beta" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquerystorage-bom/pom.xml b/google-cloud-bigquerystorage-bom/pom.xml index c8c4a79896..b21ae78608 100644 --- a/google-cloud-bigquerystorage-bom/pom.xml +++ b/google-cloud-bigquerystorage-bom/pom.xml @@ -3,12 +3,12 @@ 4.0.0 com.google.cloud google-cloud-bigquerystorage-bom - 0.133.3-beta + 0.133.4-beta pom com.google.cloud google-cloud-shared-config - 0.6.0 + 0.8.0 Google Cloud bigquerystorage BOM @@ -63,48 +63,48 @@ com.google.api.grpc proto-google-cloud-bigquerystorage-v1alpha2 - 0.98.3 + 0.98.4 com.google.api.grpc proto-google-cloud-bigquerystorage-v1beta1 - 0.98.3 + 0.98.4 com.google.api.grpc proto-google-cloud-bigquerystorage-v1beta2 - 0.98.3 + 0.98.4 com.google.api.grpc proto-google-cloud-bigquerystorage-v1 - 0.98.3 + 0.98.4 com.google.api.grpc grpc-google-cloud-bigquerystorage-v1alpha2 - 0.98.3 + 0.98.4 com.google.api.grpc grpc-google-cloud-bigquerystorage-v1beta1 - 0.98.3 + 0.98.4 com.google.api.grpc grpc-google-cloud-bigquerystorage-v1beta2 - 0.98.3 + 0.98.4 com.google.api.grpc grpc-google-cloud-bigquerystorage-v1 - 0.98.3 + 0.98.4 com.google.cloud google-cloud-bigquerystorage - 0.133.3-beta + 0.133.4-beta diff --git a/google-cloud-bigquerystorage/clirr-ignored-differences.xml b/google-cloud-bigquerystorage/clirr-ignored-differences.xml new file mode 100644 index 0000000000..c1328feea2 --- /dev/null +++ b/google-cloud-bigquerystorage/clirr-ignored-differences.xml @@ -0,0 +1,15 @@ + + + + + + 7009 + com/google/cloud/bigquery/storage/v1alpha2/StreamWriter + void shutdown() + + + 7009 + com/google/cloud/bigquery/storage/v1alpha2/StreamWriter + boolean awaitTermination(long, java.util.concurrent.TimeUnit) + + \ No newline at end of file diff --git a/google-cloud-bigquerystorage/pom.xml b/google-cloud-bigquerystorage/pom.xml index c5dcb7f7ed..26dec0ad98 100644 --- a/google-cloud-bigquerystorage/pom.xml +++ b/google-cloud-bigquerystorage/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquerystorage - 0.133.3-beta + 0.133.4-beta jar BigQuery Storage https://github.com/googleapis/java-bigquerystorage @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquerystorage-parent - 0.133.3-beta + 0.133.4-beta google-cloud-bigquerystorage diff --git a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1alpha2/StreamWriter.java b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1alpha2/StreamWriter.java index 06f753b6c4..9bc08fe1ce 100644 --- a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1alpha2/StreamWriter.java +++ b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1alpha2/StreamWriter.java @@ -164,14 +164,10 @@ private StreamWriter(Builder builder) Instant.ofEpochSecond( stream.getCreateTime().getSeconds(), stream.getCreateTime().getNanos()); if (stream.getType() == Stream.WriteStream.Type.PENDING && stream.hasCommitTime()) { - backgroundResources.shutdown(); - backgroundResources.awaitTermination(1, TimeUnit.MINUTES); throw new IllegalStateException( "Cannot write to a stream that is already committed: " + streamName); } if (createTime.plus(streamTTL).compareTo(Instant.now()) < 0) { - backgroundResources.shutdown(); - backgroundResources.awaitTermination(1, TimeUnit.MINUTES); throw new IllegalStateException( "Cannot write to a stream that is already expired: " + streamName); } @@ -360,7 +356,7 @@ private void writeBatch(final InflightBatch inflightBatch) { /** Close the stream writer. Shut down all resources. */ @Override public void close() { - LOG.info("Closing stream writer"); + LOG.info("Closing stream writer:" + streamName); shutdown(); try { awaitTermination(1, TimeUnit.MINUTES); @@ -451,7 +447,7 @@ private void onFailure(Throwable t) { LOG.warning("Ignore " + t.toString() + " since error has already been set"); return; } else { - LOG.fine("Setting " + t.toString() + " on response"); + LOG.info("Setting " + t.toString() + " on response"); } for (AppendRequestAndFutureResponse request : inflightRequests) { request.appendResult.setException(t); @@ -512,10 +508,12 @@ public RetrySettings getRetrySettings() { * should be invoked prior to deleting the {@link WriteStream} object in order to ensure that no * pending messages are lost. */ - public void shutdown() { - Preconditions.checkState( - !shutdown.getAndSet(true), "Cannot shut down a writer already shut-down."); - LOG.info("Shutdown called on writer"); + protected void shutdown() { + if (shutdown.getAndSet(true)) { + LOG.fine("Already shutdown."); + return; + } + LOG.fine("Shutdown called on writer"); if (currentAlarmFuture != null && activeAlarm.getAndSet(false)) { currentAlarmFuture.cancel(false); } @@ -535,7 +533,7 @@ public void shutdown() { * *

Call this method to make sure all resources are freed properly. */ - public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { + protected boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { return backgroundResources.awaitTermination(duration, unit); } @@ -854,25 +852,29 @@ public void onError(Throwable t) { Math.min( streamWriter.getRetrySettings().getInitialRetryDelay().toMillis(), Duration.ofSeconds(7).toMillis())); + LOG.info("Resending requests on transient error:" + streamWriter.currentRetries); streamWriter.writeBatch(inflightBatch); synchronized (streamWriter.currentRetries) { streamWriter.currentRetries++; } } else { + inflightBatch.onFailure(t); synchronized (streamWriter.currentRetries) { streamWriter.currentRetries = 0; } - inflightBatch.onFailure(t); } } catch (IOException | InterruptedException e) { - streamWriter.currentRetries = 0; + LOG.info("Got exception while retrying."); inflightBatch.onFailure(e); + synchronized (streamWriter.currentRetries) { + streamWriter.currentRetries = 0; + } } } else { + inflightBatch.onFailure(t); synchronized (streamWriter.currentRetries) { streamWriter.currentRetries = 0; } - inflightBatch.onFailure(t); try { if (!streamWriter.shutdown.get()) { // Establish a new connection. diff --git a/google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1alpha2/StreamWriterTest.java b/google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1alpha2/StreamWriterTest.java index 3bab929111..372b4ad97f 100644 --- a/google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1alpha2/StreamWriterTest.java +++ b/google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1alpha2/StreamWriterTest.java @@ -294,8 +294,7 @@ public void testWriteByShutdown() throws Exception { // Note we are not advancing time or reaching the count threshold but messages should // still get written by call to shutdown - writer.shutdown(); - writer.awaitTermination(10, TimeUnit.SECONDS); + writer.close(); // Verify the appends completed assertTrue(appendFuture1.isDone()); @@ -407,8 +406,7 @@ public void run() { // Wait is necessary for response to be scheduled before timer is advanced. fakeExecutor.advanceTime(Duration.ofSeconds(10)); t.join(); - writer.shutdown(); - writer.awaitTermination(1, TimeUnit.MINUTES); + writer.close(); } @Test @@ -527,8 +525,7 @@ public void testStreamReconnectionExceedRetry() throws Exception { } catch (ExecutionException e) { assertEquals(transientError.toString(), e.getCause().getCause().toString()); } - writer.shutdown(); - assertTrue(writer.awaitTermination(1, TimeUnit.MINUTES)); + writer.close(); } @Test @@ -643,7 +640,7 @@ public void testWriterGetters() throws Exception { .getFlowControlSettings() .getMaxOutstandingRequestBytes() .longValue()); - writer.shutdown(); + writer.close(); } @Test @@ -823,29 +820,6 @@ public void testBuilderInvalidArguments() { } } - @Test - public void testAwaitTermination() throws Exception { - StreamWriter writer = - getTestStreamWriterBuilder("projects/p/datasets/d/tables/t/streams/await").build(); - testBigQueryWrite.addResponse(AppendRowsResponse.newBuilder().build()); - ApiFuture appendFuture1 = sendTestMessage(writer, new String[] {"AWAIT"}); - writer.shutdown(); - assertTrue(writer.awaitTermination(1, TimeUnit.MINUTES)); - } - - @Test - public void testClose() throws Exception { - StreamWriter writer = getTestStreamWriterBuilder().build(); - writer.close(); - try { - writer.shutdown(); - fail("Should throw"); - } catch (IllegalStateException e) { - LOG.info(e.toString()); - assertEquals("Cannot shut down a writer already shut-down.", e.getMessage()); - } - } - @Test public void testExistingClient() throws Exception { BigQueryWriteSettings settings = diff --git a/grpc-google-cloud-bigquerystorage-v1/pom.xml b/grpc-google-cloud-bigquerystorage-v1/pom.xml index 779f9538b6..1d690efcfc 100644 --- a/grpc-google-cloud-bigquerystorage-v1/pom.xml +++ b/grpc-google-cloud-bigquerystorage-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigquerystorage-v1 - 0.98.3 + 0.98.4 grpc-google-cloud-bigquerystorage-v1 GRPC library for grpc-google-cloud-bigquerystorage-v1 com.google.cloud google-cloud-bigquerystorage-parent - 0.133.3-beta + 0.133.4-beta diff --git a/grpc-google-cloud-bigquerystorage-v1alpha2/pom.xml b/grpc-google-cloud-bigquerystorage-v1alpha2/pom.xml index 678dbf3975..2e6a0a361a 100644 --- a/grpc-google-cloud-bigquerystorage-v1alpha2/pom.xml +++ b/grpc-google-cloud-bigquerystorage-v1alpha2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigquerystorage-v1alpha2 - 0.98.3 + 0.98.4 grpc-google-cloud-bigquerystorage-v1alpha2 GRPC library for grpc-google-cloud-bigquerystorage-v1alpha2 com.google.cloud google-cloud-bigquerystorage-parent - 0.133.3-beta + 0.133.4-beta diff --git a/grpc-google-cloud-bigquerystorage-v1beta1/pom.xml b/grpc-google-cloud-bigquerystorage-v1beta1/pom.xml index e6181d7b52..8a290c494e 100644 --- a/grpc-google-cloud-bigquerystorage-v1beta1/pom.xml +++ b/grpc-google-cloud-bigquerystorage-v1beta1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigquerystorage-v1beta1 - 0.98.3 + 0.98.4 grpc-google-cloud-bigquerystorage-v1beta1 GRPC library for grpc-google-cloud-bigquerystorage-v1beta1 com.google.cloud google-cloud-bigquerystorage-parent - 0.133.3-beta + 0.133.4-beta diff --git a/grpc-google-cloud-bigquerystorage-v1beta2/pom.xml b/grpc-google-cloud-bigquerystorage-v1beta2/pom.xml index 9dc9ce4fe4..4c99c88636 100644 --- a/grpc-google-cloud-bigquerystorage-v1beta2/pom.xml +++ b/grpc-google-cloud-bigquerystorage-v1beta2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigquerystorage-v1beta2 - 0.98.3 + 0.98.4 grpc-google-cloud-bigquerystorage-v1beta2 GRPC library for grpc-google-cloud-bigquerystorage-v1beta2 com.google.cloud google-cloud-bigquerystorage-parent - 0.133.3-beta + 0.133.4-beta diff --git a/pom.xml b/pom.xml index 3ad9ac12c1..30dd51d0d5 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquerystorage-parent pom - 0.133.3-beta + 0.133.4-beta BigQuery Storage Parent https://github.com/googleapis/java-bigquerystorage @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.6.0 + 0.8.0 @@ -98,52 +98,52 @@ com.google.cloud google-cloud-bigquery - 1.116.1 + 1.116.2 com.google.api.grpc proto-google-cloud-bigquerystorage-v1alpha2 - 0.98.3 + 0.98.4 com.google.api.grpc proto-google-cloud-bigquerystorage-v1beta1 - 0.98.3 + 0.98.4 com.google.api.grpc proto-google-cloud-bigquerystorage-v1beta2 - 0.98.3 + 0.98.4 com.google.api.grpc proto-google-cloud-bigquerystorage-v1 - 0.98.3 + 0.98.4 com.google.api.grpc grpc-google-cloud-bigquerystorage-v1alpha2 - 0.98.3 + 0.98.4 com.google.api.grpc grpc-google-cloud-bigquerystorage-v1beta1 - 0.98.3 + 0.98.4 com.google.api.grpc grpc-google-cloud-bigquerystorage-v1beta2 - 0.98.3 + 0.98.4 com.google.api.grpc grpc-google-cloud-bigquerystorage-v1 - 0.98.3 + 0.98.4 com.google.cloud google-cloud-bigquerystorage - 0.133.3-beta + 0.133.4-beta com.fasterxml.jackson.core diff --git a/proto-google-cloud-bigquerystorage-v1/pom.xml b/proto-google-cloud-bigquerystorage-v1/pom.xml index 1ba89d7c2f..ea60a39c8a 100644 --- a/proto-google-cloud-bigquerystorage-v1/pom.xml +++ b/proto-google-cloud-bigquerystorage-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigquerystorage-v1 - 0.98.3 + 0.98.4 proto-google-cloud-bigquerystorage-v1 PROTO library for proto-google-cloud-bigquerystorage-v1 com.google.cloud google-cloud-bigquerystorage-parent - 0.133.3-beta + 0.133.4-beta diff --git a/proto-google-cloud-bigquerystorage-v1alpha2/pom.xml b/proto-google-cloud-bigquerystorage-v1alpha2/pom.xml index c54fe9e773..c5d726a355 100644 --- a/proto-google-cloud-bigquerystorage-v1alpha2/pom.xml +++ b/proto-google-cloud-bigquerystorage-v1alpha2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigquerystorage-v1alpha2 - 0.98.3 + 0.98.4 proto-google-cloud-bigquerystorage-v1alpha2 PROTO library for proto-google-cloud-bigquerystorage-v1alpha2 com.google.cloud google-cloud-bigquerystorage-parent - 0.133.3-beta + 0.133.4-beta diff --git a/proto-google-cloud-bigquerystorage-v1beta1/pom.xml b/proto-google-cloud-bigquerystorage-v1beta1/pom.xml index d6aed12b45..beacbd7eac 100644 --- a/proto-google-cloud-bigquerystorage-v1beta1/pom.xml +++ b/proto-google-cloud-bigquerystorage-v1beta1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigquerystorage-v1beta1 - 0.98.3 + 0.98.4 proto-google-cloud-bigquerystorage-v1beta1 PROTO library for proto-google-cloud-bigquerystorage-v1beta1 com.google.cloud google-cloud-bigquerystorage-parent - 0.133.3-beta + 0.133.4-beta diff --git a/proto-google-cloud-bigquerystorage-v1beta2/pom.xml b/proto-google-cloud-bigquerystorage-v1beta2/pom.xml index 0d16464a2a..6a689bbd52 100644 --- a/proto-google-cloud-bigquerystorage-v1beta2/pom.xml +++ b/proto-google-cloud-bigquerystorage-v1beta2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigquerystorage-v1beta2 - 0.98.3 + 0.98.4 proto-google-cloud-bigquerystorage-v1beta2 PROTO library for proto-google-cloud-bigquerystorage-v1beta2 com.google.cloud google-cloud-bigquerystorage-parent - 0.133.3-beta + 0.133.4-beta diff --git a/renovate.json b/renovate.json index a3e13ddbbb..458c922f7f 100644 --- a/renovate.json +++ b/renovate.json @@ -76,5 +76,6 @@ "groupName": "jackson dependencies" } ], - "semanticCommits": true + "semanticCommits": true, + "masterIssue": true } \ No newline at end of file diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 97fbfbe6a6..a74a66037d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -14,7 +14,7 @@ com.google.cloud.samples shared-configuration - 1.0.17 + 1.0.18 @@ -29,7 +29,7 @@ com.google.cloud google-cloud-bigquerystorage - 0.133.2-beta + 0.133.3-beta diff --git a/samples/pom.xml b/samples/pom.xml index 36c2d268f7..d8c818dc48 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -18,7 +18,7 @@ com.google.cloud.samples shared-configuration - 1.0.17 + 1.0.18 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 90134217f5..562fdadfd1 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -14,7 +14,7 @@ com.google.cloud.samples shared-configuration - 1.0.17 + 1.0.18 @@ -28,7 +28,7 @@ com.google.cloud google-cloud-bigquerystorage - 0.133.3-beta + 0.133.4-beta diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 57a3caca32..e4282820e0 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -14,7 +14,7 @@ com.google.cloud.samples shared-configuration - 1.0.17 + 1.0.18 @@ -30,7 +30,7 @@ com.google.cloud libraries-bom - 5.5.0 + 5.7.0 pom import diff --git a/synth.metadata b/synth.metadata index eab337d328..2194f6f478 100644 --- a/synth.metadata +++ b/synth.metadata @@ -11,7 +11,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquerystorage.git", - "sha": "dd216134b98816f4b3cc6bd036eab01ebf04df35" + "sha": "a611756faea308c7e6714d8eecdb6a295ccb3e6a" } }, { @@ -50,7 +50,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "8b65daa222d193b689279162781baf0aa1f0ffd2" + "sha": "987270824bd26f6a8c716d5e2022057b8ae7b26e" } } ], diff --git a/versions.txt b/versions.txt index 3cecb5777f..28e87f6795 100644 --- a/versions.txt +++ b/versions.txt @@ -1,12 +1,12 @@ # Format: # module:released-version:current-version -proto-google-cloud-bigquerystorage-v1alpha2:0.98.3:0.98.3 -proto-google-cloud-bigquerystorage-v1beta1:0.98.3:0.98.3 -proto-google-cloud-bigquerystorage-v1beta2:0.98.3:0.98.3 -proto-google-cloud-bigquerystorage-v1:0.98.3:0.98.3 -grpc-google-cloud-bigquerystorage-v1alpha2:0.98.3:0.98.3 -grpc-google-cloud-bigquerystorage-v1beta1:0.98.3:0.98.3 -grpc-google-cloud-bigquerystorage-v1beta2:0.98.3:0.98.3 -grpc-google-cloud-bigquerystorage-v1:0.98.3:0.98.3 -google-cloud-bigquerystorage:0.133.3-beta:0.133.3-beta +proto-google-cloud-bigquerystorage-v1alpha2:0.98.4:0.98.4 +proto-google-cloud-bigquerystorage-v1beta1:0.98.4:0.98.4 +proto-google-cloud-bigquerystorage-v1beta2:0.98.4:0.98.4 +proto-google-cloud-bigquerystorage-v1:0.98.4:0.98.4 +grpc-google-cloud-bigquerystorage-v1alpha2:0.98.4:0.98.4 +grpc-google-cloud-bigquerystorage-v1beta1:0.98.4:0.98.4 +grpc-google-cloud-bigquerystorage-v1beta2:0.98.4:0.98.4 +grpc-google-cloud-bigquerystorage-v1:0.98.4:0.98.4 +google-cloud-bigquerystorage:0.133.4-beta:0.133.4-beta