Skip to content

Commit 32677c1

Browse files
committed
fix precommit
1 parent 7597820 commit 32677c1

File tree

1 file changed

+23
-15
lines changed

1 file changed

+23
-15
lines changed

server/src/test/java/org/elasticsearch/index/codec/tsdb/TsdbDocValueBwcTests.java

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,11 @@
2929
import org.apache.lucene.tests.util.TestUtil;
3030
import org.apache.lucene.util.BytesRef;
3131
import org.elasticsearch.cluster.metadata.DataStream;
32+
import org.elasticsearch.core.SuppressForbidden;
3233
import org.elasticsearch.test.ESTestCase;
3334

3435
import java.io.IOException;
36+
import java.lang.reflect.Field;
3537
import java.util.Arrays;
3638
import java.util.Locale;
3739
import java.util.Map;
@@ -210,21 +212,6 @@ void testMixedIndex(Codec oldCodec, Codec newCodec) throws IOException, NoSuchFi
210212
}
211213
}
212214

213-
// A hacky way to figure out whether doc values format is written in what version. Need to use reflection, because
214-
// PerFieldDocValuesFormat hides the doc values formats it wraps.
215-
private static void assertDocValuesFormatVersion(DirectoryReader reader, int expectedVersion) throws NoSuchFieldException,
216-
IllegalAccessException {
217-
for (var leafReaderContext : reader.leaves()) {
218-
var leaf = (SegmentReader) leafReaderContext.reader();
219-
var dvReader = leaf.getDocValuesReader();
220-
var f = dvReader.getClass().getDeclaredField("formats");
221-
f.setAccessible(true);
222-
Map<?, ?> formats = (Map<?, ?>) f.get(dvReader);
223-
var tsdbDvReader = (ES87TSDBDocValuesProducer) formats.get("ES87TSDB_0");
224-
assertEquals(expectedVersion, tsdbDvReader.version);
225-
}
226-
}
227-
228215
private IndexWriterConfig getTimeSeriesIndexWriterConfig(String hostnameField, String timestampField, Codec codec) {
229216
var config = new IndexWriterConfig();
230217
config.setIndexSort(
@@ -241,4 +228,25 @@ private IndexWriterConfig getTimeSeriesIndexWriterConfig(String hostnameField, S
241228
return config;
242229
}
243230

231+
// A hacky way to figure out whether doc values format is written in what version. Need to use reflection, because
232+
// PerFieldDocValuesFormat hides the doc values formats it wraps.
233+
private static void assertDocValuesFormatVersion(DirectoryReader reader, int expectedVersion) throws NoSuchFieldException,
234+
IllegalAccessException {
235+
for (var leafReaderContext : reader.leaves()) {
236+
var leaf = (SegmentReader) leafReaderContext.reader();
237+
var dvReader = leaf.getDocValuesReader();
238+
var field = getFormatsFieldFromPerFieldFieldsReader(dvReader.getClass());
239+
Map<?, ?> formats = (Map<?, ?>) field.get(dvReader);
240+
var tsdbDvReader = (ES87TSDBDocValuesProducer) formats.get("ES87TSDB_0");
241+
assertEquals(expectedVersion, tsdbDvReader.version);
242+
}
243+
}
244+
245+
@SuppressForbidden(reason = "access violation required in order to read private field for this test")
246+
private static Field getFormatsFieldFromPerFieldFieldsReader(Class<?> c) throws NoSuchFieldException {
247+
var field = c.getDeclaredField("formats");
248+
field.setAccessible(true);
249+
return field;
250+
}
251+
244252
}

0 commit comments

Comments
 (0)