From 32b689a9947823427a01899d5a310c9435ee78d2 Mon Sep 17 00:00:00 2001 From: igor-suhorukov Date: Thu, 8 Mar 2018 23:22:15 +0300 Subject: [PATCH] use StringBuilder for complex string concatenation --- .../AbstractNestablePropertyAccessor.java | 8 +++--- .../core/metadata/CallMetaDataContext.java | 26 +++++++++---------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/spring-beans/src/main/java/org/springframework/beans/AbstractNestablePropertyAccessor.java b/spring-beans/src/main/java/org/springframework/beans/AbstractNestablePropertyAccessor.java index 91ea8e4964..5b6ef07aac 100644 --- a/spring-beans/src/main/java/org/springframework/beans/AbstractNestablePropertyAccessor.java +++ b/spring-beans/src/main/java/org/springframework/beans/AbstractNestablePropertyAccessor.java @@ -634,7 +634,7 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA "property path '" + propertyName + "': returned null"); } } - String indexedPropertyName = tokens.actualName; + StringBuilder indexedPropertyName = new StringBuilder(tokens.actualName); // apply indexes and map keys for (int i = 0; i < tokens.keys.length; i++) { String key = tokens.keys[i]; @@ -645,13 +645,13 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA } else if (value.getClass().isArray()) { int index = Integer.parseInt(key); - value = growArrayIfNecessary(value, index, indexedPropertyName); + value = growArrayIfNecessary(value, index, indexedPropertyName.toString()); value = Array.get(value, index); } else if (value instanceof List) { int index = Integer.parseInt(key); List list = (List) value; - growCollectionIfNecessary(list, index, indexedPropertyName, ph, i + 1); + growCollectionIfNecessary(list, index, indexedPropertyName.toString(), ph, i + 1); value = list.get(index); } else if (value instanceof Set) { @@ -686,7 +686,7 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA "Property referenced in indexed property path '" + propertyName + "' is neither an array nor a List nor a Set nor a Map; returned value was [" + value + "]"); } - indexedPropertyName += PROPERTY_KEY_PREFIX + key + PROPERTY_KEY_SUFFIX; + indexedPropertyName.append(PROPERTY_KEY_PREFIX).append(key).append(PROPERTY_KEY_SUFFIX); } } return value; diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/CallMetaDataContext.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/CallMetaDataContext.java index 929800f37f..978aea2f06 100755 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/CallMetaDataContext.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/CallMetaDataContext.java @@ -618,7 +618,7 @@ public class CallMetaDataContext { public String createCallString() { Assert.state(this.metaDataProvider != null, "No CallMetaDataProvider available"); - String callString; + StringBuilder callString; int parameterCount = 0; String catalogNameToUse; String schemaNameToUse; @@ -637,33 +637,33 @@ public class CallMetaDataContext { String procedureNameToUse = this.metaDataProvider.procedureNameToUse(getProcedureName()); if (isFunction() || isReturnValueRequired()) { - callString = "{? = call " + - (StringUtils.hasLength(catalogNameToUse) ? catalogNameToUse + "." : "") + - (StringUtils.hasLength(schemaNameToUse) ? schemaNameToUse + "." : "") + - procedureNameToUse + "("; + callString = new StringBuilder().append("{? = call "). + append(StringUtils.hasLength(catalogNameToUse) ? catalogNameToUse + "." : ""). + append(StringUtils.hasLength(schemaNameToUse) ? schemaNameToUse + "." : ""). + append(procedureNameToUse).append("("); parameterCount = -1; } else { - callString = "{call " + - (StringUtils.hasLength(catalogNameToUse) ? catalogNameToUse + "." : "") + - (StringUtils.hasLength(schemaNameToUse) ? schemaNameToUse + "." : "") + - procedureNameToUse + "("; + callString = new StringBuilder().append("{call "). + append(StringUtils.hasLength(catalogNameToUse) ? catalogNameToUse + "." : ""). + append(StringUtils.hasLength(schemaNameToUse) ? schemaNameToUse + "." : ""). + append(procedureNameToUse).append("("); } for (SqlParameter parameter : this.callParameters) { if (!(parameter.isResultsParameter())) { if (parameterCount > 0) { - callString += ", "; + callString.append(", "); } if (parameterCount >= 0) { - callString += createParameterBinding(parameter); + callString.append(createParameterBinding(parameter)); } parameterCount++; } } - callString += ")}"; + callString.append(")}"); - return callString; + return callString.toString(); } /**