Returns a ApiFuture that will be completed when there are messages available.
Unfinished existing ApiFuture returned by onData() will be abandoned and superseded by
new onData() call.
CheckedApiException will be set to the Future if there is underlying permanent
error.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Class BlockingPullSubscriberImpl (1.15.13)\n\nVersion latestkeyboard_arrow_down\n\n- [1.15.13 (latest)](/java/docs/reference/google-cloud-pubsublite/latest/com.google.cloud.pubsublite.internal.BlockingPullSubscriberImpl)\n- [1.15.12](/java/docs/reference/google-cloud-pubsublite/1.15.12/com.google.cloud.pubsublite.internal.BlockingPullSubscriberImpl)\n- [1.14.8](/java/docs/reference/google-cloud-pubsublite/1.14.8/com.google.cloud.pubsublite.internal.BlockingPullSubscriberImpl)\n- [1.13.8](/java/docs/reference/google-cloud-pubsublite/1.13.8/com.google.cloud.pubsublite.internal.BlockingPullSubscriberImpl)\n- [1.12.22](/java/docs/reference/google-cloud-pubsublite/1.12.22/com.google.cloud.pubsublite.internal.BlockingPullSubscriberImpl)\n- [1.11.2](/java/docs/reference/google-cloud-pubsublite/1.11.2/com.google.cloud.pubsublite.internal.BlockingPullSubscriberImpl)\n- [1.10.0](/java/docs/reference/google-cloud-pubsublite/1.10.0/com.google.cloud.pubsublite.internal.BlockingPullSubscriberImpl)\n- [1.9.4](/java/docs/reference/google-cloud-pubsublite/1.9.4/com.google.cloud.pubsublite.internal.BlockingPullSubscriberImpl)\n- [1.8.0](/java/docs/reference/google-cloud-pubsublite/1.8.0/com.google.cloud.pubsublite.internal.BlockingPullSubscriberImpl)\n- [1.7.1](/java/docs/reference/google-cloud-pubsublite/1.7.1/com.google.cloud.pubsublite.internal.BlockingPullSubscriberImpl)\n- [1.6.3](/java/docs/reference/google-cloud-pubsublite/1.6.3/com.google.cloud.pubsublite.internal.BlockingPullSubscriberImpl)\n- [1.5.5](/java/docs/reference/google-cloud-pubsublite/1.5.5/com.google.cloud.pubsublite.internal.BlockingPullSubscriberImpl)\n- [1.4.12](/java/docs/reference/google-cloud-pubsublite/1.4.12/com.google.cloud.pubsublite.internal.BlockingPullSubscriberImpl) \n\n public class BlockingPullSubscriberImpl implements BlockingPullSubscriber\n\nInheritance\n-----------\n\n[java.lang.Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \\\u003e BlockingPullSubscriberImpl \n\nImplements\n----------\n\n[BlockingPullSubscriber](/java/docs/reference/google-cloud-pubsublite/latest/com.google.cloud.pubsublite.internal.BlockingPullSubscriber) \n\nInherited Members\n-----------------\n\n[Object.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--) \n[Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) \n[Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) \n[Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) \n[Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) \n[Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) \n[Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) \n[Object.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) \n[Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) \n[Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) \n[Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)\n\nConstructors\n------------\n\n### BlockingPullSubscriberImpl(SubscriberFactory factory, FlowControlSettings settings)\n\n public BlockingPullSubscriberImpl(SubscriberFactory factory, FlowControlSettings settings)\n\nMethods\n-------\n\n### close()\n\n public void close()\n\n### messageIfAvailable()\n\n public synchronized Optional\u003cSequencedMessage\u003e messageIfAvailable()\n\nPull messages if there is any ready to deliver. Any message will only be delivered to one call\nif there are multiple concurrent calls.\n\n### onData()\n\n public synchronized ApiFuture\u003cVoid\u003e onData()\n\nReturns a [ApiFuture](https://cloud.google.com/java/docs/reference/api-common/latest/com.google.api.core.ApiFuture.html) that will be completed when there are messages available.\nUnfinished existing [ApiFuture](https://cloud.google.com/java/docs/reference/api-common/latest/com.google.api.core.ApiFuture.html) returned by onData() will be abandoned and superseded by\nnew onData() call.\n\n[CheckedApiException](/java/docs/reference/google-cloud-pubsublite/latest/com.google.cloud.pubsublite.internal.CheckedApiException) will be set to the Future if there is underlying permanent\nerror."]]