diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/AbstractBufferedRateExecutor.java b/dao/src/main/java/org/thingsboard/server/dao/util/AbstractBufferedRateExecutor.java index fc219165de..c22321ee52 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/util/AbstractBufferedRateExecutor.java +++ b/dao/src/main/java/org/thingsboard/server/dao/util/AbstractBufferedRateExecutor.java @@ -29,6 +29,7 @@ import javax.annotation.Nullable; import java.util.UUID; import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicInteger; +import java.util.regex.Matcher; /** * Created by ashvayka on 24.10.18. @@ -189,7 +190,12 @@ public abstract class AbstractBufferedRateExecutor codec = codecRegistry.codecFor(type); if (boundStatement.getBytesUnsafe(index) != null) { Object value = codec.deserialize(boundStatement.getBytesUnsafe(index), protocolVersion); - query = query.replaceFirst("\\?", codec.format(value)); + String replacement = Matcher.quoteReplacement(codec.format(value)); + query = query.replaceFirst("\\?", replacement); } index++; }