You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ke...@apache.org on 2020/08/28 04:47:00 UTC

[skywalking] branch master updated: Optimize: truncate parameterString (#5396)

This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new f89ed0c  Optimize: truncate parameterString (#5396)
f89ed0c is described below

commit f89ed0c3151f4637c8052fc9ddb00814badfd9ec
Author: novayoung <ja...@yahoo.cn>
AuthorDate: Fri Aug 28 12:46:41 2020 +0800

    Optimize: truncate parameterString (#5396)
---
 .../plugin/jdbc/PreparedStatementParameterBuilder.java | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/PreparedStatementParameterBuilder.java b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/PreparedStatementParameterBuilder.java
index 1209b80..33bda28 100644
--- a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/PreparedStatementParameterBuilder.java
+++ b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/PreparedStatementParameterBuilder.java
@@ -44,8 +44,7 @@ public class PreparedStatementParameterBuilder {
             return EMPTY_LIST;
         }
 
-        String parameterString = getParameterString();
-        return truncate(parameterString);
+        return getParameterString();
     }
 
     private String getParameterString() {
@@ -58,8 +57,13 @@ public class PreparedStatementParameterBuilder {
             }
             stringBuilder.append(parameter);
             first = false;
+            
+            //  cut the string as soon as it reached the length limitation
+            if (maxLength > 0 && (stringBuilder.length() + EMPTY_LIST.length()) > maxLength) {
+                return format(stringBuilder).substring(0, maxLength) + "...";
+            }
         }
-        return String.format("[%s]", stringBuilder.toString());
+        return format(stringBuilder);
     }
 
     private int getMaxIndex() {
@@ -67,12 +71,8 @@ public class PreparedStatementParameterBuilder {
         return Math.min(maxIdx, parameters.length);
     }
 
-    private String truncate(String parameterString) {
-        if (maxLength > 0 && parameterString.length() > maxLength) {
-            parameterString = parameterString.substring(0, maxLength) + "...";
-        }
-
-        return parameterString;
+    private String format(StringBuilder stringBuilder) {
+        return String.format("[%s]", stringBuilder.toString());
     }
 
 }