This is an automated email from the ASF dual-hosted git repository.

NSAmelchev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new da8f1a73c9a IGNITE-28763 Fixed BinaryObjectBuilder enum type mapping 
(#13229)
da8f1a73c9a is described below

commit da8f1a73c9aaf2353ff0f95a66e8e86a49696651
Author: Nikita Amelchev <[email protected]>
AuthorDate: Thu Jun 11 15:29:44 2026 +0300

    IGNITE-28763 Fixed BinaryObjectBuilder enum type mapping (#13229)
---
 .../apache/ignite/internal/binary/BinaryUtils.java |  2 +-
 .../BinaryObjectBuilderDefaultMappersSelfTest.java | 37 ++++++++++++++++++++++
 2 files changed, 38 insertions(+), 1 deletion(-)

diff --git 
a/modules/binary/api/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
 
b/modules/binary/api/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
index 92740e79662..cbb9394cb2b 100644
--- 
a/modules/binary/api/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
+++ 
b/modules/binary/api/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
@@ -607,7 +607,7 @@ public class BinaryUtils {
         if (type != null)
             return type;
 
-        if (CommonUtils.isEnum(cls))
+        if (CommonUtils.isEnum(cls) || cls == Enum.class)
             return GridBinaryMarshaller.ENUM;
 
         if (cls.isArray())
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderDefaultMappersSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderDefaultMappersSelfTest.java
index a904baab269..5e0aedb6e3b 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderDefaultMappersSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderDefaultMappersSelfTest.java
@@ -822,6 +822,34 @@ public class BinaryObjectBuilderDefaultMappersSelfTest 
extends AbstractBinaryArr
         assertEquals("Object", meta.fieldTypeName("objectField"));
     }
 
+    /** */
+    @Test
+    @SuppressWarnings({"rawtypes", "unchecked"})
+    public void testSetBinaryEnumFieldWithEnumClass() {
+        IgniteBinary binary = binaries();
+
+        binary.registerEnum(BuilderEnum.class.getName(), F.asMap(
+            BuilderEnum.ONE.name(), BuilderEnum.ONE.ordinal(),
+            BuilderEnum.TWO.name(), BuilderEnum.TWO.ordinal()));
+
+        String typeName = "org.test.EnumMetaTest";
+        String fld = "enumField";
+
+        BinaryObject bo = builder(typeName)
+            .setField(fld, binary.buildEnum(BuilderEnum.class.getName(), 
BuilderEnum.ONE.name()))
+            .build();
+
+        assertEquals("Enum", bo.type().fieldTypeName(fld));
+        assertEquals(BuilderEnum.ONE.ordinal(), 
bo.<BinaryObject>field(fld).enumOrdinal());
+
+        bo = builder(typeName)
+            .setField(fld, binary.buildEnum(BuilderEnum.class.getName(), 
BuilderEnum.TWO.name()), (Class)Enum.class)
+            .build();
+
+        assertEquals("Enum", bo.type().fieldTypeName(fld));
+        assertEquals(BuilderEnum.TWO.ordinal(), 
bo.<BinaryObject>field(fld).enumOrdinal());
+    }
+
     /**
      * @param fullClsName Class name.
      * @return Expected type name according to configuration.
@@ -1077,6 +1105,15 @@ public class BinaryObjectBuilderDefaultMappersSelfTest 
extends AbstractBinaryArr
         private int i = 10;
     }
 
+    /** */
+    private enum BuilderEnum {
+        /** */
+        ONE,
+
+        /** */
+        TWO
+    }
+
     /**
      */
     private static class Key {

Reply via email to