N1ql java asyn c sdk не сообщает об ошибке, если индекс не найден - PullRequest
0 голосов
/ 07 мая 2020

У нас есть приведенный ниже код, который мы используем для взаимодействия с couchbase. Мы ожидаем, что он выдаст некоторую ошибку в случае, если для нашего запроса n1ql нет индексов. Запрос просто отправляет пустой ответ без документов.

Это вызывает путаницу. Почему приложение не выдает ошибку при отсутствии вторичных индексов для запроса n1ql


bucket.async().query(N1qlQuery.simple(FinalSql)).retryWhen(RetryBuilder.anyOf(BackpressureException.class)
                    .delay(Delay.exponential(TimeUnit.MILLISECONDS, 1000)).max(5).build()).doOnError(error -> {
                        Response = queryResponse.sendResponse(rc, 500, "FAILURE",
                                "Some thing went wrong Executing the request: ",
                                new JsonArray().add(new JsonObject().put("response", error.toString())));
                        Response.setHandler(resu -> {
                            if (resu.succeeded()) {
                                Response.complete();
                            } else {
                                Response.fail(resu.cause());
                            }
                        });

                    }).flatMap(AsyncN1qlQueryResult::rows).map(row -> {
                        return row.value().toString();
                    }).timeout(2 , TimeUnit.SECONDS).subscribe(new Subscriber<String>() {

                        JsonArray jarray = new JsonArray();

                        public void onCompleted() {
                           // Code to send response
                         }

                        @Override
                        public void onError(Throwable exp) {
                           // Code to send error 
                        }

} 




...