Skip to content

Commit b6e6e3b

Browse files
authored
Fixed missing error propagation in IndexNameExpressionResolver (#19769)
Signed-off-by: Nils Bandener <nils.bandener@eliatra.com>
1 parent 9d918e6 commit b6e6e3b

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

server/src/main/java/org/opensearch/cluster/metadata/IndexNameExpressionResolver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ ResolvedIndices.Local.Concrete concreteResolvedIndices(Context context, String..
349349
.withResolutionErrors(context.getResolutionErrors())
350350
.withResolutionErrors(infe);
351351
} else {
352-
return ResolvedIndices.Local.Concrete.empty();
352+
return ResolvedIndices.Local.Concrete.empty().withResolutionErrors(context.getResolutionErrors());
353353
}
354354
}
355355

server/src/test/java/org/opensearch/cluster/metadata/IndexNameExpressionResolverTests.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2128,6 +2128,26 @@ public void testInvalidEmptyIndex() {
21282128
assertEquals("no such index []", indexNotFoundException.getMessage());
21292129
}
21302130

2131+
public void testIgnoreAliasesOnNonWildcardValue() {
2132+
Metadata.Builder mdBuilder = Metadata.builder()
2133+
.put(indexBuilder("my_index").state(State.OPEN).putAlias(AliasMetadata.builder("my_alias")));
2134+
ClusterState state = ClusterState.builder(new ClusterName("_name")).metadata(mdBuilder).build();
2135+
2136+
// when ignoreAliases is set, and an alias is specified in the index expression without using a wildcard,
2137+
// an exception is expected.
2138+
IndicesOptions ignoreAliasesOptions = IndicesOptions.fromOptions(false, true, true, false, true, false, true, false);
2139+
2140+
IllegalArgumentException illegalArgumentException = expectThrows(
2141+
IllegalArgumentException.class,
2142+
() -> indexNameExpressionResolver.concreteIndexNames(state, ignoreAliasesOptions, "my_alias*", "-my_alias")
2143+
);
2144+
2145+
assertEquals(
2146+
"The provided expression [my_alias] matches an alias, specify the corresponding concrete indices instead.",
2147+
illegalArgumentException.getMessage()
2148+
);
2149+
}
2150+
21312151
public void testIgnoreThrottled() {
21322152
Metadata.Builder mdBuilder = Metadata.builder()
21332153
.put(

0 commit comments

Comments
 (0)