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))