Skip to content

Commit 6260f27

Browse files
committed
Fix UpdateQuery.Builder to allow only a scriptname to be set.
Signed-off-by: Peter-Josef Meisch <pj.meisch@sothawo.com> (cherry picked from commit 6974644)
1 parent b3bd77a commit 6260f27

File tree

2 files changed

+47
-2
lines changed

2 files changed

+47
-2
lines changed

src/main/java/org/springframework/data/elasticsearch/core/query/UpdateQuery.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -438,8 +438,8 @@ public Builder withScriptName(String scriptName) {
438438

439439
public UpdateQuery build() {
440440

441-
if (script == null && document == null && query == null) {
442-
throw new IllegalArgumentException("either script, document or query must be set");
441+
if (script == null && scriptName == null && document == null && query == null) {
442+
throw new IllegalArgumentException("either script, scriptName, document or query must be set");
443443
}
444444

445445
return new UpdateQuery(id, script, params, document, upsert, lang, routing, scriptedUpsert, docAsUpsert,
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package org.springframework.data.elasticsearch.core.query;
2+
3+
import org.junit.jupiter.api.DisplayName;
4+
import org.junit.jupiter.api.Test;
5+
import org.springframework.data.elasticsearch.core.document.Document;
6+
7+
class UpdateQueryTest {
8+
9+
@Test // #3205
10+
@DisplayName("should build query with only a script")
11+
void shouldBuildQueryWithOnlyAScript() {
12+
13+
UpdateQuery.builder("id")
14+
.withScript("script")
15+
.build();
16+
}
17+
18+
@Test // #3205
19+
@DisplayName("should build query with only a scriptname")
20+
void shouldBuildQueryWithOnlyAScriptName() {
21+
22+
UpdateQuery.builder("id")
23+
.withScriptName("scriptname")
24+
.build();
25+
}
26+
27+
@Test // #3205
28+
@DisplayName("should build query with only a document")
29+
void shouldBuildQueryWithOnlyASDocument() {
30+
31+
UpdateQuery.builder("id")
32+
.withDocument(Document.create())
33+
.build();
34+
}
35+
36+
@Test // #3205
37+
@DisplayName("should build query with only a query")
38+
void shouldBuildQueryWithOnlyAQuery() {
39+
40+
Query query = StringQuery.builder("StrignQuery").build();
41+
42+
UpdateQuery.builder(query)
43+
.build();
44+
}
45+
}

0 commit comments

Comments
 (0)