UndeliverableException при блокировке Get с тайм-аутом в RxJava - PullRequest
0 голосов
/ 12 марта 2019

Когда я запускаю Single как blockingGet с тайм-аутом, если происходит тайм-аут, генерируется исключение UndeliverableException.Что я делаю не так, как решить эту проблему.

 Boolean discoverable = checkUserDiscoverability(receiver)
                        .timeout(30, TimeUnit.SECONDS)
                        .blockingGet();


 private Single<Boolean> checkUserDiscoverability(String loopUser) {
        return Single
                .create(emitter -> {
                    Thread.sleep(60*1000);
                    firebaseFirestore
                            .collection(Constants.USERS)
                            .whereEqualTo(FieldPath.documentId(), loopUser)
                            .get()
                            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                                @Override
                                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                                    if (!task.isSuccessful()) {
                                        emitter.onSuccess(false);
                                    }
                                    if(task.getResult().isEmpty())
                                        emitter.onSuccess(false);
                                    else
                                        emitter.onSuccess(true);
                                }
                            });
                });
    }

Сведения об исключении.

W/System.err: io.reactivex.exceptions.UndeliverableException: java.lang.RuntimeException: java.util.concurrent.TimeoutException
W/System.err:     at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:366)
W/System.err:     at io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess(ConsumerSingleObserver.java:66)
W/System.err:     at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:56)
W/System.err:     at io.reactivex.Single.subscribe(Single.java:3096)
W/System.err:     at io.reactivex.Single.subscribe(Single.java:3082)
W/System.err:     at tasks.worker.FindNewFriendsWorker.doWork(FindNewFriendsWorker.java:62)
...