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 {