From f5a9cbfb516370409658d49c08f56080510aa348 Mon Sep 17 00:00:00 2001 From: yeshwanthsripathy Date: Sat, 2 Sep 2023 19:12:26 -0500 Subject: [PATCH] fixed flaky test testSerDe --- .../serde2/objectinspector/ObjectInspectorUtils.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorUtils.java b/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorUtils.java index 747564ad08a3..f7a3a739cb7f 100644 --- a/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorUtils.java +++ b/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorUtils.java @@ -24,6 +24,7 @@ import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Arrays; +import java.util.Comparator; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; @@ -558,6 +559,17 @@ public static StructField getStandardStructFieldRef(String fieldName, public static Field[] getDeclaredNonStaticFields(Class c) { Field[] f = c.getDeclaredFields(); ArrayList af = new ArrayList(); + Arrays.sort(f, Comparator.comparingInt(field -> { + try { + Field slotField = Field.class.getDeclaredField("slot"); + slotField.setAccessible(true); + return slotField.getInt(field); + } catch (NoSuchFieldException | IllegalAccessException | IllegalArgumentException e) { + e.printStackTrace(); + return 0; // Default value if there's an error + } + })); + for (int i = 0; i < f.length; ++i) { if (!Modifier.isStatic(f[i].getModifiers())) { af.add(f[i]);