From bbd999e789f70f161e8861d383b839bdb33969b6 Mon Sep 17 00:00:00 2001 From: Michail Romaios Date: Mon, 20 Oct 2025 12:41:36 +0200 Subject: [PATCH 1/3] fix(test:ci): prevent negative embedding values --- .../inference/mock/TestSparseInferenceServiceExtension.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugin/inference/qa/test-service-plugin/src/main/java/org/elasticsearch/xpack/inference/mock/TestSparseInferenceServiceExtension.java b/x-pack/plugin/inference/qa/test-service-plugin/src/main/java/org/elasticsearch/xpack/inference/mock/TestSparseInferenceServiceExtension.java index 86dcb56fa369d..138c5e6ad18ee 100644 --- a/x-pack/plugin/inference/qa/test-service-plugin/src/main/java/org/elasticsearch/xpack/inference/mock/TestSparseInferenceServiceExtension.java +++ b/x-pack/plugin/inference/qa/test-service-plugin/src/main/java/org/elasticsearch/xpack/inference/mock/TestSparseInferenceServiceExtension.java @@ -191,7 +191,7 @@ protected ServiceSettings getServiceSettingsFromMap(Map serviceS private static float generateEmbedding(String input, int position) { // Ensure non-negative and non-zero values for features - return Math.abs(input.hashCode()) + 1 + position; + return Integer.toUnsignedLong(input.hashCode()) + 1 + position; } public static class Configuration { From b103dd860973f591fb3a685b9da3313a64b80cc9 Mon Sep 17 00:00:00 2001 From: Michail Romaios Date: Mon, 20 Oct 2025 16:33:27 +0200 Subject: [PATCH 2/3] fix overflow --- .../inference/mock/TestSparseInferenceServiceExtension.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/x-pack/plugin/inference/qa/test-service-plugin/src/main/java/org/elasticsearch/xpack/inference/mock/TestSparseInferenceServiceExtension.java b/x-pack/plugin/inference/qa/test-service-plugin/src/main/java/org/elasticsearch/xpack/inference/mock/TestSparseInferenceServiceExtension.java index 138c5e6ad18ee..e8a8b8f8ce80e 100644 --- a/x-pack/plugin/inference/qa/test-service-plugin/src/main/java/org/elasticsearch/xpack/inference/mock/TestSparseInferenceServiceExtension.java +++ b/x-pack/plugin/inference/qa/test-service-plugin/src/main/java/org/elasticsearch/xpack/inference/mock/TestSparseInferenceServiceExtension.java @@ -32,6 +32,7 @@ import org.elasticsearch.inference.WeightedToken; import org.elasticsearch.inference.configuration.SettingsConfigurationFieldType; import org.elasticsearch.rest.RestStatus; +import org.elasticsearch.search.lookup.FieldLookup; import org.elasticsearch.xcontent.ToXContentObject; import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xpack.core.inference.results.ChunkedInferenceEmbedding; @@ -191,7 +192,9 @@ protected ServiceSettings getServiceSettingsFromMap(Map serviceS private static float generateEmbedding(String input, int position) { // Ensure non-negative and non-zero values for features - return Integer.toUnsignedLong(input.hashCode()) + 1 + position; + int hash = input.hashCode(); + int absHash = (hash == Integer.MIN_VALUE) ? Integer.MAX_VALUE : Math.abs(hash); + return absHash + 1.0f + position; } public static class Configuration { From b0999f5a77e38057b65274beca4243654691a711 Mon Sep 17 00:00:00 2001 From: elasticsearchmachine Date: Mon, 20 Oct 2025 14:39:33 +0000 Subject: [PATCH 3/3] [CI] Auto commit changes from spotless --- .../inference/mock/TestSparseInferenceServiceExtension.java | 1 - 1 file changed, 1 deletion(-) diff --git a/x-pack/plugin/inference/qa/test-service-plugin/src/main/java/org/elasticsearch/xpack/inference/mock/TestSparseInferenceServiceExtension.java b/x-pack/plugin/inference/qa/test-service-plugin/src/main/java/org/elasticsearch/xpack/inference/mock/TestSparseInferenceServiceExtension.java index e8a8b8f8ce80e..c7cd328ce10b3 100644 --- a/x-pack/plugin/inference/qa/test-service-plugin/src/main/java/org/elasticsearch/xpack/inference/mock/TestSparseInferenceServiceExtension.java +++ b/x-pack/plugin/inference/qa/test-service-plugin/src/main/java/org/elasticsearch/xpack/inference/mock/TestSparseInferenceServiceExtension.java @@ -32,7 +32,6 @@ import org.elasticsearch.inference.WeightedToken; import org.elasticsearch.inference.configuration.SettingsConfigurationFieldType; import org.elasticsearch.rest.RestStatus; -import org.elasticsearch.search.lookup.FieldLookup; import org.elasticsearch.xcontent.ToXContentObject; import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xpack.core.inference.results.ChunkedInferenceEmbedding;