У нас есть приведенный ниже код, который мы используем для взаимодействия с 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
}
}