Skip to content

Commit 4b91b78

Browse files
committed
HHH-19005 Memory leak modify String to StringBuilder
1 parent 0cef7e5 commit 4b91b78

File tree

1 file changed

+17
-21
lines changed

1 file changed

+17
-21
lines changed

hibernate-core/src/main/java/org/hibernate/engine/jdbc/internal/BasicFormatterImpl.java

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -79,34 +79,17 @@ public String perform() {
7979
}
8080

8181
lcToken = token.toLowerCase( Locale.ROOT );
82-
StringBuilder sb = new StringBuilder();
8382
switch ( lcToken ) {
8483
case "'":
8584
case "`":
8685
case "\"":
87-
String t;
88-
sb.append( this.token );
89-
do {
90-
t = tokens.nextToken();
91-
sb.append( t );
92-
}
93-
while ( !lcToken.equals( t ) && tokens.hasMoreTokens() );
94-
this.token = sb.toString();
95-
lcToken = token;
86+
appendUntilToken(lcToken);
9687
misc();
9788
break;
9889
// SQL Server uses "[" and "]" to escape reserved words
9990
// see SQLServerDialect.openQuote and SQLServerDialect.closeQuote
10091
case "[":
101-
String tt;
102-
sb.append( this.token );
103-
do {
104-
tt = tokens.nextToken();
105-
sb.append( tt );
106-
}
107-
while ( !"]".equals( tt ) && tokens.hasMoreTokens() );
108-
this.token = sb.toString();
109-
lcToken = token;
92+
appendUntilToken("]");
11093
misc();
11194
break;
11295

@@ -394,8 +377,8 @@ private void endNewClause() {
394377
newline();
395378
afterBeginBeforeEnd = false;
396379
afterByOrSetOrFromOrSelect = "by".equals( lcToken )
397-
|| "set".equals( lcToken )
398-
|| "from".equals( lcToken );
380+
|| "set".equals( lcToken )
381+
|| "from".equals( lcToken );
399382
}
400383

401384
private void beginNewClause() {
@@ -514,6 +497,19 @@ private void newline() {
514497
.append( INDENT_STRING.repeat( indent ) );
515498
beginLine = true;
516499
}
500+
501+
private void appendUntilToken(String stopToken) {
502+
StringBuilder sb = new StringBuilder();
503+
String t;
504+
sb.append( this.token );
505+
do {
506+
t = tokens.nextToken();
507+
sb.append( t );
508+
}
509+
while ( !stopToken.equals( t ) && tokens.hasMoreTokens() );
510+
this.token = sb.toString();
511+
lcToken = token;
512+
}
517513
}
518514

519515
}

0 commit comments

Comments
 (0)