From 84a5fcce4a5762151cfb4a8cb426fca4ec1e9331 Mon Sep 17 00:00:00 2001 From: Andrew Shvayka Date: Fri, 7 Jul 2017 18:29:00 +0300 Subject: [PATCH] Fixed NPE on missing telemetry key --- .../dao/timeseries/CassandraBaseTimeseriesDao.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/timeseries/CassandraBaseTimeseriesDao.java b/dao/src/main/java/org/thingsboard/server/dao/timeseries/CassandraBaseTimeseriesDao.java index 56ce0e2b02..7e3c2026c8 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/timeseries/CassandraBaseTimeseriesDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/timeseries/CassandraBaseTimeseriesDao.java @@ -255,7 +255,7 @@ public class CassandraBaseTimeseriesDao extends CassandraAbstractAsyncDao implem stmt.setUUID(1, entityId.getId()); stmt.setString(2, key); log.debug("Generated query [{}] for entityType {} and entityId {}", stmt, entityId.getEntityType(), entityId.getId()); - return getFuture(executeAsyncRead(stmt), rs -> convertResultToTsKvEntry(rs.one())); + return getFuture(executeAsyncRead(stmt), rs -> convertResultToTsKvEntry(key, rs.one())); } @Override @@ -319,6 +319,15 @@ public class CassandraBaseTimeseriesDao extends CassandraAbstractAsyncDao implem return entries; } + private TsKvEntry convertResultToTsKvEntry(String key, Row row) { + if (row != null) { + long ts = row.getLong(ModelConstants.TS_COLUMN); + return new BasicTsKvEntry(ts, toKvEntry(row, key)); + } else { + return new BasicTsKvEntry(System.currentTimeMillis(), new StringDataEntry(key, null)); + } + } + private TsKvEntry convertResultToTsKvEntry(Row row) { String key = row.getString(ModelConstants.KEY_COLUMN); long ts = row.getLong(ModelConstants.TS_COLUMN);