ArrayIndexOutOfBoundsException при выполнении запроса диапазона в Accumulo

Я использую Geomesa 1.1 для подключения к Accumulo 1.6.2 с Java. У меня нет проблем с запросом к базе данных определенных атрибутов (конкретных значений столбцов). Но когда я пытаюсь запустить запрос диапазона (пробовал как временной, так и геометрический диапазоны), я получаю сообщение об ошибке.

Когда я проверяю журналы Accumulo, я вижу эту ошибку:

exception while doing multi-scan 
    java.lang.ArrayIndexOutOfBoundsException: -1

Но ни один из моих кодов не использует массивы. Исключение генерируется из базовой библиотеки.

Вот как я создаю свой фильтр CQL:

Filter cqlFilter = CQL.toFilter("BBOX(where, 160.0, 1.0, 170.0, 3.0)");

Что может быть причиной java.lang.ArrayIndexOutOfBoundsException: -1?

РЕДАКТИРОВАТЬ

Обновлен вопрос и ответ, чтобы было ясно, что это не дубликат, и чтобы предоставить более общую помощь будущим посетителям.


person Mike S    schedule 05.01.2016    source источник
comment
Не предполагайте, что у вас есть полная трассировка стека для этого исключения, не так ли?   -  person Christopher    schedule 07.01.2016
comment
Думаю, я понял проблему. Я почти уверен, что это была глупая ошибка с моей стороны (как это обычно бывает). Если я прав, я добавлю ответ.   -  person Mike S    schedule 07.01.2016


Ответы (2)


Кратко: похоже, вы используете GeoMesa Accumulo QuickStart. Поле геометрии там называется «Где». Если вы обновите фильтр до

Filter cqlFilter = CQL.toFilter("BBOX(Where, 160.0, 1.0, 170.0, 3.0)");

это может сработать для вас.

person GeoMesaJim    schedule 14.09.2016

Geomesa/Accumulo выдаст эту отвлекающую ошибку, если вы передадите недопустимое/неправильное имя таблицы в toFilter. Прежде чем вы потратите много времени на чтение общие решения этой проблемы и поиск ошибок в коде, убедитесь, что у вас правильное имя таблицы.

person Mike S    schedule 09.02.2016