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 fedef639828 [MINOR] Use CacheObjectValueContext where possible (#12293)
fedef639828 is described below

commit fedef639828fad2561bc5b7566cf429d6f455bc6
Author: Nikolay <[email protected]>
AuthorDate: Sat Aug 23 12:05:21 2025 +0300

    [MINOR] Use CacheObjectValueContext where possible (#12293)
---
 .../binary/builder/BinaryObjectBuilderEx.java      | 38 ++++++++++++++++++++++
 .../calcite/schema/CacheTableDescriptorImpl.java   |  5 ++-
 .../internal/binary/BinaryEnumObjectImpl.java      |  5 ++-
 .../ignite/internal/binary/BinaryObjectImpl.java   |  7 ++--
 .../internal/binary/BinaryObjectOffheapImpl.java   |  5 ++-
 .../apache/ignite/internal/binary/BinaryUtils.java |  4 +--
 .../binary/builder/BinaryObjectBuilderImpl.java    | 16 +++------
 .../binary/builder/BinaryObjectBuilders.java       | 28 ----------------
 .../internal/processors/cache/CacheObject.java     |  4 +--
 .../processors/cache/CacheObjectAdapter.java       |  2 +-
 .../processors/cache/CacheObjectByteArrayImpl.java |  4 +--
 .../internal/processors/cache/CacheObjectImpl.java |  2 +-
 .../processors/cache/KeyCacheObjectImpl.java       |  2 +-
 .../cacheobject/PlatformCacheObjectImpl.java       |  3 +-
 .../cacheobject/UserCacheObjectByteArrayImpl.java  |  3 +-
 .../cacheobject/UserCacheObjectImpl.java           |  3 +-
 .../cacheobject/UserKeyCacheObjectImpl.java        |  4 +--
 .../apache/ignite/internal/util/IgniteUtils.java   | 30 +++++++++++++++++
 .../internal/GridAffinityNoCacheSelfTest.java      |  5 ++-
 .../cache/IgniteIncompleteCacheObjectSelfTest.java |  4 +--
 .../processors/database/CacheFreeListSelfTest.java |  5 ++-
 .../processors/query/h2/dml/UpdatePlanBuilder.java |  5 ++-
 22 files changed, 104 insertions(+), 80 deletions(-)

diff --git 
a/modules/binary/api/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderEx.java
 
b/modules/binary/api/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderEx.java
new file mode 100644
index 00000000000..add6b20c448
--- /dev/null
+++ 
b/modules/binary/api/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderEx.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.binary.builder;
+
+import org.apache.ignite.binary.BinaryObjectBuilder;
+
+/**
+ * Internal interface for {@link BinaryObjectBuilder}.
+ * Implementation of {@link BinaryObjectBuilder} MUST implement this interface.
+ */
+public interface BinaryObjectBuilderEx extends BinaryObjectBuilder {
+    /**
+     * @return Object type id.
+     */
+    public int typeId();
+
+    /**
+     * Set known affinity key field name.
+     *
+     * @param affFieldName Affinity key field name.
+     */
+    public void affinityFieldName(String affFieldName);
+}
diff --git 
a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/CacheTableDescriptorImpl.java
 
b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/CacheTableDescriptorImpl.java
index 683b06e0873..405c8dc4dac 100644
--- 
a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/CacheTableDescriptorImpl.java
+++ 
b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/CacheTableDescriptorImpl.java
@@ -45,7 +45,6 @@ import org.apache.ignite.binary.BinaryObject;
 import org.apache.ignite.binary.BinaryObjectBuilder;
 import org.apache.ignite.cache.CacheWriteSynchronizationMode;
 import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.internal.binary.builder.BinaryObjectBuilders;
 import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 import org.apache.ignite.internal.processors.cache.CacheStoppedException;
 import org.apache.ignite.internal.processors.cache.GridCacheContext;
@@ -405,7 +404,7 @@ public class CacheTableDescriptorImpl extends 
NullInitializerExpressionFactory
         GridCacheContext<?, ?> cctx = cacheContext();
 
         BinaryObjectBuilder builder = cctx.grid().binary().builder(typeName);
-        BinaryObjectBuilders.prepareAffinityField(builder, 
cctx.cacheObjectContext());
+        U.prepareAffinityField(builder, cctx.cacheObjectContext());
 
         return builder;
     }
@@ -476,7 +475,7 @@ public class CacheTableDescriptorImpl extends 
NullInitializerExpressionFactory
         BinaryObjectBuilder builder = cctx.grid().binary().builder(
             cctx.grid().binary().<BinaryObject>toBinary(val));
 
-        BinaryObjectBuilders.prepareAffinityField(builder, 
cctx.cacheObjectContext());
+        U.prepareAffinityField(builder, cctx.cacheObjectContext());
 
         return builder;
     }
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 45700ba57ce..032287b5f9b 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
@@ -30,7 +30,6 @@ import org.apache.ignite.binary.BinaryType;
 import org.apache.ignite.internal.GridDirectTransient;
 import org.apache.ignite.internal.processors.cache.CacheObject;
 import org.apache.ignite.internal.processors.cache.CacheObjectAdapter;
-import org.apache.ignite.internal.processors.cache.CacheObjectContext;
 import org.apache.ignite.internal.processors.cache.CacheObjectValueContext;
 import 
org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl;
 import org.apache.ignite.internal.util.CommonUtils;
@@ -358,7 +357,7 @@ class BinaryEnumObjectImpl implements BinaryObjectEx, 
Externalizable, CacheObjec
     }
 
     /** {@inheritDoc} */
-    @Override public int valueBytesLength(CacheObjectContext ctx) throws 
IgniteCheckedException {
+    @Override public int valueBytesLength(CacheObjectValueContext ctx) throws 
IgniteCheckedException {
         return objectPutSize(valueBytes(ctx).length);
     }
 
@@ -373,7 +372,7 @@ class BinaryEnumObjectImpl implements BinaryObjectEx, 
Externalizable, CacheObjec
     }
 
     /** {@inheritDoc} */
-    @Override public CacheObject prepareForCache(CacheObjectContext ctx) {
+    @Override public CacheObject prepareForCache(CacheObjectValueContext ctx) {
         return this;
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
index 5c6ed595d19..6e22af7f01d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
@@ -38,7 +38,6 @@ import 
org.apache.ignite.internal.binary.streams.BinaryOutputStream;
 import org.apache.ignite.internal.binary.streams.BinaryStreams;
 import org.apache.ignite.internal.processors.cache.CacheObject;
 import org.apache.ignite.internal.processors.cache.CacheObjectAdapter;
-import org.apache.ignite.internal.processors.cache.CacheObjectContext;
 import org.apache.ignite.internal.processors.cache.CacheObjectTransformerUtils;
 import org.apache.ignite.internal.processors.cache.CacheObjectValueContext;
 import org.apache.ignite.internal.processors.cache.KeyCacheObject;
@@ -131,7 +130,7 @@ final class BinaryObjectImpl extends BinaryObjectExImpl 
implements Externalizabl
      * @param valBytes Value bytes.
      * @param coCtx Cache object context.
      */
-    BinaryObjectImpl(BinaryContext ctx, byte[] valBytes, CacheObjectContext 
coCtx) {
+    BinaryObjectImpl(BinaryContext ctx, byte[] valBytes, 
CacheObjectValueContext coCtx) {
         assert ctx != null;
         assert valBytes != null;
         assert coCtx != null;
@@ -224,12 +223,12 @@ final class BinaryObjectImpl extends BinaryObjectExImpl 
implements Externalizabl
     }
 
     /** {@inheritDoc} */
-    @Override public int valueBytesLength(CacheObjectContext ctx) throws 
IgniteCheckedException {
+    @Override public int valueBytesLength(CacheObjectValueContext ctx) throws 
IgniteCheckedException {
         return CacheObjectAdapter.objectPutSize(valBytes.length);
     }
 
     /** {@inheritDoc} */
-    @Override public CacheObject prepareForCache(CacheObjectContext ctx) {
+    @Override public CacheObject prepareForCache(CacheObjectValueContext ctx) {
         BinaryObjectImpl res = detached() ? this : detach();
 
         res.prepareMarshal(ctx);
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
index bfc5d556709..2945626641e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
@@ -37,7 +37,6 @@ import 
org.apache.ignite.internal.binary.builder.BinaryObjectBuilders;
 import org.apache.ignite.internal.binary.streams.BinaryInputStream;
 import org.apache.ignite.internal.binary.streams.BinaryStreams;
 import org.apache.ignite.internal.processors.cache.CacheObject;
-import org.apache.ignite.internal.processors.cache.CacheObjectContext;
 import org.apache.ignite.internal.processors.cache.CacheObjectValueContext;
 import org.apache.ignite.internal.util.GridUnsafe;
 import org.apache.ignite.marshaller.Marshallers;
@@ -162,7 +161,7 @@ class BinaryObjectOffheapImpl extends BinaryObjectExImpl 
implements Externalizab
     }
 
     /** {@inheritDoc} */
-    @Override public int valueBytesLength(CacheObjectContext ctx) throws 
IgniteCheckedException {
+    @Override public int valueBytesLength(CacheObjectValueContext ctx) throws 
IgniteCheckedException {
         throw new UnsupportedOperationException("TODO implement");
     }
 
@@ -468,7 +467,7 @@ class BinaryObjectOffheapImpl extends BinaryObjectExImpl 
implements Externalizab
     }
 
     /** {@inheritDoc} */
-    @Override public CacheObject prepareForCache(CacheObjectContext ctx) {
+    @Override public CacheObject prepareForCache(CacheObjectValueContext ctx) {
         throw new UnsupportedOperationException();
     }
 
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 b1577095056..f82dbdc243a 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
@@ -73,7 +73,7 @@ import org.apache.ignite.binary.Binarylizable;
 import org.apache.ignite.internal.binary.streams.BinaryInputStream;
 import org.apache.ignite.internal.binary.streams.BinaryOutputStream;
 import org.apache.ignite.internal.binary.streams.BinaryStreams;
-import org.apache.ignite.internal.processors.cache.CacheObjectContext;
+import org.apache.ignite.internal.processors.cache.CacheObjectValueContext;
 import 
org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl;
 import org.apache.ignite.internal.util.CommonUtils;
 import org.apache.ignite.internal.util.GridUnsafe;
@@ -1703,7 +1703,7 @@ public class BinaryUtils {
     }
 
     /** */
-    public static BinaryObject binaryObject(BinaryContext ctx, byte[] 
valBytes, CacheObjectContext coCtx) {
+    public static BinaryObject binaryObject(BinaryContext ctx, byte[] 
valBytes, CacheObjectValueContext coCtx) {
         return new BinaryObjectImpl(ctx, valBytes, coCtx);
     }
 
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 56c9872c310..734972ea66c 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
@@ -46,7 +46,7 @@ import org.jetbrains.annotations.Nullable;
 /**
  *
  */
-class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
+class BinaryObjectBuilderImpl implements BinaryObjectBuilderEx {
     /** */
     private static final Object REMOVED_FIELD_MARKER = new Object();
 
@@ -592,19 +592,13 @@ class BinaryObjectBuilderImpl implements 
BinaryObjectBuilder {
         return start;
     }
 
-    /**
-     * @return Object type id.
-     */
-    public int typeId() {
+    /** {@inheritDoc} */
+    @Override public int typeId() {
         return typeId;
     }
 
-    /**
-     * Set known affinity key field name.
-     *
-     * @param affFieldName Affinity key field name.
-     */
-    public void affinityFieldName(String affFieldName) {
+    /** {@inheritDoc} */
+    @Override public void affinityFieldName(String affFieldName) {
         this.affFieldName = affFieldName;
     }
 }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilders.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilders.java
index d8774e45805..c02f880432e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilders.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilders.java
@@ -18,12 +18,9 @@
 package org.apache.ignite.internal.binary.builder;
 
 import java.util.Iterator;
-import org.apache.ignite.binary.BinaryField;
 import org.apache.ignite.binary.BinaryObject;
 import org.apache.ignite.binary.BinaryObjectBuilder;
 import org.apache.ignite.internal.binary.BinaryContext;
-import 
org.apache.ignite.internal.processors.cache.CacheDefaultBinaryAffinityKeyMapper;
-import org.apache.ignite.internal.processors.cache.CacheObjectContext;
 import org.jetbrains.annotations.Nullable;
 
 /**
@@ -47,31 +44,6 @@ public class BinaryObjectBuilders {
         return new BinaryObjectBuilderImpl(binaryCtx, clsName);
     }
 
-    /**
-     * Prepare affinity field for builder (if possible).
-     *
-     * @param builder Builder.
-     */
-    public static void prepareAffinityField(BinaryObjectBuilder builder, 
CacheObjectContext cacheObjCtx) {
-        if (cacheObjCtx.customAffinityMapper())
-            return;
-
-        assert builder instanceof BinaryObjectBuilderImpl;
-
-        BinaryObjectBuilderImpl builder0 = (BinaryObjectBuilderImpl)builder;
-
-        CacheDefaultBinaryAffinityKeyMapper mapper =
-            
(CacheDefaultBinaryAffinityKeyMapper)cacheObjCtx.defaultAffMapper();
-
-        BinaryField field = mapper.affinityKeyField(builder0.typeId());
-
-        if (field != null) {
-            String fieldName = field.name();
-
-            builder0.affinityFieldName(fieldName);
-        }
-    }
-
     /**
      * @param obj Value to unwrap.
      * @return Unwrapped value.
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObject.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObject.java
index 0f21c77c438..cfb4d5c3431 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObject.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObject.java
@@ -67,7 +67,7 @@ public interface CacheObject extends Message {
      * @return Size required to store this value object.
      * @throws IgniteCheckedException If failed.
      */
-    public int valueBytesLength(CacheObjectContext ctx) throws 
IgniteCheckedException;
+    public int valueBytesLength(CacheObjectValueContext ctx) throws 
IgniteCheckedException;
 
     /**
      * @param buf Buffer to write value to.
@@ -114,7 +114,7 @@ public interface CacheObject extends Message {
      * @param ctx Cache context.
      * @return Instance to store in cache.
      */
-    public CacheObject prepareForCache(CacheObjectContext ctx);
+    public CacheObject prepareForCache(CacheObjectValueContext ctx);
 
     /**
      * @param ctx Context.
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectAdapter.java
index 3a0f2247855..ff995a1008a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectAdapter.java
@@ -147,7 +147,7 @@ public abstract class CacheObjectAdapter implements 
CacheObject, Externalizable
     }
 
     /** {@inheritDoc} */
-    @Override public int valueBytesLength(CacheObjectContext ctx) throws 
IgniteCheckedException {
+    @Override public int valueBytesLength(CacheObjectValueContext ctx) throws 
IgniteCheckedException {
         if (valBytes == null)
             valueBytes(ctx);
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectByteArrayImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectByteArrayImpl.java
index cea5fb5796a..c9f0cb0dcc3 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectByteArrayImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectByteArrayImpl.java
@@ -99,7 +99,7 @@ public class CacheObjectByteArrayImpl implements CacheObject, 
Externalizable {
     }
 
     /** {@inheritDoc} */
-    @Override public int valueBytesLength(CacheObjectContext ctx) throws 
IgniteCheckedException {
+    @Override public int valueBytesLength(CacheObjectValueContext ctx) throws 
IgniteCheckedException {
         return CacheObjectAdapter.objectPutSize(val.length);
     }
 
@@ -114,7 +114,7 @@ public class CacheObjectByteArrayImpl implements 
CacheObject, Externalizable {
     }
 
     /** {@inheritDoc} */
-    @Override public CacheObject prepareForCache(CacheObjectContext ctx) {
+    @Override public CacheObject prepareForCache(CacheObjectValueContext ctx) {
         return this;
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectImpl.java
index 89b03e8d843..cfe2effd4fe 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectImpl.java
@@ -151,7 +151,7 @@ public class CacheObjectImpl extends CacheObjectAdapter {
     }
 
     /** {@inheritDoc} */
-    @Override public CacheObject prepareForCache(CacheObjectContext ctx) {
+    @Override public CacheObject prepareForCache(CacheObjectValueContext ctx) {
         return this;
     }
 }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/KeyCacheObjectImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/KeyCacheObjectImpl.java
index 284c456a47a..d81f26b2b7c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/KeyCacheObjectImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/KeyCacheObjectImpl.java
@@ -112,7 +112,7 @@ public class KeyCacheObjectImpl extends CacheObjectAdapter 
implements KeyCacheOb
     }
 
     /** {@inheritDoc} */
-    @Override public CacheObject prepareForCache(CacheObjectContext ctx) {
+    @Override public CacheObject prepareForCache(CacheObjectValueContext ctx) {
         return this;
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/PlatformCacheObjectImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/PlatformCacheObjectImpl.java
index d89ea657bad..4b823ed1a4d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/PlatformCacheObjectImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/PlatformCacheObjectImpl.java
@@ -19,7 +19,6 @@ package org.apache.ignite.internal.processors.cacheobject;
 
 import org.apache.ignite.internal.GridDirectTransient;
 import org.apache.ignite.internal.processors.cache.CacheObject;
-import org.apache.ignite.internal.processors.cache.CacheObjectContext;
 import org.apache.ignite.internal.processors.cache.CacheObjectImpl;
 import org.apache.ignite.internal.processors.cache.CacheObjectTransformerUtils;
 import org.apache.ignite.internal.processors.cache.CacheObjectValueContext;
@@ -62,7 +61,7 @@ public class PlatformCacheObjectImpl extends CacheObjectImpl {
     }
 
     /** {@inheritDoc} */
-    @Override public CacheObject prepareForCache(CacheObjectContext ctx) {
+    @Override public CacheObject prepareForCache(CacheObjectValueContext ctx) {
         if (valBytes == null)
             valBytes = valueBytesFromArray(ctx);
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/UserCacheObjectByteArrayImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/UserCacheObjectByteArrayImpl.java
index dcb72b72dc4..87268cff8d8 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/UserCacheObjectByteArrayImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/UserCacheObjectByteArrayImpl.java
@@ -20,7 +20,6 @@ package org.apache.ignite.internal.processors.cacheobject;
 import java.util.Arrays;
 import org.apache.ignite.internal.processors.cache.CacheObject;
 import org.apache.ignite.internal.processors.cache.CacheObjectByteArrayImpl;
-import org.apache.ignite.internal.processors.cache.CacheObjectContext;
 import org.apache.ignite.internal.processors.cache.CacheObjectValueContext;
 import org.jetbrains.annotations.Nullable;
 
@@ -56,7 +55,7 @@ public class UserCacheObjectByteArrayImpl extends 
CacheObjectByteArrayImpl {
     }
 
     /** {@inheritDoc} */
-    @Override public CacheObject prepareForCache(CacheObjectContext ctx) {
+    @Override public CacheObject prepareForCache(CacheObjectValueContext ctx) {
         byte[] valCpy = Arrays.copyOf(val, val.length);
 
         return new CacheObjectByteArrayImpl(valCpy);
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/UserCacheObjectImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/UserCacheObjectImpl.java
index 94050f25940..fb5a61f40e2 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/UserCacheObjectImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/UserCacheObjectImpl.java
@@ -20,7 +20,6 @@ package org.apache.ignite.internal.processors.cacheobject;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.internal.processors.cache.CacheObject;
-import org.apache.ignite.internal.processors.cache.CacheObjectContext;
 import org.apache.ignite.internal.processors.cache.CacheObjectImpl;
 import org.apache.ignite.internal.processors.cache.CacheObjectValueContext;
 import org.apache.ignite.internal.util.IgniteUtils;
@@ -54,7 +53,7 @@ public class UserCacheObjectImpl extends CacheObjectImpl {
     }
 
     /** {@inheritDoc} */
-    @Override public CacheObject prepareForCache(CacheObjectContext ctx) {
+    @Override public CacheObject prepareForCache(CacheObjectValueContext ctx) {
         try {
             IgniteCacheObjectProcessor proc = 
ctx.kernalContext().cacheObjects();
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/UserKeyCacheObjectImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/UserKeyCacheObjectImpl.java
index 24bf22bf415..223c18e31ed 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/UserKeyCacheObjectImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/UserKeyCacheObjectImpl.java
@@ -20,7 +20,7 @@ package org.apache.ignite.internal.processors.cacheobject;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.internal.processors.cache.CacheObject;
-import org.apache.ignite.internal.processors.cache.CacheObjectContext;
+import org.apache.ignite.internal.processors.cache.CacheObjectValueContext;
 import org.apache.ignite.internal.processors.cache.KeyCacheObject;
 import org.apache.ignite.internal.processors.cache.KeyCacheObjectImpl;
 import org.apache.ignite.internal.util.IgniteUtils;
@@ -66,7 +66,7 @@ public class UserKeyCacheObjectImpl extends 
KeyCacheObjectImpl {
     }
 
     /** {@inheritDoc} */
-    @Override public CacheObject prepareForCache(CacheObjectContext ctx) {
+    @Override public CacheObject prepareForCache(CacheObjectValueContext ctx) {
         try {
             IgniteCacheObjectProcessor proc = 
ctx.kernalContext().cacheObjects();
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java 
b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index 93f583cb076..32e7c4da1ad 100755
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -144,8 +144,10 @@ import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteIllegalStateException;
 import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.IgniteSystemProperties;
+import org.apache.ignite.binary.BinaryField;
 import org.apache.ignite.binary.BinaryIdMapper;
 import org.apache.ignite.binary.BinaryNameMapper;
+import org.apache.ignite.binary.BinaryObjectBuilder;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.binary.BinarySerializer;
 import org.apache.ignite.binary.BinaryType;
@@ -173,6 +175,7 @@ import org.apache.ignite.internal.binary.BinaryMarshaller;
 import org.apache.ignite.internal.binary.BinaryMetadata;
 import org.apache.ignite.internal.binary.BinaryMetadataHandler;
 import org.apache.ignite.internal.binary.BinaryUtils;
+import org.apache.ignite.internal.binary.builder.BinaryObjectBuilderEx;
 import org.apache.ignite.internal.cluster.ClusterGroupEmptyCheckedException;
 import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
 import org.apache.ignite.internal.compute.ComputeTaskCancelledCheckedException;
@@ -184,6 +187,8 @@ import 
org.apache.ignite.internal.managers.deployment.GridDeployment;
 import org.apache.ignite.internal.managers.deployment.GridDeploymentInfo;
 import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager;
 import org.apache.ignite.internal.mxbean.IgniteStandardMXBean;
+import 
org.apache.ignite.internal.processors.cache.CacheDefaultBinaryAffinityKeyMapper;
+import org.apache.ignite.internal.processors.cache.CacheObjectContext;
 import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
 import 
org.apache.ignite.internal.processors.cache.IgnitePeerToPeerClassLoadingException;
 import 
org.apache.ignite.internal.transactions.IgniteTxHeuristicCheckedException;
@@ -8147,6 +8152,31 @@ public abstract class IgniteUtils extends CommonUtils {
         return null;
     }
 
+    /**
+     * Prepare affinity field for builder (if possible).
+     *
+     * @param builder Builder.
+     */
+    public static void prepareAffinityField(BinaryObjectBuilder builder, 
CacheObjectContext cacheObjCtx) {
+        if (cacheObjCtx.customAffinityMapper())
+            return;
+
+        assert builder instanceof BinaryObjectBuilderEx;
+
+        BinaryObjectBuilderEx builder0 = (BinaryObjectBuilderEx)builder;
+
+        CacheDefaultBinaryAffinityKeyMapper mapper =
+            
(CacheDefaultBinaryAffinityKeyMapper)cacheObjCtx.defaultAffMapper();
+
+        BinaryField field = mapper.affinityKeyField(builder0.typeId());
+
+        if (field != null) {
+            String fieldName = field.name();
+
+            builder0.affinityFieldName(fieldName);
+        }
+    }
+
     /**
      * Creates thread with given worker.
      *
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/GridAffinityNoCacheSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/GridAffinityNoCacheSelfTest.java
index ca3a253a173..a0ee15ca451 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/GridAffinityNoCacheSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/GridAffinityNoCacheSelfTest.java
@@ -25,7 +25,6 @@ import org.apache.ignite.IgniteException;
 import org.apache.ignite.cache.affinity.Affinity;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.internal.processors.cache.CacheObject;
-import org.apache.ignite.internal.processors.cache.CacheObjectContext;
 import org.apache.ignite.internal.processors.cache.CacheObjectValueContext;
 import 
org.apache.ignite.internal.processors.cache.affinity.GridCacheAffinityImpl;
 import org.apache.ignite.internal.util.typedef.internal.A;
@@ -261,7 +260,7 @@ public class GridAffinityNoCacheSelfTest extends 
GridCommonAbstractTest {
         }
 
         /** {@inheritDoc} */
-        @Override public int valueBytesLength(CacheObjectContext ctx) throws 
IgniteCheckedException {
+        @Override public int valueBytesLength(CacheObjectValueContext ctx) 
throws IgniteCheckedException {
             return 0;
         }
 
@@ -282,7 +281,7 @@ public class GridAffinityNoCacheSelfTest extends 
GridCommonAbstractTest {
         }
 
         /** {@inheritDoc} */
-        @Override public CacheObject prepareForCache(CacheObjectContext ctx) {
+        @Override public CacheObject prepareForCache(CacheObjectValueContext 
ctx) {
             throw new UnsupportedOperationException();
         }
 
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteIncompleteCacheObjectSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteIncompleteCacheObjectSelfTest.java
index e767ac130a0..d26642f7423 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteIncompleteCacheObjectSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteIncompleteCacheObjectSelfTest.java
@@ -115,7 +115,7 @@ public class IgniteIncompleteCacheObjectSelfTest extends 
GridCommonAbstractTest
         }
 
         /** {@inheritDoc} */
-        @Override public int valueBytesLength(final CacheObjectContext ctx) 
throws IgniteCheckedException {
+        @Override public int valueBytesLength(final CacheObjectValueContext 
ctx) throws IgniteCheckedException {
             return 0;
         }
 
@@ -146,7 +146,7 @@ public class IgniteIncompleteCacheObjectSelfTest extends 
GridCommonAbstractTest
         }
 
         /** {@inheritDoc} */
-        @Override public CacheObject prepareForCache(final CacheObjectContext 
ctx) {
+        @Override public CacheObject prepareForCache(final 
CacheObjectValueContext ctx) {
             return null;
         }
 
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/CacheFreeListSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/CacheFreeListSelfTest.java
index ad47435af05..9090918f9be 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/CacheFreeListSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/CacheFreeListSelfTest.java
@@ -40,7 +40,6 @@ import org.apache.ignite.internal.pagemem.PageMemory;
 import org.apache.ignite.internal.pagemem.PageUtils;
 import org.apache.ignite.internal.pagemem.impl.PageMemoryNoStoreImpl;
 import org.apache.ignite.internal.processors.cache.CacheObject;
-import org.apache.ignite.internal.processors.cache.CacheObjectContext;
 import org.apache.ignite.internal.processors.cache.CacheObjectValueContext;
 import org.apache.ignite.internal.processors.cache.KeyCacheObject;
 import org.apache.ignite.internal.processors.cache.persistence.CacheDataRow;
@@ -685,7 +684,7 @@ public class CacheFreeListSelfTest extends 
GridCommonAbstractTest {
         }
 
         /** {@inheritDoc} */
-        @Override public int valueBytesLength(CacheObjectContext ctx) {
+        @Override public int valueBytesLength(CacheObjectValueContext ctx) {
             return data.length;
         }
 
@@ -721,7 +720,7 @@ public class CacheFreeListSelfTest extends 
GridCommonAbstractTest {
         }
 
         /** {@inheritDoc} */
-        @Override public CacheObject prepareForCache(CacheObjectContext ctx) {
+        @Override public CacheObject prepareForCache(CacheObjectValueContext 
ctx) {
             assert false;
 
             return this;
diff --git 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/dml/UpdatePlanBuilder.java
 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/dml/UpdatePlanBuilder.java
index 921cb83903e..dbc06337467 100644
--- 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/dml/UpdatePlanBuilder.java
+++ 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/dml/UpdatePlanBuilder.java
@@ -30,7 +30,6 @@ import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.IgniteSystemProperties;
 import org.apache.ignite.binary.BinaryObject;
 import org.apache.ignite.binary.BinaryObjectBuilder;
-import org.apache.ignite.internal.binary.builder.BinaryObjectBuilders;
 import org.apache.ignite.internal.processors.cache.GridCacheContext;
 import org.apache.ignite.internal.processors.cache.query.IgniteQueryErrorCode;
 import org.apache.ignite.internal.processors.query.GridQueryProperty;
@@ -676,7 +675,7 @@ public final class UpdatePlanBuilder {
 
                     BinaryObjectBuilder builder = 
cctx.grid().binary().builder(bin);
 
-                    BinaryObjectBuilders.prepareAffinityField(builder, 
cctx.cacheObjectContext());
+                    U.prepareAffinityField(builder, cctx.cacheObjectContext());
 
                     return builder;
                 }
@@ -689,7 +688,7 @@ public final class UpdatePlanBuilder {
                 @Override public Object apply(List<?> arg) {
                     BinaryObjectBuilder builder = 
cctx.grid().binary().builder(typeName);
 
-                    BinaryObjectBuilders.prepareAffinityField(builder, 
cctx.cacheObjectContext());
+                    U.prepareAffinityField(builder, cctx.cacheObjectContext());
 
                     return builder;
                 }


Reply via email to