String sql = histItemFilterQueryProvider(filter, numberDecimalcount, table, name, timeZone);
logger.debug("JDBC::doGetHistItemFilterQuery sql={}", sql);
List<Object[]> m = Yank.queryObjectArrays(sql, null);
+ if (m == null) {
+ logger.debug("JDBC::doGetHistItemFilterQuery Query failed. Returning an empty list.");
+ return List.of();
+ }
// we already retrieve the unit here once as it is a very costly operation
String itemName = item.getName();
Unit<? extends Quantity<?>> unit = item instanceof NumberItem ? ((NumberItem) item).getUnit() : null;
- return m.stream().map(o -> new JdbcHistoricItem(itemName, getState(item, unit, o[1]), objectAsDate(o[0])))
+ return m.stream().map(o -> new JdbcHistoricItem(itemName, objectAsState(item, unit, o[1]), objectAsDate(o[0])))
.collect(Collectors.<HistoricItem> toList());
}
/*****************
* H E L P E R S *
*****************/
- protected State getState(Item item, @Nullable Unit<? extends Quantity<?>> unit, Object v) {
+ protected State objectAsState(Item item, @Nullable Unit<? extends Quantity<?>> unit, Object v) {
logger.debug(
"JDBC::ItemResultHandler::handleResult getState value = '{}', unit = '{}', getClass = '{}', clazz = '{}'",
v, unit, v.getClass(), v.getClass().getSimpleName());
Unit<? extends Quantity<?>> unit = item instanceof NumberItem ? ((NumberItem) item).getUnit() : null;
return m.stream().map(o -> {
logger.debug("JDBC::doGetHistItemFilterQuery 0='{}' 1='{}'", o[0], o[1]);
- return new JdbcHistoricItem(itemName, getState(item, unit, o[1]), objectAsDate(o[0]));
+ return new JdbcHistoricItem(itemName, objectAsState(item, unit, o[1]), objectAsDate(o[0]));
}).collect(Collectors.<HistoricItem> toList());
}