Skip to content

Commit cf97a34

Browse files
authored
Merge branch '9.1' into backport/9.1/pr-132932
2 parents 829cca0 + 8f3c1a8 commit cf97a34

File tree

20 files changed

+342
-157
lines changed

20 files changed

+342
-157
lines changed

build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/toolchain/OracleOpenJdkToolchainResolverSpec.groovy

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class OracleOpenJdkToolchainResolverSpec extends AbstractToolchainResolverSpec {
3535
"36",
3636
"bdc68b4b9cbc4ebcb30745c85038d91d"
3737
),
38-
OracleOpenJdkToolchainResolver.getBundledJdkBuild("24+36@1f9ff9062db4449d8ca828c504ffae90", "24"),
38+
OracleOpenJdkToolchainResolver.getBundledJdkBuild("24.0.2+12@fdc5d0102fe0414db21410ad5834341f", "24"),
3939
]
4040
toolChain
4141
}
@@ -52,16 +52,16 @@ class OracleOpenJdkToolchainResolverSpec extends AbstractToolchainResolverSpec {
5252
[20, anyVendor(), LINUX, AARCH64, "https://download.oracle.com/java/GA/jdk20/bdc68b4b9cbc4ebcb30745c85038d91d/36/GPL/openjdk-20_linux-aarch64_bin.tar.gz"],
5353
[20, anyVendor(), WINDOWS, X86_64, "https://download.oracle.com/java/GA/jdk20/bdc68b4b9cbc4ebcb30745c85038d91d/36/GPL/openjdk-20_windows-x64_bin.zip"],
5454
// bundled jdk
55-
[24, ORACLE, MAC_OS, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-x64_bin.tar.gz"],
56-
[24, ORACLE, MAC_OS, AARCH64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-aarch64_bin.tar.gz"],
57-
[24, ORACLE, LINUX, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-x64_bin.tar.gz"],
58-
[24, ORACLE, LINUX, AARCH64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-aarch64_bin.tar.gz"],
59-
[24, ORACLE, WINDOWS, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_windows-x64_bin.zip"],
60-
[24, anyVendor(), MAC_OS, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-x64_bin.tar.gz"],
61-
[24, anyVendor(), MAC_OS, AARCH64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-aarch64_bin.tar.gz"],
62-
[24, anyVendor(), LINUX, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-x64_bin.tar.gz"],
63-
[24, anyVendor(), LINUX, AARCH64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-aarch64_bin.tar.gz"],
64-
[24, anyVendor(), WINDOWS, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_windows-x64_bin.zip"]
55+
[24, ORACLE, MAC_OS, X86_64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_macos-x64_bin.tar.gz"],
56+
[24, ORACLE, MAC_OS, AARCH64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_macos-aarch64_bin.tar.gz"],
57+
[24, ORACLE, LINUX, X86_64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-x64_bin.tar.gz"],
58+
[24, ORACLE, LINUX, AARCH64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-aarch64_bin.tar.gz"],
59+
[24, ORACLE, WINDOWS, X86_64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_windows-x64_bin.zip"],
60+
[24, anyVendor(), MAC_OS, X86_64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_macos-x64_bin.tar.gz"],
61+
[24, anyVendor(), MAC_OS, AARCH64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_macos-aarch64_bin.tar.gz"],
62+
[24, anyVendor(), LINUX, X86_64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-x64_bin.tar.gz"],
63+
[24, anyVendor(), LINUX, AARCH64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-aarch64_bin.tar.gz"],
64+
[24, anyVendor(), WINDOWS, X86_64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_windows-x64_bin.zip"]
6565
]
6666
}
6767

build-tools-internal/version.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ elasticsearch = 9.1.3
22
lucene = 10.2.2
33

44
bundled_jdk_vendor = openjdk
5-
bundled_jdk = 24+36@1f9ff9062db4449d8ca828c504ffae90
5+
bundled_jdk = 24.0.2+12@fdc5d0102fe0414db21410ad5834341f
66
# optional dependencies
77
spatial4j = 0.7
88
jts = 1.15.0

build-tools/src/main/java/org/elasticsearch/gradle/LazyFileOutputStream.java

Lines changed: 36 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
* or more contributor license agreements. Licensed under the "Elastic License
44
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
55
* Public License v 1"; you may not use this file except in compliance with, at
6-
* your election, the "Elastic License 2.0", the "GNU Affero General Public
7-
* License v3.0 only", or the "Server Side Public License, v 1".
6+
* your election, the "Server Side Public License v3.0 only", or the "Server Side Public License, v 1".
87
*/
98

109
package org.elasticsearch.gradle;
@@ -18,48 +17,58 @@
1817
* An outputstream to a File that is lazily opened on the first write.
1918
*/
2019
class LazyFileOutputStream extends OutputStream {
21-
private OutputStream delegate;
20+
private final File file;
21+
private volatile OutputStream delegate;
22+
private volatile boolean initialized = false;
23+
private final Object lock = new Object();
2224

2325
LazyFileOutputStream(File file) {
24-
// use an initial dummy delegate to avoid doing a conditional on every write
25-
this.delegate = new OutputStream() {
26-
private void bootstrap() throws IOException {
27-
file.getParentFile().mkdirs();
28-
delegate = new FileOutputStream(file);
29-
}
30-
31-
@Override
32-
public void write(int b) throws IOException {
33-
bootstrap();
34-
delegate.write(b);
35-
}
36-
37-
@Override
38-
public void write(byte b[], int off, int len) throws IOException {
39-
bootstrap();
40-
delegate.write(b, off, len);
41-
}
26+
this.file = file;
27+
}
4228

43-
@Override
44-
public void write(byte b[]) throws IOException {
45-
bootstrap();
46-
delegate.write(b);
29+
private void ensureInitialized() throws IOException {
30+
if (initialized == false) {
31+
synchronized (lock) {
32+
if (initialized == false) {
33+
file.getParentFile().mkdirs();
34+
delegate = new FileOutputStream(file);
35+
initialized = true;
36+
}
4737
}
48-
};
38+
}
4939
}
5040

5141
@Override
5242
public void write(int b) throws IOException {
43+
ensureInitialized();
5344
delegate.write(b);
5445
}
5546

5647
@Override
5748
public void write(byte b[], int off, int len) throws IOException {
49+
ensureInitialized();
5850
delegate.write(b, off, len);
5951
}
6052

53+
@Override
54+
public void write(byte b[]) throws IOException {
55+
ensureInitialized();
56+
delegate.write(b);
57+
}
58+
6159
@Override
6260
public void close() throws IOException {
63-
delegate.close();
61+
synchronized (lock) {
62+
if (initialized && delegate != null) {
63+
delegate.close();
64+
}
65+
}
66+
}
67+
68+
@Override
69+
public void flush() throws IOException {
70+
if (initialized && delegate != null) {
71+
delegate.flush();
72+
}
6473
}
6574
}

docs/changelog/132922.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 132922
2+
summary: Change GeoIpCache and EnrichCache to LongAdder
3+
area: Ingest Node
4+
type: bug
5+
issues: []

docs/changelog/133004.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 133004
2+
summary: Limit frequency of feature last-used time updates
3+
area: License
4+
type: bug
5+
issues: []

docs/changelog/133113.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 133113
2+
summary: Limit the depth of a filter
3+
area: Infra/REST API
4+
type: enhancement
5+
issues: []

docs/changelog/133119.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 133119
2+
summary: Update bundled JDK to Java 24.0.2+12
3+
area: Packaging
4+
type: upgrade
5+
issues: []

docs/changelog/133188.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pr: 133188
2+
summary: Don't fail search if bottom doc can't be formatted
3+
area: Search
4+
type: bug
5+
issues:
6+
- 125321

gradle/verification-metadata.xml

Lines changed: 4 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@
99
<trust group="beats" name="metricbeat"/>
1010
<trust group="beats" name="metricbeat-fips"/>
1111
<trust group="elasticsearch-distribution" name="elasticsearch"/>
12-
<trust group="openjdk_.*" regex="true"/>
1312
<trust group="org.elasticsearch"/>
1413
<trust group="org.elasticsearch.distribution.zip" name="elasticsearch"/>
1514
<trust group="org.elasticsearch.ml"/>
1615
<trust group="org.elasticsearch.plugin"/>
1716
<trust file=".*-javadoc[.]jar" regex="true"/>
1817
<trust file=".*-sources[.]jar" regex="true"/>
18+
<trust group="openjdk_.*" regex="true"/>
1919
</trusted-artifacts>
2020
</configuration>
2121
<components>
@@ -1284,14 +1284,9 @@
12841284
<sha256 value="544fc92d2625332a9a8eeaa7a7274cf1af6703936a50afa80d92a78200a7de34" origin="Generated by Gradle"/>
12851285
</artifact>
12861286
</component>
1287-
<component group="com.sun.mail" name="jakarta.mail" version="1.6.3">
1288-
<artifact name="jakarta.mail-1.6.3.jar">
1289-
<sha256 value="018ffd5684fd758157886933cc74116996d7f5757cc6f104bb43a647a3815f8a" origin="Generated by Gradle"/>
1290-
</artifact>
1291-
</component>
1292-
<component group="com.sun.mail" name="jakarta.mail" version="1.6.4">
1293-
<artifact name="jakarta.mail-1.6.4.jar">
1294-
<sha256 value="65d4c18e15ea2b9eb129098ae92db4cf996d85179f30ac34f7d4db856ffaa3f9" origin="Generated by Gradle"/>
1287+
<component group="com.sun.mail" name="jakarta.mail" version="1.6.8">
1288+
<artifact name="jakarta.mail-1.6.8.jar">
1289+
<sha256 value="c83f1a1ed580a35878957de7367071be27026d02d34ace6267d0c3da23e193c2" origin="Generated by Gradle"/>
12951290
</artifact>
12961291
</component>
12971292
<component group="com.sun.xml.bind" name="jaxb-impl" version="2.2.3-1">
@@ -2007,90 +2002,6 @@
20072002
<sha256 value="0a4aa0f2606bd6292a7ccd7d67a0db914bf5874dfb8a6184df3e6d63cdc93702" origin="Generated by Gradle"/>
20082003
</artifact>
20092004
</component>
2010-
<component group="openjdk_21" name="linux" version="21.0.2">
2011-
<artifact name="linux-21.0.2-aarch64.tar.gz">
2012-
<sha256 value="08db1392a48d4eb5ea5315cf8f18b89dbaf36cda663ba882cf03c704c9257ec2" origin="Generated by Gradle"/>
2013-
</artifact>
2014-
<artifact name="linux-21.0.2-x64.tar.gz">
2015-
<sha256 value="a2def047a73941e01a73739f92755f86b895811afb1f91243db214cff5bdac3f" origin="Generated by Gradle"/>
2016-
</artifact>
2017-
</component>
2018-
<component group="openjdk_21" name="macos" version="21.0.2">
2019-
<artifact name="macos-21.0.2-aarch64.tar.gz">
2020-
<sha256 value="b3d588e16ec1e0ef9805d8a696591bd518a5cea62567da8f53b5ce32d11d22e4" origin="Generated by Gradle"/>
2021-
</artifact>
2022-
<artifact name="macos-21.0.2-x64.tar.gz">
2023-
<sha256 value="8fd09e15dc406387a0aba70bf5d99692874e999bf9cd9208b452b5d76ac922d3" origin="Generated by Gradle"/>
2024-
</artifact>
2025-
</component>
2026-
<component group="openjdk_21" name="windows" version="21.0.2">
2027-
<artifact name="windows-21.0.2-x64.zip">
2028-
<sha256 value="b6c17e747ae78cdd6de4d7532b3164b277daee97c007d3eaa2b39cca99882664" origin="Generated by Gradle"/>
2029-
</artifact>
2030-
</component>
2031-
<component group="openjdk_22" name="linux" version="22.0.1">
2032-
<artifact name="linux-22.0.1-aarch64.tar.gz">
2033-
<sha256 value="0887c42b9897f889415a6f7b88549d38af99f6ef2d1117199de012beab0631eb" origin="Generated by Gradle"/>
2034-
</artifact>
2035-
<artifact name="linux-22.0.1-x64.tar.gz">
2036-
<sha256 value="133c8b65113304904cdef7c9103274d141cfb64b191ff48ceb6528aca25c67b1" origin="Generated by Gradle"/>
2037-
</artifact>
2038-
</component>
2039-
<component group="openjdk_22" name="macos" version="22.0.1">
2040-
<artifact name="macos-22.0.1-aarch64.tar.gz">
2041-
<sha256 value="b949a3bc13e3c5152ab55d12e699dfa6c8b00bedeb8302b13be4aec3ee734351" origin="Generated by Gradle"/>
2042-
</artifact>
2043-
<artifact name="macos-22.0.1-x64.tar.gz">
2044-
<sha256 value="5daa4f9894cc3a617a5f9fe2c48e5391d3a2e672c91e1597041672f57696846f" origin="Generated by Gradle"/>
2045-
</artifact>
2046-
</component>
2047-
<component group="openjdk_22" name="windows" version="22.0.1">
2048-
<artifact name="windows-22.0.1-x64.zip">
2049-
<sha256 value="de7f00fd1bd0d3a4c678fff2681dfad19284d74d357218a4be6f623488d040da" origin="Generated by Gradle"/>
2050-
</artifact>
2051-
</component>
2052-
<component group="openjdk_23" name="linux" version="23">
2053-
<artifact name="linux-23-aarch64.tar.gz">
2054-
<sha256 value="076dcf7078cdf941951587bf92733abacf489a6570f1df97ee35945ffebec5b7" origin="Generated by Gradle"/>
2055-
</artifact>
2056-
<artifact name="linux-23-x64.tar.gz">
2057-
<sha256 value="08fea92724127c6fa0f2e5ea0b07ff4951ccb1e2f22db3c21eebbd7347152a67" origin="Generated by Gradle"/>
2058-
</artifact>
2059-
</component>
2060-
<component group="openjdk_23" name="macos" version="23">
2061-
<artifact name="macos-23-aarch64.tar.gz">
2062-
<sha256 value="9527bf080a74ae6dca51df413aa826f0c011c6048885e4c8ad112172be8815f3" origin="Generated by Gradle"/>
2063-
</artifact>
2064-
<artifact name="macos-23-x64.tar.gz">
2065-
<sha256 value="5c3a909fd2079d0e376dd43c85c4f7d02d08914866f196480bd47784b2a0121e" origin="Generated by Gradle"/>
2066-
</artifact>
2067-
</component>
2068-
<component group="openjdk_23" name="windows" version="23">
2069-
<artifact name="windows-23-x64.zip">
2070-
<sha256 value="cba5013874ba50cae543c86fe6423453816c77281e2751a8a9a633d966f1dc04" origin="Generated by Gradle"/>
2071-
</artifact>
2072-
</component>
2073-
<component group="openjdk_24" name="linux" version="24">
2074-
<artifact name="linux-24-aarch64.tar.gz">
2075-
<sha256 value="a03867ed061c7bb661231e62b0967ff5a5a0b1bbaa37bdead3a924bd2ba3215f" origin="Generated by Gradle"/>
2076-
</artifact>
2077-
<artifact name="linux-24-x64.tar.gz">
2078-
<sha256 value="88b090fa80c6c1d084ec9a755233967458788e2c0777ae2e172230c5c692d7ef" origin="Generated by Gradle"/>
2079-
</artifact>
2080-
</component>
2081-
<component group="openjdk_24" name="macos" version="24">
2082-
<artifact name="macos-24-aarch64.tar.gz">
2083-
<sha256 value="f7133238a12714a62c5ad2bd4da6741130be1a82512065da9ca23dee26b2d3d3" origin="Generated by Gradle"/>
2084-
</artifact>
2085-
<artifact name="macos-24-x64.tar.gz">
2086-
<sha256 value="6bbfb1d01741cbe55ab90299cb91464b695de9a3ace85c15131aa2f50292f321" origin="Generated by Gradle"/>
2087-
</artifact>
2088-
</component>
2089-
<component group="openjdk_24" name="windows" version="24">
2090-
<artifact name="windows-24-x64.zip">
2091-
<sha256 value="11d1d9f6ac272d5361c8a0bef01894364081c7fb1a6914c2ad2fc312ae83d63b" origin="Generated by Gradle"/>
2092-
</artifact>
2093-
</component>
20942005
<component group="org.abego.treelayout" name="org.abego.treelayout.core" version="1.0.3">
20952006
<artifact name="org.abego.treelayout.core-1.0.3.jar">
20962007
<sha256 value="fa5e31395c39c2e7d46aca0f81f72060931607b2fa41bd36038eb2cb6fb93326" origin="Generated by Gradle"/>

libs/x-content/src/main/java/org/elasticsearch/xcontent/support/filtering/FilterPath.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ public class FilterPath {
2222
private static final String WILDCARD = "*";
2323
private static final String DOUBLE_WILDCARD = "**";
2424

25+
// This is ridiculously large, but we can be 100% certain that if any filter tries to exceed this depth then it is a mistake
26+
static final int MAX_TREE_DEPTH = 500;
27+
2528
private final Map<String, FilterPath> termsChildren;
2629
private final FilterPath[] wildcardChildren;
2730
private final String pattern;
@@ -132,6 +135,7 @@ private boolean matchFieldNamesWithDots(String name, int dotIndex, List<FilterPa
132135
}
133136

134137
private static class FilterPathBuilder {
138+
135139
private static class BuildNode {
136140
private final Map<String, BuildNode> children;
137141
private final boolean isFinalNode;
@@ -145,14 +149,19 @@ private static class BuildNode {
145149
private final BuildNode root = new BuildNode(false);
146150

147151
void insert(String filter) {
148-
insertNode(filter, root);
152+
insertNode(filter, root, 0);
149153
}
150154

151155
FilterPath build() {
152156
return buildPath("", root);
153157
}
154158

155-
static void insertNode(String filter, BuildNode node) {
159+
static void insertNode(String filter, BuildNode node, int depth) {
160+
if (depth > MAX_TREE_DEPTH) {
161+
throw new IllegalArgumentException(
162+
"Filter exceeds maximum depth at [" + (filter.length() > 100 ? filter.substring(0, 100) : filter) + "]"
163+
);
164+
}
156165
int end = filter.length();
157166
int splitPosition = -1;
158167
boolean findEscapes = false;
@@ -171,7 +180,7 @@ static void insertNode(String filter, BuildNode node) {
171180
String field = findEscapes ? filter.substring(0, splitPosition).replace("\\.", ".") : filter.substring(0, splitPosition);
172181
BuildNode child = node.children.computeIfAbsent(field, f -> new BuildNode(false));
173182
if (false == child.isFinalNode) {
174-
insertNode(filter.substring(splitPosition + 1), child);
183+
insertNode(filter.substring(splitPosition + 1), child, depth + 1);
175184
}
176185
} else {
177186
String field = findEscapes ? filter.replace("\\.", ".") : filter;

0 commit comments

Comments
 (0)