From cf358e426c7dd80018ba53884c9205e6f10ac181 Mon Sep 17 00:00:00 2001 From: Simon Willnauer Date: Tue, 26 Jan 2016 14:30:21 +0100 Subject: [PATCH] Use Version#id to parse version from settings. When a Version is passed to `Settings#put(String, Version)` it's id is used as an integer which should also be used to deserialize it on the consumer end. Today AssertinLocalTransport expects Version#toString() to be used which can lead to subtile bugs in tests. --- .../search/aggregations/bucket/DateHistogramOffsetIT.java | 2 +- .../elasticsearch/test/transport/AssertingLocalTransport.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramOffsetIT.java b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramOffsetIT.java index 75c0fc25e6d..cbd9a250ebd 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramOffsetIT.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramOffsetIT.java @@ -61,7 +61,7 @@ public class DateHistogramOffsetIT extends ESIntegTestCase { protected Settings nodeSettings(int nodeOrdinal) { return Settings.builder() .put(super.nodeSettings(nodeOrdinal)) - .put(AssertingLocalTransport.ASSERTING_TRANSPORT_MIN_VERSION_KEY.getKey(), Version.V_1_4_0_Beta1.toString()).build(); + .put(AssertingLocalTransport.ASSERTING_TRANSPORT_MIN_VERSION_KEY.getKey(), Version.V_1_4_0_Beta1).build(); } @Before diff --git a/test/framework/src/main/java/org/elasticsearch/test/transport/AssertingLocalTransport.java b/test/framework/src/main/java/org/elasticsearch/test/transport/AssertingLocalTransport.java index d66acb7ff06..9e8d7a4af85 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/transport/AssertingLocalTransport.java +++ b/test/framework/src/main/java/org/elasticsearch/test/transport/AssertingLocalTransport.java @@ -62,9 +62,9 @@ public class AssertingLocalTransport extends LocalTransport { } public static final Setting ASSERTING_TRANSPORT_MIN_VERSION_KEY = new Setting<>("transport.asserting.version.min", - Version.CURRENT.minimumCompatibilityVersion().toString(), Version::fromString, false, Setting.Scope.CLUSTER); + Integer.toString(Version.CURRENT.minimumCompatibilityVersion().id), (s) -> Version.fromId(Integer.parseInt(s)), false, Setting.Scope.CLUSTER); public static final Setting ASSERTING_TRANSPORT_MAX_VERSION_KEY = new Setting<>("transport.asserting.version.max", - Version.CURRENT.toString(), Version::fromString, false, Setting.Scope.CLUSTER); + Integer.toString(Version.CURRENT.id), (s) -> Version.fromId(Integer.parseInt(s)), false, Setting.Scope.CLUSTER); private final Random random; private final Version minVersion; private final Version maxVersion;