You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ni...@apache.org on 2025/05/03 08:32:43 UTC

(ignite) branch master updated: IGNITE-25243 Make BinaryEnumObjectImpl package private (#12041)

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

nizhikov 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 de58ff8952e IGNITE-25243 Make BinaryEnumObjectImpl package private (#12041)
de58ff8952e is described below

commit de58ff8952edee755ad56e73eabe3805ab7b9bf6
Author: Maksim Davydov <70...@users.noreply.github.com>
AuthorDate: Sat May 3 11:32:34 2025 +0300

    IGNITE-25243 Make BinaryEnumObjectImpl package private (#12041)
---
 .../cache/store/jdbc/CacheAbstractJdbcStore.java   |  7 ++--
 .../binary/BinaryArrayIdentityResolver.java        |  6 +--
 .../internal/binary/BinaryEnumObjectImpl.java      |  8 ++--
 .../ignite/internal/binary/BinaryObjectEx.java     |  7 ++++
 .../apache/ignite/internal/binary/BinaryUtils.java | 44 +++++++++++++++++++++-
 .../ignite/internal/binary/BinaryWriterExImpl.java |  2 +-
 .../binary/builder/BinaryBuilderSerializer.java    |  9 ++---
 .../binary/builder/BinaryObjectBuilderImpl.java    |  6 +--
 .../ignite/internal/client/thin/ClientBinary.java  |  5 +--
 .../communication/GridIoMessageFactory.java        |  4 +-
 .../binary/CacheObjectBinaryProcessorImpl.java     |  7 ++--
 .../internal/binary/BinaryEnumsSelfTest.java       |  2 +-
 .../cache/CacheEnumOperationsAbstractTest.java     |  4 +-
 .../GridCacheReplicatedPreloadSelfTest.java        |  4 +-
 .../binary/BinaryObjectImplSerializer.java         |  2 +-
 15 files changed, 80 insertions(+), 37 deletions(-)

diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
index e170b4d7bb0..f322f93111f 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
@@ -59,7 +59,8 @@ import org.apache.ignite.cache.store.jdbc.dialect.JdbcDialect;
 import org.apache.ignite.cache.store.jdbc.dialect.MySQLDialect;
 import org.apache.ignite.cache.store.jdbc.dialect.OracleDialect;
 import org.apache.ignite.cache.store.jdbc.dialect.SQLServerDialect;
-import org.apache.ignite.internal.binary.BinaryEnumObjectImpl;
+import org.apache.ignite.internal.binary.BinaryObjectEx;
+import org.apache.ignite.internal.binary.BinaryUtils;
 import org.apache.ignite.internal.util.tostring.GridToStringExclude;
 import org.apache.ignite.internal.util.typedef.C1;
 import org.apache.ignite.internal.util.typedef.F;
@@ -1356,8 +1357,8 @@ public abstract class CacheAbstractJdbcStore<K, V> implements CacheStore<K, V>,
 
                         fieldVal = NUMERIC_TYPES.contains(field.getDatabaseFieldType()) ? val.ordinal() : val.name();
                     }
-                    else if (fieldVal instanceof BinaryEnumObjectImpl) {
-                        BinaryEnumObjectImpl val = (BinaryEnumObjectImpl)fieldVal;
+                    else if (BinaryUtils.isBinaryEnumObject(fieldVal)) {
+                        BinaryObjectEx val = (BinaryObjectEx)fieldVal;
 
                         fieldVal = val.enumOrdinal();
                     }
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryArrayIdentityResolver.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryArrayIdentityResolver.java
index 7a17dfd2f63..6150eafac58 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryArrayIdentityResolver.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryArrayIdentityResolver.java
@@ -70,7 +70,7 @@ class BinaryArrayIdentityResolver extends BinaryAbstractIdentityResolver {
                 return hash;
             }
         }
-        else if (obj instanceof BinaryEnumObjectImpl) {
+        else if (BinaryUtils.isBinaryEnumObject(obj)) {
             int hash = 1;
 
             int ord = obj.enumOrdinal();
@@ -121,8 +121,8 @@ class BinaryArrayIdentityResolver extends BinaryAbstractIdentityResolver {
             }
             else {
                 // Handle enums.
-                assert ex1 instanceof BinaryEnumObjectImpl;
-                assert ex2 instanceof BinaryEnumObjectImpl;
+                assert BinaryUtils.isBinaryEnumObject(ex1);
+                assert BinaryUtils.isBinaryEnumObject(ex2);
 
                 return ex1.enumOrdinal() == ex2.enumOrdinal();
             }
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
index d4e3d0721eb..d71501ef2be 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
@@ -46,7 +46,7 @@ import static org.apache.ignite.internal.processors.cache.CacheObjectAdapter.obj
 /**
  * Binary enum object.
  */
-public class BinaryEnumObjectImpl implements BinaryObjectEx, Externalizable, CacheObject {
+class BinaryEnumObjectImpl implements BinaryObjectEx, Externalizable, CacheObject {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -136,10 +136,8 @@ public class BinaryEnumObjectImpl implements BinaryObjectEx, Externalizable, Cac
         this.ord = BinaryPrimitives.readInt(arr, off);
     }
 
-    /**
-     * @return Class name.
-     */
-    @Nullable public String className() {
+    /** {@inheritDoc} */
+    @Nullable @Override public String enumClassName() {
         return clsName;
     }
 
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectEx.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectEx.java
index 80402a42382..61e36ecb2d2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectEx.java
@@ -67,4 +67,11 @@ public interface BinaryObjectEx extends BinaryObject {
     public default Object[] array() {
         throw new UnsupportedOperationException("Not array");
     }
+
+    /**
+     * @return Enum class name.
+     */
+    @Nullable public default String enumClassName() {
+        throw new UnsupportedOperationException("Not enum");
+    }
 }
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
index 4de3b3dac4f..63382fbd695 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
@@ -1732,7 +1732,7 @@ public class BinaryUtils {
      * @param ctx Binary context.
      * @return Enum.
      */
-    public static BinaryEnumObjectImpl doReadBinaryEnum(BinaryInputStream in, BinaryContext ctx) {
+    static BinaryEnumObjectImpl doReadBinaryEnum(BinaryInputStream in, BinaryContext ctx) {
         return doReadBinaryEnum(in, ctx, doReadEnumType(in));
     }
 
@@ -1749,6 +1749,30 @@ public class BinaryUtils {
         return new BinaryEnumObjectImpl(ctx, type.typeId, type.clsName, in.readInt());
     }
 
+    /**
+     * Read binary enum.
+     *
+     * @param ord Ordinal.
+     * @param ctx Context.
+     * @param typeId Type ID.
+     */
+    public static BinaryObjectEx binaryEnum(int ord, BinaryContext ctx, int typeId) {
+        return new BinaryEnumObjectImpl(ctx, typeId, null, ord);
+    }
+
+    /**
+     * @param ctx Context.
+     * @param arr Array.
+     */
+    public static CacheObject binaryEnum(BinaryContext ctx, byte[] arr) {
+        return new BinaryEnumObjectImpl(ctx, arr);
+    }
+
+    /** */
+    public static CacheObject binaryEnum() {
+        return new BinaryEnumObjectImpl();
+    }
+
     /**
      * Read binary enum array.
      *
@@ -2533,7 +2557,7 @@ public class BinaryUtils {
         if (ctx == null)
             throw new BinaryObjectException("BinaryContext is not set for the object.");
 
-        String clsName = obj instanceof BinaryEnumObjectImpl ? ((BinaryEnumObjectImpl)obj).className() : null;
+        String clsName = isBinaryEnumObject(obj) ? obj.enumClassName() : null;
 
         return new BinaryTypeProxy(ctx, obj.typeId(), clsName);
     }
@@ -2789,6 +2813,22 @@ public class BinaryUtils {
         return val instanceof BinaryEnumArray;
     }
 
+    /**
+     * @param val Value to check.
+     * @return {@code True} if {@code val} instance of binary Enum object.
+     */
+    public static boolean isBinaryEnumObject(Object val) {
+        return val instanceof BinaryEnumObjectImpl;
+    }
+
+    /**
+     * @param cls Class to check.
+     * @return {@code True} if {@code val} is assignable to binary Enum object.
+     */
+    public static boolean isAssignableToBinaryEnumObject(Class<?> cls) {
+        return BinaryEnumObjectImpl.class.isAssignableFrom(cls);
+    }
+
     /**
      * Creates reader instance.
      *
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
index bc9fb24143f..2892088d24b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
@@ -394,7 +394,7 @@ class BinaryWriterExImpl implements BinaryWriterEx {
             out.unsafeWriteByte(GridBinaryMarshaller.BINARY_ENUM);
             out.unsafeWriteInt(typeId);
 
-            writeString(val.className());
+            writeString(val.enumClassName());
 
             out.writeInt(val.enumOrdinal());
         }
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderSerializer.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderSerializer.java
index 8c74f4981db..a969a51a9df 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderSerializer.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderSerializer.java
@@ -21,7 +21,6 @@ import java.util.Collection;
 import java.util.IdentityHashMap;
 import java.util.Map;
 import org.apache.ignite.binary.BinaryObject;
-import org.apache.ignite.internal.binary.BinaryEnumObjectImpl;
 import org.apache.ignite.internal.binary.BinaryObjectEx;
 import org.apache.ignite.internal.binary.BinaryUtils;
 import org.apache.ignite.internal.binary.BinaryWriterEx;
@@ -110,14 +109,14 @@ class BinaryBuilderSerializer {
             return;
         }
 
-        if (val instanceof BinaryEnumObjectImpl) {
-            BinaryEnumObjectImpl obj = (BinaryEnumObjectImpl)val;
+        if (BinaryUtils.isBinaryEnumObject(val)) {
+            BinaryObjectEx obj = (BinaryObjectEx)val;
 
             writer.writeByte(GridBinaryMarshaller.ENUM);
             writer.writeInt(obj.typeId());
 
             if (obj.typeId() == GridBinaryMarshaller.UNREGISTERED_TYPE_ID)
-                writer.writeString(obj.className());
+                writer.writeString(obj.enumClassName());
 
             writer.writeInt(obj.enumOrdinal());
 
@@ -206,7 +205,7 @@ class BinaryBuilderSerializer {
 
             int compTypeId = writer.context().typeId(compCls.getName());
 
-            if (BinaryEnumObjectImpl.class.isAssignableFrom(compCls) || val instanceof BinaryBuilderEnum[]) {
+            if (BinaryUtils.isAssignableToBinaryEnumObject(compCls) || val instanceof BinaryBuilderEnum[]) {
                 writeArray(writer, GridBinaryMarshaller.ENUM_ARR, (Object[])val, compTypeId);
 
                 return;
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
index 8cc91713a5d..da84c51e6f0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
@@ -31,7 +31,6 @@ import org.apache.ignite.binary.BinaryObjectBuilder;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.binary.BinaryType;
 import org.apache.ignite.internal.binary.BinaryContext;
-import org.apache.ignite.internal.binary.BinaryEnumObjectImpl;
 import org.apache.ignite.internal.binary.BinaryFieldMetadata;
 import org.apache.ignite.internal.binary.BinaryObjectImpl;
 import org.apache.ignite.internal.binary.BinarySchema;
@@ -371,10 +370,11 @@ class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
                 nullFieldVal = true;
         }
         // Detect Enum and Enum array type.
-        else if (newVal instanceof BinaryEnumObjectImpl)
+        else if (BinaryUtils.isBinaryEnumObject(newVal))
             newFldTypeId = GridBinaryMarshaller.ENUM;
 
-        else if (newVal.getClass().isArray() && BinaryEnumObjectImpl.class.isAssignableFrom(newVal.getClass().getComponentType()))
+        else if (newVal.getClass().isArray() &&
+            BinaryUtils.isAssignableToBinaryEnumObject(newVal.getClass().getComponentType()))
             newFldTypeId = GridBinaryMarshaller.ENUM_ARR;
 
         else if (newVal.getClass().isArray() && BinaryObject.class.isAssignableFrom(newVal.getClass().getComponentType()))
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientBinary.java b/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientBinary.java
index f2d64499456..f0b189f7464 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientBinary.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientBinary.java
@@ -25,7 +25,6 @@ import org.apache.ignite.binary.BinaryObjectBuilder;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.binary.BinaryType;
 import org.apache.ignite.internal.binary.BinaryContext;
-import org.apache.ignite.internal.binary.BinaryEnumObjectImpl;
 import org.apache.ignite.internal.binary.BinaryMetadata;
 import org.apache.ignite.internal.binary.BinaryUtils;
 import org.apache.ignite.internal.binary.builder.BinaryObjectBuilders;
@@ -116,7 +115,7 @@ public class ClientBinary implements IgniteBinary {
 
         int typeId = ctx.typeId(typeName);
 
-        return new BinaryEnumObjectImpl(ctx, typeId, null, ord);
+        return BinaryUtils.binaryEnum(ord, ctx, typeId);
     }
 
     /** {@inheritDoc} */
@@ -148,7 +147,7 @@ public class ClientBinary implements IgniteBinary {
                 name
             ));
 
-        return new BinaryEnumObjectImpl(ctx, typeId, null, ordinal);
+        return BinaryUtils.binaryEnum(ordinal, ctx, typeId);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
index a7fd64e4d8f..eb8feb4b790 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
@@ -25,8 +25,8 @@ import org.apache.ignite.internal.GridJobSiblingsResponse;
 import org.apache.ignite.internal.GridTaskCancelRequest;
 import org.apache.ignite.internal.GridTaskSessionRequest;
 import org.apache.ignite.internal.IgniteDiagnosticMessage;
-import org.apache.ignite.internal.binary.BinaryEnumObjectImpl;
 import org.apache.ignite.internal.binary.BinaryObjectImpl;
+import org.apache.ignite.internal.binary.BinaryUtils;
 import org.apache.ignite.internal.managers.checkpoint.GridCheckpointRequest;
 import org.apache.ignite.internal.managers.deployment.GridDeploymentInfoBean;
 import org.apache.ignite.internal.managers.deployment.GridDeploymentRequest;
@@ -299,7 +299,7 @@ public class GridIoMessageFactory implements MessageFactoryProvider {
         factory.register((short)116, GridNearSingleGetRequest::new);
         factory.register((short)117, GridNearSingleGetResponse::new);
         factory.register((short)118, CacheContinuousQueryBatchAck::new);
-        factory.register((short)119, BinaryEnumObjectImpl::new);
+        factory.register((short)119, BinaryUtils::binaryEnum);
 
         // [120..123] - DR
         factory.register((short)124, GridMessageCollection::new);
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
index 55be4d92641..06df4fef473 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
@@ -59,7 +59,6 @@ import org.apache.ignite.internal.IgniteNodeAttributes;
 import org.apache.ignite.internal.NodeStoppingException;
 import org.apache.ignite.internal.UnregisteredBinaryTypeException;
 import org.apache.ignite.internal.binary.BinaryContext;
-import org.apache.ignite.internal.binary.BinaryEnumObjectImpl;
 import org.apache.ignite.internal.binary.BinaryFieldMetadata;
 import org.apache.ignite.internal.binary.BinaryMarshaller;
 import org.apache.ignite.internal.binary.BinaryMetadata;
@@ -1016,7 +1015,7 @@ public class CacheObjectBinaryProcessorImpl extends GridProcessorAdapter impleme
 
         updateMetadata(typeId, typeName, null, null, true, null);
 
-        return new BinaryEnumObjectImpl(binaryCtx, typeId, null, ord);
+        return BinaryUtils.binaryEnum(ord, binaryCtx, typeId);
     }
 
     /** {@inheritDoc} */
@@ -1040,7 +1039,7 @@ public class CacheObjectBinaryProcessorImpl extends GridProcessorAdapter impleme
             throw new BinaryObjectException("Failed to resolve enum ordinal by name [typeId=" +
                     typeId + ", typeName='" + typeName + "', name='" + name + "']");
 
-        return new BinaryEnumObjectImpl(binaryCtx, typeId, null, ordinal);
+        return BinaryUtils.binaryEnum(ordinal, binaryCtx, typeId);
     }
 
     /** {@inheritDoc} */
@@ -1302,7 +1301,7 @@ public class CacheObjectBinaryProcessorImpl extends GridProcessorAdapter impleme
                 return new BinaryObjectImpl(binaryContext(), bytes, ctx);
 
             case BinaryObjectImpl.TYPE_BINARY_ENUM:
-                return new BinaryEnumObjectImpl(binaryContext(), bytes);
+                return BinaryUtils.binaryEnum(binaryContext(), bytes);
 
             case CacheObject.TYPE_BYTE_ARR:
                 return new CacheObjectByteArrayImpl(bytes);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryEnumsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryEnumsSelfTest.java
index 2930073c339..b9586800998 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryEnumsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryEnumsSelfTest.java
@@ -257,7 +257,7 @@ public class BinaryEnumsSelfTest extends AbstractBinaryArraysTest {
         BinaryEnumObjectImpl binEnum = new BinaryEnumObjectImpl(binCtx, bytes);
 
         assertEquals(srcBinEnum.size(), binEnum.size());
-        assertEquals(clsName, binEnum.className());
+        assertEquals(clsName, binEnum.enumClassName());
         assertEquals(typeId, binEnum.typeId());
         assertEquals(ord, binEnum.enumOrdinal());
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheEnumOperationsAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheEnumOperationsAbstractTest.java
index 1d80d6ea049..2de71b6558c 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheEnumOperationsAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheEnumOperationsAbstractTest.java
@@ -25,7 +25,7 @@ import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.NearCacheConfiguration;
-import org.apache.ignite.internal.binary.BinaryEnumObjectImpl;
+import org.apache.ignite.internal.binary.BinaryUtils;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
 
@@ -189,7 +189,7 @@ public abstract class CacheEnumOperationsAbstractTest extends GridCommonAbstract
 
         assertEquals(expVal.ordinal(), enumObj.enumOrdinal());
         assertTrue(enumObj.type().isEnum());
-        assertTrue(enumObj instanceof BinaryEnumObjectImpl);
+        assertTrue(BinaryUtils.isBinaryEnumObject(enumObj));
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
index bb82bf00087..56f9bb9fde3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
@@ -42,7 +42,7 @@ import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.events.Event;
 import org.apache.ignite.events.EventType;
 import org.apache.ignite.internal.IgniteKernal;
-import org.apache.ignite.internal.binary.BinaryEnumObjectImpl;
+import org.apache.ignite.internal.binary.BinaryUtils;
 import org.apache.ignite.internal.processors.cache.GridCacheAdapter;
 import org.apache.ignite.internal.processors.cache.GridCacheEntryEx;
 import org.apache.ignite.internal.util.lang.GridAbsPredicate;
@@ -325,7 +325,7 @@ public class GridCacheReplicatedPreloadSelfTest extends GridCommonAbstractTest {
 
             assertEquals(0, enumObj.enumOrdinal());
             assertTrue(enumObj.type().isEnum());
-            assertTrue(enumObj instanceof BinaryEnumObjectImpl);
+            assertTrue(BinaryUtils.isBinaryEnumObject(enumObj));
 
             assert e2 != null;
             assert e2.toString().equals(e1.toString());
diff --git a/modules/json/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImplSerializer.java b/modules/json/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImplSerializer.java
index 20d2d131b18..eb843e76a4a 100644
--- a/modules/json/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImplSerializer.java
+++ b/modules/json/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImplSerializer.java
@@ -51,7 +51,7 @@ class BinaryObjectImplSerializer extends JsonSerializer<BinaryObjectImpl> {
                         }
                     }
 
-                    if (val instanceof BinaryEnumObjectImpl) {
+                    if (BinaryUtils.isBinaryEnumObject(val)) {
                         gen.writeObjectField(name, ((BinaryObject)val).enumName());
                     }
                     else {