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 0a619b027af [MINOR] Use CommonUtils instead of U in binary (#12279)
0a619b027af is described below

commit 0a619b027af50f29d95196532602c5ba1e18e99b
Author: Nikolay <[email protected]>
AuthorDate: Tue Aug 19 19:00:36 2025 +0300

    [MINOR] Use CommonUtils instead of U in binary (#12279)
---
 .../apache/ignite/internal/util/CommonUtils.java   | 169 ++++++++++++++++++++
 .../apache/ignite/internal/binary/BinaryArray.java |   4 +-
 .../internal/binary/BinaryClassDescriptor.java     |  13 +-
 .../ignite/internal/binary/BinaryContext.java      |  25 +--
 .../internal/binary/BinaryFieldAccessor.java       |   4 +-
 .../ignite/internal/binary/BinaryMetadata.java     |   5 +-
 .../internal/binary/BinaryObjectOffheapImpl.java   |   4 +-
 .../ignite/internal/binary/BinaryReaderExImpl.java |   5 +-
 .../apache/ignite/internal/binary/BinaryUtils.java |  39 ++---
 .../ignite/internal/binary/BinaryWriterExImpl.java |   5 +-
 .../internal/binary/GridBinaryMarshaller.java      |   4 +-
 .../internal/binary/builder/BinaryBuilderEnum.java |   5 +-
 .../binary/builder/BinaryBuilderReader.java        |   6 +-
 .../binary/builder/BinaryBuilderSerializer.java    |   4 +-
 .../binary/builder/BinaryEnumArrayLazyValue.java   |   5 +-
 .../internal/binary/builder/BinaryLazySet.java     |   4 +-
 .../binary/builder/BinaryObjectArrayLazyValue.java |   5 +-
 .../binary/builder/BinaryObjectBuilderImpl.java    |   7 +-
 .../binary/CacheObjectBinaryProcessorImpl.java     |   2 +-
 .../apache/ignite/internal/util/IgniteUtils.java   | 175 ---------------------
 .../apache/ignite/internal/util/GridUnsafe.java    |  13 ++
 21 files changed, 258 insertions(+), 245 deletions(-)

diff --git 
a/modules/commons/src/main/java/org/apache/ignite/internal/util/CommonUtils.java
 
b/modules/commons/src/main/java/org/apache/ignite/internal/util/CommonUtils.java
index 0a8f4174100..891cdddc7a0 100644
--- 
a/modules/commons/src/main/java/org/apache/ignite/internal/util/CommonUtils.java
+++ 
b/modules/commons/src/main/java/org/apache/ignite/internal/util/CommonUtils.java
@@ -25,6 +25,7 @@ import java.io.PrintStream;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
 import java.net.DatagramSocket;
 import java.net.Socket;
 import java.net.SocketException;
@@ -37,7 +38,13 @@ import java.security.PrivilegedAction;
 import java.time.Instant;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.ServiceLoader;
 import java.util.UUID;
@@ -814,6 +821,66 @@ public abstract class CommonUtils {
         return new HashMap<>(capacity(expSize));
     }
 
+    /**
+     * Creates new {@link LinkedHashMap} with expected size.
+     *
+     * @param expSize Expected size of created map.
+     * @param <K> Type of map keys.
+     * @param <V> Type of map values.
+     * @return New map.
+     */
+    public static <K, V> LinkedHashMap<K, V> newLinkedHashMap(int expSize) {
+        return new LinkedHashMap<>(capacity(expSize));
+    }
+
+    /**
+     * Creates new {@link HashSet} with expected size.
+     *
+     * @param expSize Expected size of created map.
+     * @param <T> Type of elements.
+     * @return New set.
+     */
+    public static <T> HashSet<T> newHashSet(int expSize) {
+        return new HashSet<>(capacity(expSize));
+    }
+
+    /**
+     * Creates new {@link LinkedHashSet} with expected size.
+     *
+     * @param expSize Expected size of created map.
+     * @param <T> Type of elements.
+     * @return New set.
+     */
+    public static <T> LinkedHashSet<T> newLinkedHashSet(int expSize) {
+        return new LinkedHashSet<>(capacity(expSize));
+    }
+
+    /**
+     * Creates new map that limited by size.
+     *
+     * @param limit Limit for size.
+     */
+    public static <K, V> Map<K, V> limitedMap(int limit) {
+        if (limit == 0)
+            return Collections.emptyMap();
+
+        if (limit < 5)
+            return new GridLeanMap<>(limit);
+
+        return new HashMap<>(capacity(limit), 0.75f);
+    }
+
+    /**
+     * @param col non-null collection with one element
+     * @return a SingletonList containing the element in the original 
collection
+     */
+    public static <T> Collection<T> convertToSingletonList(Collection<T> col) {
+        if (col.size() != 1) {
+            throw new IllegalArgumentException("Unexpected collection size for 
singleton list, expecting 1 but was: " + col.size());
+        }
+        return Collections.singletonList(col.iterator().next());
+    }
+
     /**
      * Closes given resource logging possible checked exception.
      *
@@ -1215,4 +1282,106 @@ public abstract class CommonUtils {
 
         return sCls != null && sCls.isEnum();
     }
+
+    /**
+     * Returns a first non-null value in a given array, if such is present.
+     *
+     * @param vals Input array.
+     * @return First non-null value, or {@code null}, if array is empty or 
contains
+     *      only nulls.
+     */
+    @Nullable public static <T> T firstNotNull(@Nullable T... vals) {
+        if (vals == null)
+            return null;
+
+        for (T val : vals) {
+            if (val != null)
+                return val;
+        }
+
+        return null;
+    }
+
+    /**
+     * @param cls Class to check.
+     * @return {@code True} if class is final.
+     */
+    public static boolean isFinal(Class<?> cls) {
+        return Modifier.isFinal(cls.getModifiers());
+    }
+
+    /**
+     * Checks if given class is of {@code Ignite} type.
+     *
+     * @param cls Class to check.
+     * @return {@code True} if given class is of {@code Ignite} type.
+     */
+    public static boolean isIgnite(Class<?> cls) {
+        String name = cls.getName();
+
+        return name.startsWith("org.apache.ignite") || 
name.startsWith("org.jsr166");
+    }
+
+    /**
+     * Checks if given class is of {@code Grid} type.
+     *
+     * @param cls Class to check.
+     * @return {@code True} if given class is of {@code Grid} type.
+     */
+    public static boolean isGrid(Class<?> cls) {
+        return cls.getName().startsWith("org.apache.ignite.internal");
+    }
+
+    /**
+     * Check if given class is of JDK type.
+     *
+     * @param cls Class to check.
+     * @return {@code True} if object is JDK type.
+     */
+    public static boolean isJdk(Class<?> cls) {
+        if (cls.isPrimitive())
+            return true;
+
+        String s = cls.getName();
+
+        return s.startsWith("java.") || s.startsWith("javax.");
+    }
+
+    /**
+     * Calculate a hashCode for an array.
+     *
+     * @param obj Object.
+     */
+    public static int hashCode(Object obj) {
+        if (obj == null)
+            return 0;
+
+        if (obj.getClass().isArray()) {
+            if (obj instanceof byte[])
+                return Arrays.hashCode((byte[])obj);
+            if (obj instanceof short[])
+                return Arrays.hashCode((short[])obj);
+            if (obj instanceof int[])
+                return Arrays.hashCode((int[])obj);
+            if (obj instanceof long[])
+                return Arrays.hashCode((long[])obj);
+            if (obj instanceof float[])
+                return Arrays.hashCode((float[])obj);
+            if (obj instanceof double[])
+                return Arrays.hashCode((double[])obj);
+            if (obj instanceof char[])
+                return Arrays.hashCode((char[])obj);
+            if (obj instanceof boolean[])
+                return Arrays.hashCode((boolean[])obj);
+
+            int result = 1;
+
+            for (Object element : (Object[])obj)
+                result = 31 * result + hashCode(element);
+
+            return result;
+        }
+        else
+            return obj.hashCode();
+    }
 }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryArray.java 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryArray.java
index 8279fc48f1c..dc8bc639b74 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryArray.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryArray.java
@@ -30,7 +30,7 @@ import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.binary.BinaryType;
 import org.apache.ignite.internal.GridDirectTransient;
 import org.apache.ignite.internal.processors.cache.CacheObjectUtils;
-import org.apache.ignite.internal.util.IgniteUtils;
+import org.apache.ignite.internal.util.CommonUtils;
 import org.apache.ignite.internal.util.tostring.GridToStringExclude;
 import org.apache.ignite.internal.util.tostring.GridToStringInclude;
 import org.apache.ignite.internal.util.typedef.F;
@@ -220,7 +220,7 @@ class BinaryArray implements BinaryObjectEx, 
Externalizable, Comparable<BinaryAr
     @Override public int hashCode() {
         int result = 31 * Objects.hash(componentTypeId());
 
-        result = 31 * result + IgniteUtils.hashCode(arr);
+        result = 31 * result + CommonUtils.hashCode(arr);
 
         return result;
     }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
index 9d4f56d478c..28470c3bd2b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
@@ -46,6 +46,7 @@ import org.apache.ignite.internal.UnregisteredClassException;
 import org.apache.ignite.internal.marshaller.optimized.OptimizedMarshaller;
 import org.apache.ignite.internal.processors.cache.CacheObjectImpl;
 import org.apache.ignite.internal.processors.query.QueryUtils;
+import org.apache.ignite.internal.util.CommonUtils;
 import org.apache.ignite.internal.util.GridUnsafe;
 import org.apache.ignite.internal.util.tostring.GridToStringExclude;
 import org.apache.ignite.internal.util.typedef.F;
@@ -55,7 +56,7 @@ import org.apache.ignite.marshaller.MarshallerExclusions;
 import org.jetbrains.annotations.Nullable;
 
 import static 
org.apache.ignite.internal.processors.query.QueryUtils.isGeometryClass;
-import static org.apache.ignite.internal.util.IgniteUtils.isLambda;
+import static org.apache.ignite.internal.util.CommonUtils.isLambda;
 
 /**
  * Binary class descriptor.
@@ -233,8 +234,8 @@ class BinaryClassDescriptor {
                 mode = serializer != null ? BinaryWriteMode.BINARY : 
BinaryUtils.mode(cls);
         }
 
-        if (useOptMarshaller && userType && !U.isIgnite(cls) && !U.isJdk(cls) 
&& !QueryUtils.isGeometryClass(cls)) {
-            U.warnDevOnly(ctx.log(), "Class \"" + cls.getName() + "\" cannot 
be serialized using " +
+        if (useOptMarshaller && userType && !CommonUtils.isIgnite(cls) && 
!CommonUtils.isJdk(cls) && !QueryUtils.isGeometryClass(cls)) {
+            CommonUtils.warnDevOnly(ctx.log(), "Class \"" + cls.getName() + 
"\" cannot be serialized using " +
                 BinaryMarshaller.class.getSimpleName() + " because it either 
implements Externalizable interface " +
                 "or have writeObject/readObject methods. " + 
OptimizedMarshaller.class.getSimpleName() + " will be " +
                 "used instead and class instances will be deserialized on the 
server. Please ensure that all nodes " +
@@ -904,7 +905,7 @@ class BinaryClassDescriptor {
             else
                 msg = "Failed to serialize object [typeId=" + typeId + ']';
 
-            U.error(ctx.log(), msg, e);
+            CommonUtils.error(ctx.log(), msg, e);
 
             throw new BinaryObjectException(msg, e);
         }
@@ -978,7 +979,7 @@ class BinaryClassDescriptor {
             else
                 msg = "Failed to deserialize object [typeId=" + typeId + ']';
 
-            U.error(ctx.log(), msg, e);
+            CommonUtils.error(ctx.log(), msg, e);
 
             throw new BinaryObjectException(msg, e);
         }
@@ -1099,7 +1100,7 @@ class BinaryClassDescriptor {
         assert cls != null;
 
         try {
-            Constructor<?> ctor = U.forceEmptyConstructor(cls);
+            Constructor<?> ctor = CommonUtils.forceEmptyConstructor(cls);
 
             if (ctor == null)
                 throw new BinaryObjectException("Failed to find empty 
constructor for class: " + cls.getName());
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
index 099b3edaf65..d77bab2caff 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
@@ -64,6 +64,7 @@ import org.apache.ignite.internal.DuplicateTypeIdException;
 import org.apache.ignite.internal.UnregisteredBinaryTypeException;
 import org.apache.ignite.internal.UnregisteredClassException;
 import org.apache.ignite.internal.marshaller.optimized.OptimizedMarshaller;
+import org.apache.ignite.internal.util.CommonUtils;
 import org.apache.ignite.internal.util.lang.GridMapEntry;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.T2;
@@ -82,7 +83,7 @@ import static 
org.apache.ignite.internal.MarshallerPlatformIds.JAVA_ID;
  */
 public class BinaryContext {
     /** System loader. */
-    private static final ClassLoader sysLdr = U.gridClassLoader();
+    private static final ClassLoader sysLdr = CommonUtils.gridClassLoader();
 
     /** */
     private static final BinaryInternalMapper DFLT_MAPPER =
@@ -272,8 +273,8 @@ public class BinaryContext {
 
         // IDs range [200..1000] is used by Ignite internal APIs.
 
-        if (U.sunReflectionFactory() == null) {
-            U.warn(log, "ReflectionFactory not found, deserialization of 
binary objects for classes without " +
+        if (CommonUtils.sunReflectionFactory() == null) {
+            CommonUtils.warn(log, "ReflectionFactory not found, 
deserialization of binary objects for classes without " +
                 "default constructor is not possible");
         }
 
@@ -359,9 +360,9 @@ public class BinaryContext {
                     throw new BinaryObjectException("Class name is required 
for binary type configuration.");
 
                 // Resolve mapper.
-                BinaryIdMapper idMapper = 
U.firstNotNull(typeCfg.getIdMapper(), globalIdMapper);
-                BinaryNameMapper nameMapper = 
U.firstNotNull(typeCfg.getNameMapper(), globalNameMapper);
-                BinarySerializer serializer = 
U.firstNotNull(typeCfg.getSerializer(), globalSerializer);
+                BinaryIdMapper idMapper = 
CommonUtils.firstNotNull(typeCfg.getIdMapper(), globalIdMapper);
+                BinaryNameMapper nameMapper = 
CommonUtils.firstNotNull(typeCfg.getNameMapper(), globalNameMapper);
+                BinarySerializer serializer = 
CommonUtils.firstNotNull(typeCfg.getSerializer(), globalSerializer);
                 BinaryIdentityResolver identity = 
BinaryArrayIdentityResolver.instance();
 
                 BinaryInternalMapper mapper = resolveMapper(nameMapper, 
idMapper);
@@ -373,7 +374,7 @@ public class BinaryContext {
                         String affField = affFields.remove(clsName0);
 
                         if (affField == null) {
-                            Class<?> cls = U.classForName(clsName0, null);
+                            Class<?> cls = CommonUtils.classForName(clsName0, 
null);
 
                             if (cls != null)
                                 affField = affFldNameProvider.apply(cls);
@@ -387,7 +388,7 @@ public class BinaryContext {
                     String affField = affFields.remove(clsName);
 
                     if (affField == null) {
-                        Class<?> cls = U.classForName(clsName, null);
+                        Class<?> cls = CommonUtils.classForName(clsName, null);
 
                         if (cls != null)
                             affField = affFldNameProvider.apply(cls);
@@ -471,7 +472,7 @@ public class BinaryContext {
 
         Collection<String> clsNames = new ArrayList<>();
 
-        ClassLoader ldr = U.gridClassLoader();
+        ClassLoader ldr = CommonUtils.gridClassLoader();
 
         String pkgPath = pkgName.replaceAll("\\.", "/");
 
@@ -739,7 +740,7 @@ public class BinaryContext {
                 if (clsName == null)
                     throw new ClassNotFoundException("Unknown type ID: " + 
typeId);
 
-                cls = U.forName(clsName, ldr, null);
+                cls = CommonUtils.forName(clsName, ldr, null, 
Marshallers.USE_CACHE.get());
 
                 desc = descByCls.get(cls);
 
@@ -1116,7 +1117,7 @@ public class BinaryContext {
         Class<?> cls = null;
 
         try {
-            cls = U.resolveClassLoader(null, classLoader()).loadClass(clsName);
+            cls = CommonUtils.resolveClassLoader(null, 
classLoader()).loadClass(clsName);
         }
         catch (ClassNotFoundException | NoClassDefFoundError ignored) {
             // No-op.
@@ -1495,7 +1496,7 @@ public class BinaryContext {
 
         optmMarsh.onUndeploy(ldr);
 
-        U.clearClassCache(ldr);
+        CommonUtils.clearClassCache(ldr);
     }
 
     /**
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryFieldAccessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryFieldAccessor.java
index 02345be7555..dea0592156b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryFieldAccessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryFieldAccessor.java
@@ -28,10 +28,10 @@ import java.util.UUID;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.internal.UnregisteredBinaryTypeException;
 import org.apache.ignite.internal.UnregisteredClassException;
+import org.apache.ignite.internal.util.CommonUtils;
 import org.apache.ignite.internal.util.GridUnsafe;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.internal.util.typedef.internal.U;
 
 /**
  * Field accessor to speedup access.
@@ -116,7 +116,7 @@ abstract class BinaryFieldAccessor {
                 return new DefaultFinalClassAccessor(field, id, mode, false);
 
             default:
-                return new DefaultFinalClassAccessor(field, id, mode, 
!U.isFinal(field.getType()));
+                return new DefaultFinalClassAccessor(field, id, mode, 
!CommonUtils.isFinal(field.getType()));
         }
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryMetadata.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryMetadata.java
index b0c96229395..effd80efe34 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryMetadata.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryMetadata.java
@@ -30,6 +30,7 @@ import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Set;
+import org.apache.ignite.internal.util.CommonUtils;
 import org.apache.ignite.internal.util.tostring.GridToStringInclude;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.U;
@@ -122,7 +123,7 @@ public class BinaryMetadata implements Externalizable {
         this.schemas = schemas;
 
         if (schemas != null) {
-            schemaIds = U.newHashSet(schemas.size());
+            schemaIds = CommonUtils.newHashSet(schemas.size());
 
             for (BinarySchema schema : schemas)
                 schemaIds.add(schema.schemaId());
@@ -328,7 +329,7 @@ public class BinaryMetadata implements Externalizable {
         else {
             schemas = new ArrayList<>();
 
-            schemaIds = U.newHashSet(schemasSize);
+            schemaIds = CommonUtils.newHashSet(schemasSize);
 
             for (int i = 0; i < schemasSize; i++) {
                 BinarySchema schema = new BinarySchema();
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 e5778190f52..bfc5d556709 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
@@ -39,7 +39,7 @@ 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.typedef.internal.U;
+import org.apache.ignite.internal.util.GridUnsafe;
 import org.apache.ignite.marshaller.Marshallers;
 import org.apache.ignite.plugin.extensions.communication.MessageReader;
 import org.apache.ignite.plugin.extensions.communication.MessageWriter;
@@ -90,7 +90,7 @@ class BinaryObjectOffheapImpl extends BinaryObjectExImpl 
implements Externalizab
      * @return Heap-based copy.
      */
     public BinaryObject heapCopy() {
-        return new BinaryObjectImpl(ctx, U.copyMemory(ptr, size), start);
+        return new BinaryObjectImpl(ctx, GridUnsafe.copyMemory(ptr, size), 
start);
     }
 
     /** {@inheritDoc} */
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java
index aad7833d34d..91604f0b7e1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java
@@ -35,7 +35,6 @@ import org.apache.ignite.binary.BinaryObject;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.binary.BinaryRawReader;
 import org.apache.ignite.internal.binary.streams.BinaryInputStream;
-import org.apache.ignite.internal.util.IgniteUtils;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.SB;
 import org.apache.ignite.internal.util.typedef.internal.U;
@@ -1703,13 +1702,13 @@ class BinaryReaderExImpl implements BinaryReaderEx {
     /** {@inheritDoc} */
     @Override public @Nullable Object deserialize() throws 
BinaryObjectException {
         String newName = ctx.igniteInstanceName();
-        String oldName = IgniteUtils.setCurrentIgniteName(newName);
+        String oldName = U.setCurrentIgniteName(newName);
 
         try {
             return deserialize0();
         }
         finally {
-            IgniteUtils.restoreOldIgniteName(oldName, newName);
+            U.restoreOldIgniteName(oldName, newName);
         }
     }
 
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 aa2f44abd9d..ed94e37d0e3 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
@@ -75,6 +75,7 @@ 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.binary.CacheObjectBinaryProcessorImpl;
+import org.apache.ignite.internal.util.CommonUtils;
 import org.apache.ignite.internal.util.GridUnsafe;
 import org.apache.ignite.internal.util.MutableSingletonList;
 import org.apache.ignite.internal.util.typedef.F;
@@ -584,7 +585,7 @@ public class BinaryUtils {
         if (type != null)
             return type;
 
-        if (U.isEnum(cls))
+        if (CommonUtils.isEnum(cls))
             return GridBinaryMarshaller.ENUM;
 
         if (cls.isArray())
@@ -642,9 +643,9 @@ public class BinaryUtils {
         Class<?> cls = map == null ? null : map.getClass();
 
         if (cls == HashMap.class)
-            return U.newHashMap(((Map)map).size());
+            return CommonUtils.newHashMap(((Map)map).size());
         else if (cls == LinkedHashMap.class)
-            return U.newLinkedHashMap(((Map)map).size());
+            return CommonUtils.newLinkedHashMap(((Map)map).size());
         else if (cls == ConcurrentHashMap.class)
             return new ConcurrentHashMap<>(((Map)map).size());
 
@@ -660,13 +661,13 @@ public class BinaryUtils {
      */
     public static <K, V> Map<K, V> newMap(Map<K, V> map) {
         if (map instanceof LinkedHashMap)
-            return U.newLinkedHashMap(map.size());
+            return CommonUtils.newLinkedHashMap(map.size());
         else if (map instanceof TreeMap)
             return new TreeMap<>(((TreeMap<Object, Object>)map).comparator());
         else if (map instanceof ConcurrentHashMap)
             return new ConcurrentHashMap<>(map.size());
 
-        return U.newHashMap(map.size());
+        return CommonUtils.newHashMap(map.size());
     }
 
     /**
@@ -710,9 +711,9 @@ public class BinaryUtils {
         Class<?> cls = col == null ? null : col.getClass();
 
         if (cls == HashSet.class)
-            return U.newHashSet(((Collection)col).size());
+            return CommonUtils.newHashSet(((Collection)col).size());
         else if (cls == LinkedHashSet.class)
-            return U.newLinkedHashSet(((Collection)col).size());
+            return CommonUtils.newLinkedHashSet(((Collection)col).size());
         else if (cls == ConcurrentSkipListSet.class)
             return new 
ConcurrentSkipListSet<>(((ConcurrentSkipListSet<Object>)col).comparator());
         else if (cls == ArrayList.class)
@@ -1123,7 +1124,7 @@ public class BinaryUtils {
             return BinaryWriteMode.COL;
         else if (isSpecialMap(cls))
             return BinaryWriteMode.MAP;
-        else if (U.isEnum(cls))
+        else if (CommonUtils.isEnum(cls))
             return BinaryWriteMode.ENUM;
         else if (cls == BinaryEnumObjectImpl.class)
             return BinaryWriteMode.BINARY_ENUM;
@@ -1545,7 +1546,7 @@ public class BinaryUtils {
 
         InvocationHandler ih = (InvocationHandler)doReadObject(in, ctx, ldr, 
handles);
 
-        return Proxy.newProxyInstance(ldr != null ? ldr : U.gridClassLoader(), 
intfs, ih);
+        return Proxy.newProxyInstance(ldr != null ? ldr : 
CommonUtils.gridClassLoader(), intfs, ih);
     }
 
     /**
@@ -1598,7 +1599,7 @@ public class BinaryUtils {
             boolean useCache = Marshallers.USE_CACHE.get();
 
             try {
-                cls = U.forName(clsName, ldr, null);
+                cls = CommonUtils.forName(clsName, ldr, null, 
Marshallers.USE_CACHE.get());
             }
             catch (ClassNotFoundException e) {
                 throw new BinaryInvalidTypeException("Failed to load the 
class: " + clsName, e);
@@ -1629,7 +1630,7 @@ public class BinaryUtils {
             cls = ctx.descriptorForTypeId(true, typeId, ldr, 
registerMeta).describedClass();
         else {
             try {
-                cls = U.forName(clsName, ldr, null);
+                cls = CommonUtils.forName(clsName, ldr, null, 
Marshallers.USE_CACHE.get());
             }
             catch (ClassNotFoundException e) {
                 throw new BinaryInvalidTypeException("Failed to load the 
class: " + clsName, e);
@@ -1806,7 +1807,7 @@ public class BinaryUtils {
         ByteArrayInputStream input = new ByteArrayInputStream(in.array(), 
in.position(), len);
 
         try {
-            return ctx.optimizedMarsh().unmarshal(input, 
U.resolveClassLoader(clsLdr, ctx.classLoader()));
+            return ctx.optimizedMarsh().unmarshal(input, 
CommonUtils.resolveClassLoader(clsLdr, ctx.classLoader()));
         }
         catch (IgniteCheckedException e) {
             throw new BinaryObjectException("Failed to unmarshal object with 
optimized marshaller", e);
@@ -2254,17 +2255,17 @@ public class BinaryUtils {
                     break;
 
                 case GridBinaryMarshaller.HASH_SET:
-                    col = U.newHashSet(size);
+                    col = CommonUtils.newHashSet(size);
 
                     break;
 
                 case GridBinaryMarshaller.LINKED_HASH_SET:
-                    col = U.newLinkedHashSet(size);
+                    col = CommonUtils.newLinkedHashSet(size);
 
                     break;
 
                 case GridBinaryMarshaller.USER_SET:
-                    col = U.newHashSet(size);
+                    col = CommonUtils.newHashSet(size);
 
                     break;
 
@@ -2283,7 +2284,7 @@ public class BinaryUtils {
         for (int i = 0; i < size; i++)
             col.add(deserializeOrUnmarshal(in, ctx, ldr, handles, detach, 
deserialize));
 
-        return colType == GridBinaryMarshaller.SINGLETON_LIST ? 
U.convertToSingletonList(col) : col;
+        return colType == GridBinaryMarshaller.SINGLETON_LIST ? 
CommonUtils.convertToSingletonList(col) : col;
     }
 
     /**
@@ -2311,17 +2312,17 @@ public class BinaryUtils {
         else {
             switch (mapType) {
                 case GridBinaryMarshaller.HASH_MAP:
-                    map = U.newHashMap(size);
+                    map = CommonUtils.newHashMap(size);
 
                     break;
 
                 case GridBinaryMarshaller.LINKED_HASH_MAP:
-                    map = U.newLinkedHashMap(size);
+                    map = CommonUtils.newLinkedHashMap(size);
 
                     break;
 
                 case GridBinaryMarshaller.USER_COL:
-                    map = U.newHashMap(size);
+                    map = CommonUtils.newHashMap(size);
 
                     break;
 
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 9bb268c3ccc..63958a225d2 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
@@ -34,7 +34,6 @@ import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.binary.BinaryRawWriter;
 import org.apache.ignite.internal.UnregisteredClassException;
 import org.apache.ignite.internal.binary.streams.BinaryOutputStream;
-import org.apache.ignite.internal.util.IgniteUtils;
 import org.apache.ignite.internal.util.typedef.internal.A;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.jetbrains.annotations.Nullable;
@@ -131,13 +130,13 @@ class BinaryWriterExImpl implements BinaryWriterEx {
      */
     void marshal(Object obj, boolean enableReplace) throws 
BinaryObjectException {
         String newName = ctx.igniteInstanceName();
-        String oldName = IgniteUtils.setCurrentIgniteName(newName);
+        String oldName = U.setCurrentIgniteName(newName);
 
         try {
             marshal0(obj, enableReplace);
         }
         finally {
-            IgniteUtils.restoreOldIgniteName(oldName, newName);
+            U.restoreOldIgniteName(oldName, newName);
         }
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/GridBinaryMarshaller.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/GridBinaryMarshaller.java
index 95e80e82a2a..2e4c7de280e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/GridBinaryMarshaller.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/GridBinaryMarshaller.java
@@ -30,8 +30,8 @@ import 
org.apache.ignite.internal.binary.streams.BinaryOutputStream;
 import org.apache.ignite.internal.binary.streams.BinaryStreams;
 import 
org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl;
 import 
org.apache.ignite.internal.processors.cacheobject.IgniteCacheObjectProcessor;
+import org.apache.ignite.internal.util.CommonUtils;
 import org.apache.ignite.internal.util.MutableSingletonList;
-import org.apache.ignite.internal.util.typedef.internal.U;
 import org.jetbrains.annotations.Nullable;
 
 /**
@@ -338,7 +338,7 @@ public class GridBinaryMarshaller {
         for (Object obj0 : col)
             col0.add(unwrapBinary(obj0, hnds, null));
 
-        return (col0 instanceof MutableSingletonList) ? 
U.convertToSingletonList(col0) : col0;
+        return (col0 instanceof MutableSingletonList) ? 
CommonUtils.convertToSingletonList(col0) : col0;
     }
 
     /**
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderEnum.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderEnum.java
index 23bd32b6d83..4fc65707b16 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderEnum.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderEnum.java
@@ -20,7 +20,8 @@ package org.apache.ignite.internal.binary.builder;
 import org.apache.ignite.binary.BinaryInvalidTypeException;
 import org.apache.ignite.internal.binary.BinaryWriterEx;
 import org.apache.ignite.internal.binary.GridBinaryMarshaller;
-import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.util.CommonUtils;
+import org.apache.ignite.marshaller.Marshallers;
 
 /**
  *
@@ -57,7 +58,7 @@ class BinaryBuilderEnum implements 
BinaryBuilderSerializationAware {
             Class cls;
 
             try {
-                cls = U.forName(reader.readString(), 
reader.binaryContext().classLoader());
+                cls = CommonUtils.forName(reader.readString(), 
reader.binaryContext().classLoader(), null, Marshallers.USE_CACHE.get());
             }
             catch (ClassNotFoundException e) {
                 throw new BinaryInvalidTypeException("Failed to load the 
class: " + clsName, e);
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderReader.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderReader.java
index 6bbcf3b82a6..818285c1b83 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderReader.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderReader.java
@@ -34,7 +34,7 @@ import org.apache.ignite.internal.binary.BinaryWriterEx;
 import org.apache.ignite.internal.binary.GridBinaryMarshaller;
 import org.apache.ignite.internal.binary.streams.BinaryInputStream;
 import org.apache.ignite.internal.binary.streams.BinaryStreams;
-import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.util.CommonUtils;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 
@@ -491,7 +491,7 @@ class BinaryBuilderReader implements BinaryPositionReadable 
{
             case GridBinaryMarshaller.OPTM_MARSH: {
                 final BinaryInputStream bin = BinaryStreams.inputStream(arr, 
pos + 1);
 
-                final Object obj = BinaryUtils.doReadOptimized(bin, ctx, 
U.resolveClassLoader(null, ctx.classLoader()));
+                final Object obj = BinaryUtils.doReadOptimized(bin, ctx, 
CommonUtils.resolveClassLoader(null, ctx.classLoader()));
 
                 return obj;
             }
@@ -843,7 +843,7 @@ class BinaryBuilderReader implements BinaryPositionReadable 
{
             case GridBinaryMarshaller.OPTM_MARSH: {
                 final BinaryInputStream bin = BinaryStreams.inputStream(arr, 
pos);
 
-                final Object obj = BinaryUtils.doReadOptimized(bin, ctx, 
U.resolveClassLoader(null, ctx.classLoader()));
+                final Object obj = BinaryUtils.doReadOptimized(bin, ctx, 
CommonUtils.resolveClassLoader(null, ctx.classLoader()));
 
                 pos = bin.position();
 
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 a969a51a9df..63e52ffe1f2 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
@@ -25,7 +25,7 @@ import org.apache.ignite.internal.binary.BinaryObjectEx;
 import org.apache.ignite.internal.binary.BinaryUtils;
 import org.apache.ignite.internal.binary.BinaryWriterEx;
 import org.apache.ignite.internal.binary.GridBinaryMarshaller;
-import org.apache.ignite.internal.util.IgniteUtils;
+import org.apache.ignite.internal.util.CommonUtils;
 
 /**
  *
@@ -123,7 +123,7 @@ class BinaryBuilderSerializer {
             return;
         }
 
-        if (IgniteUtils.isEnum(val.getClass())) {
+        if (CommonUtils.isEnum(val.getClass())) {
             String clsName = ((Enum)val).getDeclaringClass().getName();
 
             int typeId = writer.context().typeId(clsName);
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryEnumArrayLazyValue.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryEnumArrayLazyValue.java
index f966abca5bf..b90d60aa070 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryEnumArrayLazyValue.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryEnumArrayLazyValue.java
@@ -21,7 +21,8 @@ import org.apache.ignite.binary.BinaryInvalidTypeException;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.internal.binary.BinaryWriterEx;
 import org.apache.ignite.internal.binary.GridBinaryMarshaller;
-import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.util.CommonUtils;
+import org.apache.ignite.marshaller.Marshallers;
 
 /**
  *
@@ -50,7 +51,7 @@ class BinaryEnumArrayLazyValue extends 
BinaryAbstractLazyValue {
             Class cls;
 
             try {
-                cls = U.forName(reader.readString(), 
reader.binaryContext().classLoader());
+                cls = CommonUtils.forName(reader.readString(), 
reader.binaryContext().classLoader(), null, Marshallers.USE_CACHE.get());
             }
             catch (ClassNotFoundException e) {
                 throw new BinaryInvalidTypeException("Failed to load the 
class: " + clsName, e);
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryLazySet.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryLazySet.java
index b828b0302c7..76f557e60cd 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryLazySet.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryLazySet.java
@@ -21,7 +21,7 @@ import java.util.Collection;
 import java.util.Set;
 import org.apache.ignite.internal.binary.BinaryWriterEx;
 import org.apache.ignite.internal.binary.GridBinaryMarshaller;
-import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.util.CommonUtils;
 
 /**
  *
@@ -81,7 +81,7 @@ class BinaryLazySet extends BinaryAbstractLazyValue {
 
         reader.position(off + 1/* flag */ + 4/* size */ + 1/* col type */);
 
-        Set<Object> res = U.newLinkedHashSet(size);
+        Set<Object> res = CommonUtils.newLinkedHashSet(size);
 
         for (int i = 0; i < size; i++)
             res.add(BinaryObjectBuilders.unwrapLazy(reader.parseValue()));
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectArrayLazyValue.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectArrayLazyValue.java
index ebdf96c04d6..c2110b6099b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectArrayLazyValue.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectArrayLazyValue.java
@@ -20,7 +20,8 @@ package org.apache.ignite.internal.binary.builder;
 import org.apache.ignite.binary.BinaryInvalidTypeException;
 import org.apache.ignite.internal.binary.BinaryWriterEx;
 import org.apache.ignite.internal.binary.GridBinaryMarshaller;
-import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.util.CommonUtils;
+import org.apache.ignite.marshaller.Marshallers;
 
 /**
  *
@@ -49,7 +50,7 @@ class BinaryObjectArrayLazyValue extends 
BinaryAbstractLazyValue {
             Class cls;
 
             try {
-                cls = U.forName(reader.readString(), 
reader.binaryContext().classLoader());
+                cls = CommonUtils.forName(reader.readString(), 
reader.binaryContext().classLoader(), null, Marshallers.USE_CACHE.get());
             }
             catch (ClassNotFoundException e) {
                 throw new BinaryInvalidTypeException("Failed to load the 
class: " + clsName, e);
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 25e089b2f59..56c9872c310 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
@@ -36,9 +36,10 @@ import org.apache.ignite.internal.binary.BinaryObjectEx;
 import org.apache.ignite.internal.binary.BinaryUtils;
 import org.apache.ignite.internal.binary.BinaryWriterEx;
 import org.apache.ignite.internal.binary.GridBinaryMarshaller;
+import org.apache.ignite.internal.util.CommonUtils;
 import org.apache.ignite.internal.util.typedef.F;
-import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteBiTuple;
+import org.apache.ignite.marshaller.Marshallers;
 import org.apache.ignite.thread.IgniteThread;
 import org.jetbrains.annotations.Nullable;
 
@@ -147,7 +148,7 @@ class BinaryObjectBuilderImpl implements 
BinaryObjectBuilder {
             Class cls;
 
             try {
-                cls = U.forName(clsNameToWrite, ctx.classLoader());
+                cls = CommonUtils.forName(clsNameToWrite, ctx.classLoader(), 
null, Marshallers.USE_CACHE.get());
             }
             catch (ClassNotFoundException e) {
                 throw new BinaryInvalidTypeException("Failed to load the 
class: " + clsNameToWrite, e);
@@ -207,7 +208,7 @@ class BinaryObjectBuilderImpl implements 
BinaryObjectBuilder {
                 Map<Integer, Object> assignedFldsById;
 
                 if (assignedVals != null) {
-                    assignedFldsById = U.newHashMap(assignedVals.size());
+                    assignedFldsById = 
CommonUtils.newHashMap(assignedVals.size());
 
                     for (Map.Entry<String, Object> entry : 
assignedVals.entrySet()) {
                         String name = entry.getKey();
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 c7115af742d..bf3dff665c2 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
@@ -434,7 +434,7 @@ public class CacheObjectBinaryProcessorImpl extends 
GridProcessorAdapter impleme
             return binaryMarsh.unmarshal(in);
         }
         else
-            return U.copyMemory(ptr, size);
+            return GridUnsafe.copyMemory(ptr, size);
     }
 
     /** {@inheritDoc} */
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 de3302a80bf..ff611bc4d77 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
@@ -4014,44 +4014,6 @@ public abstract class IgniteUtils extends CommonUtils {
         return map;
     }
 
-    /**
-     * Calculate a hashCode for an array.
-     *
-     * @param obj Object.
-     */
-    public static int hashCode(Object obj) {
-        if (obj == null)
-            return 0;
-
-        if (obj.getClass().isArray()) {
-            if (obj instanceof byte[])
-                return Arrays.hashCode((byte[])obj);
-            if (obj instanceof short[])
-                return Arrays.hashCode((short[])obj);
-            if (obj instanceof int[])
-                return Arrays.hashCode((int[])obj);
-            if (obj instanceof long[])
-                return Arrays.hashCode((long[])obj);
-            if (obj instanceof float[])
-                return Arrays.hashCode((float[])obj);
-            if (obj instanceof double[])
-                return Arrays.hashCode((double[])obj);
-            if (obj instanceof char[])
-                return Arrays.hashCode((char[])obj);
-            if (obj instanceof boolean[])
-                return Arrays.hashCode((boolean[])obj);
-
-            int result = 1;
-
-            for (Object element : (Object[])obj)
-                result = 31 * result + hashCode(element);
-
-            return result;
-        }
-        else
-            return obj.hashCode();
-    }
-
     /**
      * @param in Input.
      * @return Read map.
@@ -4890,43 +4852,6 @@ public abstract class IgniteUtils extends CommonUtils {
         return null;
     }
 
-    /**
-     * Checks if given class is of {@code Ignite} type.
-     *
-     * @param cls Class to check.
-     * @return {@code True} if given class is of {@code Ignite} type.
-     */
-    public static boolean isIgnite(Class<?> cls) {
-        String name = cls.getName();
-
-        return name.startsWith("org.apache.ignite") || 
name.startsWith("org.jsr166");
-    }
-
-    /**
-     * Checks if given class is of {@code Grid} type.
-     *
-     * @param cls Class to check.
-     * @return {@code True} if given class is of {@code Grid} type.
-     */
-    public static boolean isGrid(Class<?> cls) {
-        return cls.getName().startsWith("org.apache.ignite.internal");
-    }
-
-    /**
-     * Check if given class is of JDK type.
-     *
-     * @param cls Class to check.
-     * @return {@code True} if object is JDK type.
-     */
-    public static boolean isJdk(Class<?> cls) {
-        if (cls.isPrimitive())
-            return true;
-
-        String s = cls.getName();
-
-        return s.startsWith("java.") || s.startsWith("javax.");
-    }
-
     /**
      * Converts {@link InterruptedException} to {@link IgniteCheckedException}.
      *
@@ -6054,14 +5979,6 @@ public abstract class IgniteUtils extends CommonUtils {
         }
     }
 
-    /**
-     * @param cls Class to check.
-     * @return {@code True} if class is final.
-     */
-    public static boolean isFinal(Class<?> cls) {
-        return Modifier.isFinal(cls.getModifiers());
-    }
-
     /**
      * Gets field value.
      *
@@ -6542,25 +6459,6 @@ public abstract class IgniteUtils extends CommonUtils {
             e.getMessage().toLowerCase().contains("invalid argument");
     }
 
-    /**
-     * Returns a first non-null value in a given array, if such is present.
-     *
-     * @param vals Input array.
-     * @return First non-null value, or {@code null}, if array is empty or 
contains
-     *      only nulls.
-     */
-    @Nullable public static <T> T firstNotNull(@Nullable T... vals) {
-        if (vals == null)
-            return null;
-
-        for (T val : vals) {
-            if (val != null)
-                return val;
-        }
-
-        return null;
-    }
-
     /**
      * For each object provided by the given {@link Iterable} checks if it 
implements
      * {@link LifecycleAware} interface and executes {@link 
LifecycleAware#start} method.
@@ -7073,79 +6971,6 @@ public abstract class IgniteUtils extends CommonUtils {
         return youngest;
     }
 
-    /**
-     * @param ptr Address.
-     * @param size Size.
-     * @return Bytes.
-     */
-    public static byte[] copyMemory(long ptr, int size) {
-        byte[] res = new byte[size];
-
-        GridUnsafe.copyMemory(null, ptr, res, GridUnsafe.BYTE_ARR_OFF, size);
-
-        return res;
-    }
-
-    /**
-     * Creates new {@link LinkedHashMap} with expected size.
-     *
-     * @param expSize Expected size of created map.
-     * @param <K> Type of map keys.
-     * @param <V> Type of map values.
-     * @return New map.
-     */
-    public static <K, V> LinkedHashMap<K, V> newLinkedHashMap(int expSize) {
-        return new LinkedHashMap<>(capacity(expSize));
-    }
-
-    /**
-     * Creates new {@link HashSet} with expected size.
-     *
-     * @param expSize Expected size of created map.
-     * @param <T> Type of elements.
-     * @return New set.
-     */
-    public static <T> HashSet<T> newHashSet(int expSize) {
-        return new HashSet<>(capacity(expSize));
-    }
-
-    /**
-     * Creates new {@link LinkedHashSet} with expected size.
-     *
-     * @param expSize Expected size of created map.
-     * @param <T> Type of elements.
-     * @return New set.
-     */
-    public static <T> LinkedHashSet<T> newLinkedHashSet(int expSize) {
-        return new LinkedHashSet<>(capacity(expSize));
-    }
-
-    /**
-     * Creates new map that limited by size.
-     *
-     * @param limit Limit for size.
-     */
-    public static <K, V> Map<K, V> limitedMap(int limit) {
-        if (limit == 0)
-            return Collections.emptyMap();
-
-        if (limit < 5)
-            return new GridLeanMap<>(limit);
-
-        return new HashMap<>(capacity(limit), 0.75f);
-    }
-
-    /**
-     * @param col non-null collection with one element
-     * @return a SingletonList containing the element in the original 
collection
-     */
-    public static <T> Collection<T> convertToSingletonList(Collection<T> col) {
-        if (col.size() != 1) {
-            throw new IllegalArgumentException("Unexpected collection size for 
singleton list, expecting 1 but was: " + col.size());
-        }
-        return Collections.singletonList(col.iterator().next());
-    }
-
     /**
      * Returns comparator that sorts remote node addresses. If remote node 
resides on the same host, then put
      * loopback addresses first, last otherwise.
diff --git 
a/modules/unsafe/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java 
b/modules/unsafe/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java
index a4ff4c7d38a..7fe04ed2713 100644
--- 
a/modules/unsafe/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java
+++ 
b/modules/unsafe/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java
@@ -1353,6 +1353,19 @@ public abstract class GridUnsafe {
             UNSAFE.copyMemory(srcBase, srcOff, dstBase, dstOff, len);
     }
 
+    /**
+     * @param ptr Address.
+     * @param size Size.
+     * @return Bytes.
+     */
+    public static byte[] copyMemory(long ptr, int size) {
+        byte[] res = new byte[size];
+
+        copyMemory(null, ptr, res, BYTE_ARR_OFF, size);
+
+        return res;
+    }
+
     /**
      * Frees memory.
      *

Reply via email to