diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/pubsub/snippets/SubscriberSnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/pubsub/snippets/SubscriberSnippets.java index 5118720e858f..5f26d3ed6a3a 100644 --- a/google-cloud-examples/src/main/java/com/google/cloud/examples/pubsub/snippets/SubscriberSnippets.java +++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/pubsub/snippets/SubscriberSnippets.java @@ -32,9 +32,9 @@ import com.google.cloud.pubsub.v1.AckReplyConsumer; import com.google.cloud.pubsub.v1.MessageReceiver; import com.google.cloud.pubsub.v1.Subscriber; -import com.google.cloud.pubsub.v1.stub.SubscriberStubSettings; import com.google.cloud.pubsub.v1.stub.GrpcSubscriberStub; import com.google.cloud.pubsub.v1.stub.SubscriberStub; +import com.google.cloud.pubsub.v1.stub.SubscriberStubSettings; import com.google.common.util.concurrent.MoreExecutors; import com.google.pubsub.v1.AcknowledgeRequest; import com.google.pubsub.v1.ProjectSubscriptionName; @@ -45,7 +45,8 @@ import java.io.FileInputStream; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.Executor; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; /** This class contains snippets for the {@link Subscriber} interface. */ public class SubscriberSnippets { @@ -56,29 +57,26 @@ public class SubscriberSnippets { private final ApiFuture done; - private final Executor executor; - public SubscriberSnippets( ProjectSubscriptionName subscriptionName, MessageReceiver receiver, - ApiFuture done, - Executor executor) { + ApiFuture done) { this.subscriptionName = subscriptionName; this.receiver = receiver; this.done = done; - this.executor = executor; } // [TARGET startAsync()] public void startAndWait() throws Exception { Subscriber subscriber = Subscriber.newBuilder(subscriptionName, receiver).build(); + ExecutorService pool = Executors.newCachedThreadPool(); subscriber.addListener( new Subscriber.Listener() { public void failed(Subscriber.State from, Throwable failure) { // Handle error. } }, - executor); + pool); subscriber.startAsync(); // Wait for a stop signal. @@ -97,6 +95,7 @@ public void failed(Subscriber.State from, Throwable failure) { // } // at the end of main() to previent the main thread from exiting. done.get(); + pool.shutdown(); subscriber.stopAsync().awaitTerminated(); } diff --git a/google-cloud-examples/src/test/java/com/google/cloud/examples/pubsub/snippets/ITPubSubSnippets.java b/google-cloud-examples/src/test/java/com/google/cloud/examples/pubsub/snippets/ITPubSubSnippets.java index 0b5df9356bf7..ba173ca717f3 100644 --- a/google-cloud-examples/src/test/java/com/google/cloud/examples/pubsub/snippets/ITPubSubSnippets.java +++ b/google-cloud-examples/src/test/java/com/google/cloud/examples/pubsub/snippets/ITPubSubSnippets.java @@ -108,8 +108,7 @@ public void onFailure(Throwable t) { new SubscriberSnippets( subscriptionName, new MessageReceiverSnippets(queue).messageReceiver(), - done, - MoreExecutors.directExecutor()); + done); new Thread( new Runnable() { @Override