From 4c2ae49bc6a09d086d4941fe5ed553bea8c577e7 Mon Sep 17 00:00:00 2001 From: Aleksandr Nikolaev <> Date: Mon, 21 Sep 2026 20:39:23 +0300 Subject: [PATCH] IGNITE-28849 Fix calcite test 21jdk --- .../ignite/testframework/GridTestUtils.java | 46 +------------------ 1 file changed, 2 insertions(+), 44 deletions(-) diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java b/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java index 02e9a4d21d250..2b87539725ae0 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java @@ -24,8 +24,6 @@ import java.io.IOException; import java.io.InputStream; import java.lang.annotation.Annotation; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; import java.lang.management.ManagementFactory; import java.lang.ref.ReferenceQueue; import java.lang.ref.SoftReference; @@ -1819,35 +1817,10 @@ private static Object findField(Class cls, Object obj, */ public static void setFieldValue(Object obj, String fieldName, Object val) throws IgniteException { assert obj != null; - assert fieldName != null; - try { - Class cls = obj instanceof Class ? (Class)obj : obj.getClass(); + Class cls = obj instanceof Class ? (Class)obj : obj.getClass(); - Field field = cls.getDeclaredField(fieldName); - - boolean isFinal = (field.getModifiers() & Modifier.FINAL) != 0; - - boolean isStatic = (field.getModifiers() & Modifier.STATIC) != 0; - - /** - * http://java.sun.com/docs/books/jls/third_edition/html/memory.html#17.5.3 - * If a final field is initialized to a compile-time constant in the field declaration, - * changes to the final field may not be observed. - */ - if (isFinal && isStatic) - throw new IgniteException("Modification of static final field through reflection."); - - boolean accessible = field.isAccessible(); - - if (!accessible) - field.setAccessible(true); - - field.set(obj, val); - } - catch (NoSuchFieldException | IllegalAccessException e) { - throw new IgniteException("Failed to set object field [obj=" + obj + ", field=" + fieldName + ']', e); - } + setFieldValue(obj, cls, fieldName, val); } /** @@ -1882,21 +1855,6 @@ public static void setFieldValue(Object obj, Class cls, String fieldName, Object if (isFinal && isStatic) throw new IgniteException("Modification of static final field through reflection."); - if (isFinal && U.majorJavaVersion(U.jdkVersion()) >= 12) { - MethodHandles.Lookup lookup = MethodHandles.privateLookupIn(Field.class, MethodHandles.lookup()); - - VarHandle varHandle = lookup.findVarHandle(Field.class, "modifiers", int.class); - - varHandle.set(field, field.getModifiers() & ~Modifier.FINAL); - } - else if (isFinal) { - Field modifiersField = Field.class.getDeclaredField("modifiers"); - - modifiersField.setAccessible(true); - - modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); - } - field.set(obj, val); } catch (NoSuchFieldException | IllegalAccessException e) {