Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions build-tools-internal/src/main/resources/fips_java.security
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,6 @@ jdk.xml.dsig.secureValidationPolicy=\
noRetrievalMethodLoops
jceks.key.serialFilter = java.base/java.lang.Enum;java.base/java.security.KeyRep;\
java.base/java.security.KeyRep$Type;java.base/javax.crypto.spec.SecretKeySpec;!*

# Needed since JDK25 to match the default config in the out-of-the-box java.security
jdk.includeInExceptions=hostInfoExclSocket
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,6 @@ jdk.xml.dsig.secureValidationPolicy=\
noRetrievalMethodLoops
jceks.key.serialFilter = java.base/java.lang.Enum;java.base/java.security.KeyRep;\
java.base/java.security.KeyRep$Type;java.base/javax.crypto.spec.SecretKeySpec;!*

# Needed since JDK25 to match the default config in the out-of-the-box java.security
jdk.includeInExceptions=hostInfoExclSocket
2 changes: 1 addition & 1 deletion build-tools-internal/version.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ elasticsearch = 9.2.0
lucene = 10.2.2

bundled_jdk_vendor = openjdk
bundled_jdk = 24.0.2+12@fdc5d0102fe0414db21410ad5834341f
bundled_jdk = 25+36@bd75d5f9689641da8e1daabeccb5528b
# optional dependencies
spatial4j = 0.7
jts = 1.15.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
import static org.elasticsearch.client.RestClientTestUtil.randomErrorNoRetryStatusCode;
import static org.elasticsearch.client.RestClientTestUtil.randomOkStatusCode;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.Matchers.startsWith;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
Expand Down Expand Up @@ -314,7 +315,7 @@ public void testNodeSelector() throws Exception {
} catch (ConnectException e) {
// Windows isn't consistent here. Sometimes the message is even null!
if (false == System.getProperty("os.name").startsWith("Windows")) {
assertEquals("Connection refused", e.getMessage());
assertThat(e.getMessage(), startsWith("Connection refused"));
}
}
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@

import static java.util.Collections.singletonList;
import static org.hamcrest.Matchers.instanceOf;
import static org.hamcrest.Matchers.startsWith;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertSame;
Expand Down Expand Up @@ -105,7 +106,7 @@ public void onSuccess(Response response) {
public void onFailure(Exception exception) {
try {
assertThat(exception, instanceOf(IllegalArgumentException.class));
assertEquals("Expected scheme name at index 0: ::http:///", exception.getMessage());
assertThat(exception.getMessage(), startsWith(("Expected scheme name")));
} finally {
latch.countDown();
}
Expand Down
3 changes: 3 additions & 0 deletions test/test-clusters/src/main/resources/fips/fips_java.security
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,6 @@ jdk.xml.dsig.secureValidationPolicy=\
noRetrievalMethodLoops
jceks.key.serialFilter = java.base/java.lang.Enum;java.base/java.security.KeyRep;\
java.base/java.security.KeyRep$Type;java.base/javax.crypto.spec.SecretKeySpec;!*

# Needed since JDK25 to match the default config in the out-of-the-box java.security
jdk.includeInExceptions=hostInfoExclSocket
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,7 @@ jdk.xml.dsig.secureValidationPolicy=\
noRetrievalMethodLoops
jceks.key.serialFilter = java.base/java.lang.Enum;java.base/java.security.KeyRep;\
java.base/java.security.KeyRep$Type;java.base/javax.crypto.spec.SecretKeySpec;!*

# Needed since JDK25 to match the default config in the out-of-the-box java.security
jdk.includeInExceptions=hostInfoExclSocket

5 changes: 5 additions & 0 deletions x-pack/plugin/esql/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,11 @@ interface Injected {
}

tasks.named("test").configure {
// prevent empty stacktraces on JDK 25 for intrinsic Math.*Exact invocations
// https://bugs.openjdk.org/browse/JDK-8367990
// https://github.com/elastic/elasticsearch/issues/135009
jvmArgs '-XX:-OmitStackTraceInFastThrow'

def injected = project.objects.newInstance(Injected)
// Define the folder to delete and recreate
def tempDir = file("build/testrun/test/temp/esql")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

import static org.elasticsearch.xpack.inference.Utils.inferenceUtilityExecutors;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.startsWith;
import static org.mockito.Mockito.mock;

public class CustomRequestManagerTests extends ESTestCase {
Expand Down Expand Up @@ -81,6 +82,6 @@ public void testCreateRequest_ThrowsException_ForInvalidUrl() {
var exception = expectThrows(ElasticsearchStatusException.class, () -> listener.actionGet(TimeValue.timeValueSeconds(30)));

assertThat(exception.getMessage(), is("Failed to construct the custom service request"));
assertThat(exception.getCause().getMessage(), is("Failed to build URI, error: Illegal character in path at index 0: ^"));
assertThat(exception.getCause().getMessage(), startsWith("Failed to build URI, error: Illegal character in path"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@

import static org.hamcrest.Matchers.instanceOf;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.startsWith;

public class CustomRequestTests extends ESTestCase {

Expand Down Expand Up @@ -380,7 +381,7 @@ public void testCreateRequest_ThrowsException_ForInvalidUrl() {
IllegalStateException.class,
() -> new CustomRequest(RerankParameters.of(new QueryAndDocsInputs("query string", List.of("abc", "123"))), model)
);
assertThat(exception.getMessage(), is("Failed to build URI, error: Illegal character in path at index 0: ^"));
assertThat(exception.getMessage(), startsWith("Failed to build URI, error: Illegal character in path"));
}

private static String convertToString(InputStream inputStream) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.elasticsearch.test.ESTestCase;
import org.elasticsearch.xpack.sql.client.SslConfig;
import org.elasticsearch.xpack.sql.client.SuppressForbidden;
import org.hamcrest.Matchers;

import java.net.URI;
import java.net.URISyntaxException;
Expand Down Expand Up @@ -43,12 +44,7 @@ private JdbcConfiguration ci(String url) throws SQLException {

public void testInvalidUrl() {
JdbcSQLException e = expectThrows(JdbcSQLException.class, () -> ci("jdbc:es://localhost9200/?ssl=#5#"));
assertEquals(
"Invalid URL: Invalid connection configuration: Illegal character in fragment at index 28: "
+ "http://localhost9200/?ssl=#5#; format should be "
+ "[jdbc:[es|elasticsearch]://[[http|https]://]?[host[:port]]?/[prefix]?[\\?[option=value]&]*]",
e.getMessage()
);
assertThat(e.getMessage(), Matchers.startsWith("Invalid URL: Invalid connection configuration: Illegal character in fragment"));
}

public void testJustThePrefix() throws Exception {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import static org.elasticsearch.xpack.sql.client.UriUtils.appendSegmentToPath;
import static org.elasticsearch.xpack.sql.client.UriUtils.parseURI;
import static org.elasticsearch.xpack.sql.client.UriUtils.removeQuery;
import static org.hamcrest.Matchers.matchesPattern;

public class UriUtilsTests extends ESTestCase {

Expand Down Expand Up @@ -89,9 +90,10 @@ public void testUnsupportedProtocol() throws Exception {
}

public void testMalformedWhiteSpace() throws Exception {
assertEquals(
"Invalid connection configuration: Illegal character in authority at index 7: http:// ",
expectThrows(IllegalArgumentException.class, () -> parseURI(" ", DEFAULT_URI)).getMessage()
assertThat(
expectThrows(IllegalArgumentException.class, () -> parseURI(" ", DEFAULT_URI)).getMessage(),
// Use a lenient regex here since later JDKs trim exception message whitespace
matchesPattern("^Invalid connection configuration: Illegal character in authority at index 7: http:// ?")
);
}

Expand Down