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/04/29 14:32:28 UTC

(ignite) branch master updated: IGNITE-25186 Make BinaryObjectExImpl package private (#12046)

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 d236defb990 IGNITE-25186 Make BinaryObjectExImpl package private (#12046)
d236defb990 is described below

commit d236defb990b9db0b77d1f23f9259646f40252d6
Author: Nikolay <ni...@apache.org>
AuthorDate: Tue Apr 29 17:32:18 2025 +0300

    IGNITE-25186 Make BinaryObjectExImpl package private (#12046)
---
 .../ignite/internal/binary/BinaryObjectExImpl.java    |  2 +-
 .../apache/ignite/internal/binary/BinaryUtils.java    | 19 +++++++++++++++++++
 .../binary/builder/BinaryBuilderSerializer.java       |  3 +--
 .../client/thin/ClientCacheAffinityMapping.java       |  9 +++++----
 .../query/property/QueryBinaryProperty.java           |  6 +++---
 5 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
index 33c1853552c..65e1a4b3c2c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
@@ -41,7 +41,7 @@ import static org.apache.ignite.internal.util.tostring.GridToStringBuilder.COLLE
 /**
  * Internal binary object interface.
  */
-public abstract class BinaryObjectExImpl implements BinaryObjectEx {
+abstract class BinaryObjectExImpl implements BinaryObjectEx {
     /**
      * @return Length.
      */
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 b9033da21e6..c49fd1f32f0 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
@@ -2872,6 +2872,14 @@ public class BinaryUtils {
         return BinaryCachingMetadataHandler.create();
     }
 
+    /**
+     * @param val Value to check.
+     * @return {@code True} if {@code val} instance of {@link BinaryObjectExImpl}.
+     */
+    public static boolean isBinaryObjectExImpl(Object val) {
+        return val instanceof BinaryObjectExImpl;
+    }
+
     /**
      * @param val Value to check.
      * @return {@code True} if {@code val} instance of {@link BinaryArray}.
@@ -2895,6 +2903,17 @@ public class BinaryUtils {
         USE_BINARY_ARRAYS = IgniteSystemProperties.getBoolean(IGNITE_USE_BINARY_ARRAYS, DFLT_IGNITE_USE_BINARY_ARRAYS);
     }
 
+    /**
+     * @param fieldId Field id.
+     * @return {@link BinaryObjectExImpl#field(int)} value or {@code null} if object not instance of {@link BinaryObjectExImpl}.
+     */
+    public static Object field(Object obj, int fieldId) {
+        if (!(obj instanceof BinaryObjectExImpl))
+            return null;
+
+        return ((BinaryObjectExImpl)obj).field(fieldId);
+    }
+
     /**
      * Enum type.
      */
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 73df4a8aebb..8c74f4981db 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
@@ -23,7 +23,6 @@ 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.BinaryObjectExImpl;
 import org.apache.ignite.internal.binary.BinaryUtils;
 import org.apache.ignite.internal.binary.BinaryWriterEx;
 import org.apache.ignite.internal.binary.GridBinaryMarshaller;
@@ -76,7 +75,7 @@ class BinaryBuilderSerializer {
             return;
         }
 
-        if (val instanceof BinaryObjectExImpl) {
+        if (BinaryUtils.isBinaryObjectExImpl(val)) {
             if (binaryObjToWrapper == null)
                 binaryObjToWrapper = new IdentityHashMap<>();
 
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheAffinityMapping.java b/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheAffinityMapping.java
index d64589cf469..ed25c44055c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheAffinityMapping.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheAffinityMapping.java
@@ -29,12 +29,13 @@ import org.apache.ignite.IgniteBinary;
 import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
 import org.apache.ignite.client.ClientFeatureNotSupportedByServerException;
 import org.apache.ignite.client.ClientPartitionAwarenessMapper;
-import org.apache.ignite.internal.binary.BinaryObjectExImpl;
 import org.apache.ignite.internal.binary.BinaryReaderEx;
+import org.apache.ignite.internal.binary.BinaryUtils;
 import org.apache.ignite.internal.binary.streams.BinaryOutputStream;
 import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.U;
+
 import static org.apache.ignite.internal.client.thin.ProtocolBitmaskFeature.ALL_AFFINITY_MAPPINGS;
 
 /**
@@ -97,9 +98,9 @@ public class ClientCacheAffinityMapping {
             Integer fieldId = affInfo.keyCfg.get(typeId);
 
             if (fieldId != null) {
-                if (binaryKey instanceof BinaryObjectExImpl)
-                    binaryKey = ((BinaryObjectExImpl)binaryKey).field(fieldId);
-                else // Can't get field value, affinity node can't be determined in this case.
+                binaryKey = BinaryUtils.field(binaryKey, fieldId);
+
+                if (binaryKey == null)
                     return null;
             }
         }
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/property/QueryBinaryProperty.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/property/QueryBinaryProperty.java
index 1a49d996b1c..49bcf3b7a4a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/property/QueryBinaryProperty.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/property/QueryBinaryProperty.java
@@ -24,7 +24,7 @@ import org.apache.ignite.binary.BinaryObjectBuilder;
 import org.apache.ignite.binary.BinaryType;
 import org.apache.ignite.internal.GridKernalContext;
 import org.apache.ignite.internal.binary.BinaryObjectEx;
-import org.apache.ignite.internal.binary.BinaryObjectExImpl;
+import org.apache.ignite.internal.binary.BinaryUtils;
 import org.apache.ignite.internal.processors.cache.KeyCacheObjectImpl;
 import org.apache.ignite.internal.processors.query.GridQueryProperty;
 import org.apache.ignite.internal.util.typedef.F;
@@ -151,13 +151,13 @@ public class QueryBinaryProperty implements GridQueryProperty {
 
         boolean needsBuild = false;
 
-        if (obj instanceof BinaryObjectExImpl) {
+        if (BinaryUtils.isBinaryObjectExImpl(obj)) {
             if (parent == null)
                 throw new UnsupportedOperationException("Individual properties can be set for binary builders only");
 
             needsBuild = true;
 
-            obj = ((BinaryObjectExImpl)obj).toBuilder();
+            obj = ((BinaryObject)obj).toBuilder();
         }
 
         if (!(obj instanceof BinaryObjectBuilder))