Browse Source

Merge pull request #7552 from smatvienko-tb/fix/cassandra_base_ts_dao_prepared_statement_array_set_atomically

[3.4.2] Fix Cassandra prepared statement produces NullPointerException in some case
pull/7554/head
Andrew Shvayka 4 years ago
committed by GitHub
parent
commit
cdd7eff00e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      dao/src/main/java/org/thingsboard/server/dao/timeseries/CassandraBaseTimeseriesDao.java

10
dao/src/main/java/org/thingsboard/server/dao/timeseries/CassandraBaseTimeseriesDao.java

@ -643,9 +643,9 @@ public class CassandraBaseTimeseriesDao extends AbstractCassandraBaseTimeseriesD
stmtCreationLock.lock();
try {
if (saveStmts == null) {
saveStmts = new PreparedStatement[DataType.values().length];
var stmts = new PreparedStatement[DataType.values().length];
for (DataType type : DataType.values()) {
saveStmts[type.ordinal()] = prepare(INSERT_INTO + ModelConstants.TS_KV_CF +
stmts[type.ordinal()] = prepare(INSERT_INTO + ModelConstants.TS_KV_CF +
"(" + ModelConstants.ENTITY_TYPE_COLUMN +
"," + ModelConstants.ENTITY_ID_COLUMN +
"," + ModelConstants.KEY_COLUMN +
@ -654,6 +654,7 @@ public class CassandraBaseTimeseriesDao extends AbstractCassandraBaseTimeseriesD
"," + getColumnName(type) + ")" +
" VALUES(?, ?, ?, ?, ?, ?)");
}
saveStmts = stmts;
}
} finally {
stmtCreationLock.unlock();
@ -667,9 +668,9 @@ public class CassandraBaseTimeseriesDao extends AbstractCassandraBaseTimeseriesD
stmtCreationLock.lock();
try {
if (saveTtlStmts == null) {
saveTtlStmts = new PreparedStatement[DataType.values().length];
var stmts = new PreparedStatement[DataType.values().length];
for (DataType type : DataType.values()) {
saveTtlStmts[type.ordinal()] = prepare(INSERT_INTO + ModelConstants.TS_KV_CF +
stmts[type.ordinal()] = prepare(INSERT_INTO + ModelConstants.TS_KV_CF +
"(" + ModelConstants.ENTITY_TYPE_COLUMN +
"," + ModelConstants.ENTITY_ID_COLUMN +
"," + ModelConstants.KEY_COLUMN +
@ -678,6 +679,7 @@ public class CassandraBaseTimeseriesDao extends AbstractCassandraBaseTimeseriesD
"," + getColumnName(type) + ")" +
" VALUES(?, ?, ?, ?, ?, ?) USING TTL ?");
}
saveTtlStmts = stmts;
}
} finally {
stmtCreationLock.unlock();

Loading…
Cancel
Save