2016-01-05 27 views
0

我正在使用Geomesa 1.1通過Java連接到Accumulo 1.6.2。查詢數據庫的特定屬性(特定列值)時,我沒有任何問題。但是,當我嘗試運行範圍查詢(同時嘗試時間和幾何範圍)時出現錯誤。在Accumulo中運行範圍查詢時發生ArrayIndexOutOfBoundsException

當我檢查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

編輯

更新的問題和答案,使之清楚它不是一個重複的和未來的遊客提供更廣泛的幫助。

+1

不要以爲你有這個異常的完整堆棧跟蹤,是嗎? – Christopher

+0

我想我已經找到了問題。我敢肯定,這是我的一個愚蠢的錯誤(因爲這些事情通常是)。如果我是對的,我會添加答案。 –

回答

-1

如果您向toFilter傳遞無效/不正確的表名稱,Geomesa/Accumulo將誤導性地拋出此紅色鯡魚錯誤。在花費大量時間閱讀general solutions to this problem並在代碼中搜索錯誤之前,請確保您具有正確的表名。

0

作爲一個快速提示,看起來您可能正在使用GeoMesa Accumulo QuickStart。那裏的幾何字段名爲'Where'。如果更新過濾器爲

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

它可能適用於您。