Commit 64da2024cb88c4775ca9179524f23165ce3e7686

Authored by Andrew Shvayka
2 parents 407f7cfd 7e6a556d

Merge branch 'master' of github.com:thingsboard/thingsboard

@@ -317,7 +317,7 @@ spring: @@ -317,7 +317,7 @@ spring:
317 enabled: "true" 317 enabled: "true"
318 jpa: 318 jpa:
319 hibernate: 319 hibernate:
320 - ddl-auto: "validate" 320 + ddl-auto: "none"
321 database-platform: "${SPRING_JPA_DATABASE_PLATFORM:org.hibernate.dialect.HSQLDialect}" 321 database-platform: "${SPRING_JPA_DATABASE_PLATFORM:org.hibernate.dialect.HSQLDialect}"
322 datasource: 322 datasource:
323 driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.hsqldb.jdbc.JDBCDriver}" 323 driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.hsqldb.jdbc.JDBCDriver}"
@@ -333,7 +333,7 @@ spring: @@ -333,7 +333,7 @@ spring:
333 # enabled: "true" 333 # enabled: "true"
334 # sql: 334 # sql:
335 # hibernate: 335 # hibernate:
336 -# ddl-auto: "validate" 336 +# ddl-auto: "none"
337 # database-platform: "${SPRING_JPA_DATABASE_PLATFORM:org.hibernate.dialect.PostgreSQLDialect}" 337 # database-platform: "${SPRING_JPA_DATABASE_PLATFORM:org.hibernate.dialect.PostgreSQLDialect}"
338 # datasource: 338 # datasource:
339 # driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.postgresql.Driver}" 339 # driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.postgresql.Driver}"
@@ -29,6 +29,7 @@ import javax.annotation.Nullable; @@ -29,6 +29,7 @@ import javax.annotation.Nullable;
29 import java.util.UUID; 29 import java.util.UUID;
30 import java.util.concurrent.*; 30 import java.util.concurrent.*;
31 import java.util.concurrent.atomic.AtomicInteger; 31 import java.util.concurrent.atomic.AtomicInteger;
  32 +import java.util.regex.Matcher;
32 33
33 /** 34 /**
34 * Created by ashvayka on 24.10.18. 35 * Created by ashvayka on 24.10.18.
@@ -189,7 +190,12 @@ public abstract class AbstractBufferedRateExecutor<T extends AsyncTask, F extend @@ -189,7 +190,12 @@ public abstract class AbstractBufferedRateExecutor<T extends AsyncTask, F extend
189 CassandraStatementTask cassStmtTask = (CassandraStatementTask) taskCtx.getTask(); 190 CassandraStatementTask cassStmtTask = (CassandraStatementTask) taskCtx.getTask();
190 if (cassStmtTask.getStatement() instanceof BoundStatement) { 191 if (cassStmtTask.getStatement() instanceof BoundStatement) {
191 BoundStatement stmt = (BoundStatement) cassStmtTask.getStatement(); 192 BoundStatement stmt = (BoundStatement) cassStmtTask.getStatement();
192 - String query = toStringWithValues(stmt, ProtocolVersion.V5); 193 + String query = stmt.preparedStatement().getQueryString();
  194 + try {
  195 + query = toStringWithValues(stmt, ProtocolVersion.V5);
  196 + } catch (Exception e) {
  197 + log.warn("Can't convert to query with values", e);
  198 + }
193 log.trace("[{}] {} task: {}, BoundStatement query: {}", taskCtx.getId(), action, taskCtx, query); 199 log.trace("[{}] {} task: {}, BoundStatement query: {}", taskCtx.getId(), action, taskCtx, query);
194 } 200 }
195 } else { 201 } else {
@@ -211,7 +217,8 @@ public abstract class AbstractBufferedRateExecutor<T extends AsyncTask, F extend @@ -211,7 +217,8 @@ public abstract class AbstractBufferedRateExecutor<T extends AsyncTask, F extend
211 TypeCodec<Object> codec = codecRegistry.codecFor(type); 217 TypeCodec<Object> codec = codecRegistry.codecFor(type);
212 if (boundStatement.getBytesUnsafe(index) != null) { 218 if (boundStatement.getBytesUnsafe(index) != null) {
213 Object value = codec.deserialize(boundStatement.getBytesUnsafe(index), protocolVersion); 219 Object value = codec.deserialize(boundStatement.getBytesUnsafe(index), protocolVersion);
214 - query = query.replaceFirst("\\?", codec.format(value)); 220 + String replacement = Matcher.quoteReplacement(codec.format(value));
  221 + query = query.replaceFirst("\\?", replacement);
215 } 222 }
216 index++; 223 index++;
217 } 224 }