|
12 | 12 | import com.carrotsearch.randomizedtesting.annotations.Name; |
13 | 13 |
|
14 | 14 | import org.elasticsearch.TransportVersion; |
| 15 | +import org.elasticsearch.TransportVersions; |
| 16 | +import org.elasticsearch.Version; |
15 | 17 | import org.elasticsearch.client.Request; |
16 | 18 | import org.elasticsearch.client.Response; |
17 | 19 | import org.elasticsearch.common.Strings; |
|
21 | 23 | import org.elasticsearch.common.io.stream.StreamInput; |
22 | 24 | import org.elasticsearch.common.settings.Settings; |
23 | 25 | import org.elasticsearch.common.unit.Fuzziness; |
| 26 | +import org.elasticsearch.core.UpdateForV10; |
24 | 27 | import org.elasticsearch.index.query.BoolQueryBuilder; |
25 | 28 | import org.elasticsearch.index.query.ConstantScoreQueryBuilder; |
26 | 29 | import org.elasticsearch.index.query.DisMaxQueryBuilder; |
|
51 | 54 | import java.util.List; |
52 | 55 | import java.util.Map; |
53 | 56 |
|
| 57 | +import static org.elasticsearch.cluster.ClusterState.VERSION_INTRODUCING_TRANSPORT_VERSIONS; |
54 | 58 | import static org.elasticsearch.xcontent.XContentFactory.jsonBuilder; |
55 | 59 |
|
56 | 60 | /** |
@@ -245,7 +249,19 @@ public void testQueryBuilderBWC() throws Exception { |
245 | 249 | InputStream in = new ByteArrayInputStream(qbSource, 0, qbSource.length); |
246 | 250 | StreamInput input = new NamedWriteableAwareStreamInput(new InputStreamStreamInput(in), registry) |
247 | 251 | ) { |
248 | | - input.setTransportVersion(TransportVersion.readVersion(input)); |
| 252 | + @UpdateForV10(owner = UpdateForV10.Owner.SEARCH_FOUNDATIONS) // won't need to read <8.8 data anymore |
| 253 | + boolean originalClusterHasTransportVersion = parseLegacyVersion(getOldClusterVersion()).map( |
| 254 | + v -> v.onOrAfter(VERSION_INTRODUCING_TRANSPORT_VERSIONS) |
| 255 | + ).orElse(true); |
| 256 | + TransportVersion transportVersion; |
| 257 | + if (originalClusterHasTransportVersion == false) { |
| 258 | + transportVersion = TransportVersion.fromId( |
| 259 | + parseLegacyVersion(getOldClusterVersion()).map(Version::id).orElse(TransportVersions.MINIMUM_COMPATIBLE.id()) |
| 260 | + ); |
| 261 | + } else { |
| 262 | + transportVersion = TransportVersion.readVersion(input); |
| 263 | + } |
| 264 | + input.setTransportVersion(transportVersion); |
249 | 265 | QueryBuilder queryBuilder = input.readNamedWriteable(QueryBuilder.class); |
250 | 266 | assert in.read() == -1; |
251 | 267 | assertEquals(expectedQueryBuilder, queryBuilder); |
|
0 commit comments