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 81f226e98e68..cb899288e672 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 @@ -91,7 +91,7 @@ public void failed(Subscriber.State from, Throwable failure) { // for (;;) { // Thread.sleep(Long.MAX_VALUE); // } - // at the end of main() to previent the main thread from exiting. + // at the end of main() to prevent the main thread from exiting. done.get(); pool.shutdown(); subscriber.stopAsync().awaitTerminated(); @@ -120,10 +120,11 @@ public void receiveMessage(PubsubMessage message, AckReplyConsumer consumer) { try { // Create a subscriber for "my-subscription-id" bound to the message receiver subscriber = Subscriber.newBuilder(subscriptionName, receiver).build(); - subscriber.startAsync(); - // ... + subscriber.startAsync().awaitRunning(); + // Allow the subscriber to run indefinitely unless an unrecoverable error occurs + subscriber.awaitTerminated(); } finally { - // stop receiving messages + // Stop receiving messages if (subscriber != null) { subscriber.stopAsync(); }