Skip to content

Commit 12e007a

Browse files
author
Christoph Büscher
committed
[Tests] Fix alias names in PutIndexTemplateRequestTests
The randomized alias names could contain unicode controll charactes that don't survive an xContent rendering and parsing roundtrip when using the YAML xContent type. This fix filters the randomized unicode string for control characters to avoid this particular problem. Closes #30911
1 parent 0ff2c60 commit 12e007a

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

server/src/main/java/org/elasticsearch/action/admin/indices/alias/Alias.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
import org.elasticsearch.common.io.stream.StreamOutput;
2929
import org.elasticsearch.common.io.stream.Streamable;
3030
import org.elasticsearch.common.xcontent.ToXContent;
31-
import org.elasticsearch.common.xcontent.ToXContentObject;
31+
import org.elasticsearch.common.xcontent.ToXContent.Params;
32+
import org.elasticsearch.common.xcontent.ToXContentFragment;
3233
import org.elasticsearch.common.xcontent.XContentBuilder;
3334
import org.elasticsearch.common.xcontent.XContentFactory;
3435
import org.elasticsearch.common.xcontent.XContentParser;
@@ -42,7 +43,7 @@
4243
/**
4344
* Represents an alias, to be associated with an index
4445
*/
45-
public class Alias implements Streamable, ToXContentObject {
46+
public class Alias implements Streamable, ToXContentFragment {
4647

4748
private static final ParseField FILTER = new ParseField("filter");
4849
private static final ParseField ROUTING = new ParseField("routing");
@@ -248,6 +249,11 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
248249
return builder;
249250
}
250251

252+
@Override
253+
public String toString() {
254+
return Strings.toString(this);
255+
}
256+
251257
@Override
252258
public boolean equals(Object o) {
253259
if (this == o) return true;

server/src/test/java/org/elasticsearch/action/admin/indices/template/put/PutIndexTemplateRequestTests.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,9 @@ protected PutIndexTemplateRequest createTestInstance() {
150150
request.patterns(Arrays.asList(generateRandomStringArray(20, 100, false, false)));
151151
int numAlias = between(0, 5);
152152
for (int i = 0; i < numAlias; i++) {
153-
Alias alias = new Alias(randomRealisticUnicodeOfLengthBetween(1, 10));
153+
// some ASCII or Latin-1 control characters, especially newline, can lead to
154+
// problems with yaml parsers, that's why we filter them here (see #30911)
155+
Alias alias = new Alias(randomRealisticUnicodeOfLengthBetween(1, 10).replaceAll("\\p{Cc}", ""));
154156
if (randomBoolean()) {
155157
alias.indexRouting(randomRealisticUnicodeOfLengthBetween(1, 10));
156158
}

0 commit comments

Comments
 (0)