Do not create String instances in 'Strings' methods accepting StringBuilder (#22907)
This commit is contained in:
parent
12b143e871
commit
09b3c7f270
|
@ -25,7 +25,6 @@ import org.elasticsearch.common.bytes.BytesReference;
|
|||
import org.elasticsearch.common.io.FastStringReader;
|
||||
import org.elasticsearch.common.util.CollectionUtils;
|
||||
import org.elasticsearch.common.xcontent.ToXContent;
|
||||
import org.elasticsearch.common.xcontent.ToXContentObject;
|
||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||
import org.elasticsearch.common.xcontent.json.JsonXContent;
|
||||
|
||||
|
@ -712,10 +711,12 @@ public class Strings {
|
|||
* @return the delimited String
|
||||
*/
|
||||
public static String collectionToDelimitedString(Iterable<?> coll, String delim, String prefix, String suffix) {
|
||||
return collectionToDelimitedString(coll, delim, prefix, suffix, new StringBuilder());
|
||||
StringBuilder sb = new StringBuilder();
|
||||
collectionToDelimitedString(coll, delim, prefix, suffix, sb);
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public static String collectionToDelimitedString(Iterable<?> coll, String delim, String prefix, String suffix, StringBuilder sb) {
|
||||
public static void collectionToDelimitedString(Iterable<?> coll, String delim, String prefix, String suffix, StringBuilder sb) {
|
||||
Iterator<?> it = coll.iterator();
|
||||
while (it.hasNext()) {
|
||||
sb.append(prefix).append(it.next()).append(suffix);
|
||||
|
@ -723,7 +724,6 @@ public class Strings {
|
|||
sb.append(delim);
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -758,12 +758,14 @@ public class Strings {
|
|||
* @return the delimited String
|
||||
*/
|
||||
public static String arrayToDelimitedString(Object[] arr, String delim) {
|
||||
return arrayToDelimitedString(arr, delim, new StringBuilder());
|
||||
StringBuilder sb = new StringBuilder();
|
||||
arrayToDelimitedString(arr, delim, sb);
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public static String arrayToDelimitedString(Object[] arr, String delim, StringBuilder sb) {
|
||||
public static void arrayToDelimitedString(Object[] arr, String delim, StringBuilder sb) {
|
||||
if (isEmpty(arr)) {
|
||||
return "";
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
if (i > 0) {
|
||||
|
@ -771,7 +773,6 @@ public class Strings {
|
|||
}
|
||||
sb.append(arr[i]);
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -109,12 +109,12 @@ public class Netty4HttpServerTransportTests extends ESTestCase {
|
|||
public void testCorsConfig() {
|
||||
final Set<String> methods = new HashSet<>(Arrays.asList("get", "options", "post"));
|
||||
final Set<String> headers = new HashSet<>(Arrays.asList("Content-Type", "Content-Length"));
|
||||
final String suffix = randomBoolean() ? " " : ""; // sometimes have a leading whitespace between comma delimited elements
|
||||
final String prefix = randomBoolean() ? " " : ""; // sometimes have a leading whitespace between comma delimited elements
|
||||
final Settings settings = Settings.builder()
|
||||
.put(SETTING_CORS_ENABLED.getKey(), true)
|
||||
.put(SETTING_CORS_ALLOW_ORIGIN.getKey(), "*")
|
||||
.put(SETTING_CORS_ALLOW_METHODS.getKey(), collectionToDelimitedString(methods, ",", suffix, ""))
|
||||
.put(SETTING_CORS_ALLOW_HEADERS.getKey(), collectionToDelimitedString(headers, ",", suffix, ""))
|
||||
.put(SETTING_CORS_ALLOW_METHODS.getKey(), collectionToDelimitedString(methods, ",", prefix, ""))
|
||||
.put(SETTING_CORS_ALLOW_HEADERS.getKey(), collectionToDelimitedString(headers, ",", prefix, ""))
|
||||
.put(SETTING_CORS_ALLOW_CREDENTIALS.getKey(), true)
|
||||
.build();
|
||||
final Netty4CorsConfig corsConfig = Netty4HttpServerTransport.buildCorsConfig(settings);
|
||||
|
|
Loading…
Reference in New Issue