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

shishkovilja 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 da9a4f06318 IGNITE-26470 Remove Message interface from GridIntList 
(#12364)
da9a4f06318 is described below

commit da9a4f063180beff091f57a506300e6c2485c61e
Author: Aleksandr Chesnokov <[email protected]>
AuthorDate: Mon Oct 6 12:06:41 2025 +0300

    IGNITE-26470 Remove Message interface from GridIntList (#12364)
---
 .../communication/GridIoMessageFactory.java        |   3 -
 .../atomic/GridDhtAtomicAbstractUpdateRequest.java |   6 --
 .../atomic/GridDhtAtomicSingleUpdateRequest.java   |   6 --
 .../dht/atomic/GridDhtAtomicUpdateRequest.java     |  21 ++---
 .../IgniteTxImplicitSingleStateImpl.java           |   2 +-
 .../apache/ignite/internal/util/GridIntList.java   | 103 ++-------------------
 .../apache/ignite/util/GridIntListSelfTest.java    |  66 +------------
 7 files changed, 21 insertions(+), 186 deletions(-)

diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
index ba911ea1b81..7640cd1f4e9 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
@@ -50,7 +50,6 @@ import 
org.apache.ignite.internal.codegen.GridDhtTxOnePhaseCommitAckRequestSeria
 import org.apache.ignite.internal.codegen.GridDhtTxPrepareRequestSerializer;
 import org.apache.ignite.internal.codegen.GridDhtUnlockRequestSerializer;
 import 
org.apache.ignite.internal.codegen.GridDistributedTxPrepareRequestSerializer;
-import org.apache.ignite.internal.codegen.GridIntListSerializer;
 import org.apache.ignite.internal.codegen.GridJobCancelRequestSerializer;
 import org.apache.ignite.internal.codegen.GridJobSiblingsRequestSerializer;
 import 
org.apache.ignite.internal.codegen.GridNearAtomicCheckUpdateRequestSerializer;
@@ -211,7 +210,6 @@ import 
org.apache.ignite.internal.processors.service.ServiceDeploymentProcessId;
 import 
org.apache.ignite.internal.processors.service.ServiceSingleNodeDeploymentResult;
 import 
org.apache.ignite.internal.processors.service.ServiceSingleNodeDeploymentResultBatch;
 import org.apache.ignite.internal.util.GridByteArrayList;
-import org.apache.ignite.internal.util.GridIntList;
 import org.apache.ignite.internal.util.UUIDCollectionMessage;
 import org.apache.ignite.internal.util.distributed.SingleNodeMessage;
 import org.apache.ignite.plugin.extensions.communication.MessageFactory;
@@ -234,7 +232,6 @@ public class GridIoMessageFactory implements 
MessageFactoryProvider {
         // -46 ... -51 - snapshot messages.
         factory.register((short)-61, IgniteDiagnosticMessage::new);
         factory.register((short)-53, SchemaOperationStatusMessage::new, new 
SchemaOperationStatusMessageSerializer());
-        factory.register((short)-52, GridIntList::new, new 
GridIntListSerializer());
         factory.register((short)-51, NearCacheUpdates::new, new 
NearCacheUpdatesSerializer());
         factory.register((short)-50, GridNearAtomicCheckUpdateRequest::new, 
new GridNearAtomicCheckUpdateRequestSerializer());
         factory.register((short)-49, UpdateErrors::new);
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicAbstractUpdateRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicAbstractUpdateRequest.java
index 1447a8a49ed..108b2810b5b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicAbstractUpdateRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicAbstractUpdateRequest.java
@@ -357,12 +357,6 @@ public abstract class GridDhtAtomicAbstractUpdateRequest 
extends GridCacheIdMess
      */
     public abstract int nearSize();
 
-    /**
-     * @param key Key to check.
-     * @return {@code true} if request keys contain key.
-     */
-    public abstract boolean hasKey(KeyCacheObject key);
-
     /**
      * @param idx Key index.
      * @return Key.
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicSingleUpdateRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicSingleUpdateRequest.java
index 33fd4d522bc..dfced709aba 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicSingleUpdateRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicSingleUpdateRequest.java
@@ -18,7 +18,6 @@
 package org.apache.ignite.internal.processors.cache.distributed.dht.atomic;
 
 import java.nio.ByteBuffer;
-import java.util.Objects;
 import java.util.UUID;
 import javax.cache.processor.EntryProcessor;
 import org.apache.ignite.IgniteCheckedException;
@@ -206,11 +205,6 @@ public class GridDhtAtomicSingleUpdateRequest extends 
GridDhtAtomicAbstractUpdat
         return key != null ? near() ? 1 : 0 : 0;
     }
 
-    /** {@inheritDoc} */
-    @Override public boolean hasKey(KeyCacheObject key) {
-        return !near() && Objects.equals(this.key, key);
-    }
-
     /** {@inheritDoc} */
     @Override public KeyCacheObject key(int idx) {
         assert idx == 0 : idx;
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateRequest.java
index 40393bf68b0..40c075189f1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateRequest.java
@@ -33,7 +33,6 @@ import 
org.apache.ignite.internal.processors.cache.GridCacheOperation;
 import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
 import org.apache.ignite.internal.processors.cache.KeyCacheObject;
 import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
-import org.apache.ignite.internal.util.GridIntList;
 import org.apache.ignite.internal.util.GridLongList;
 import org.apache.ignite.internal.util.tostring.GridToStringInclude;
 import org.apache.ignite.internal.util.typedef.F;
@@ -92,7 +91,8 @@ public class GridDhtAtomicUpdateRequest extends 
GridDhtAtomicAbstractUpdateReque
 
     /** Obsolete near values. */
     @GridToStringInclude
-    private GridIntList obsoleteIndexes;
+    @GridDirectCollection(Integer.class)
+    private List<Integer> obsoleteIndexes;
 
     /** Force transform backups flag. */
     private boolean forceTransformBackups;
@@ -271,11 +271,13 @@ public class GridDhtAtomicUpdateRequest extends 
GridDhtAtomicAbstractUpdateReque
         long expireTime) {
         assert key.partition() >= 0 : key;
 
-        if (hasKey(key)) {
+        int idx = keys == null ? -1 : keys.indexOf(key);
+
+        if (idx > -1) {
             if (obsoleteIndexes == null)
-                obsoleteIndexes = new GridIntList();
+                obsoleteIndexes = new ArrayList<>();
 
-            obsoleteIndexes.add(keys.indexOf(key));
+            obsoleteIndexes.add(idx);
 
             return;
         }
@@ -351,11 +353,6 @@ public class GridDhtAtomicUpdateRequest extends 
GridDhtAtomicAbstractUpdateReque
         return keys.get(obsoleteIndexes.get(idx));
     }
 
-    /** {@inheritDoc} */
-    @Override public boolean hasKey(KeyCacheObject key) {
-        return F.contains(keys, key);
-    }
-
     /** {@inheritDoc} */
     @Override public KeyCacheObject key(int idx) {
         return keys.get(idx);
@@ -621,7 +618,7 @@ public class GridDhtAtomicUpdateRequest extends 
GridDhtAtomicAbstractUpdateReque
                 writer.incrementState();
 
             case 23:
-                if (!writer.writeMessage(obsoleteIndexes))
+                if (!writer.writeCollection(obsoleteIndexes, 
MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
@@ -752,7 +749,7 @@ public class GridDhtAtomicUpdateRequest extends 
GridDhtAtomicAbstractUpdateReque
                 reader.incrementState();
 
             case 23:
-                obsoleteIndexes = reader.readMessage();
+                obsoleteIndexes = 
reader.readCollection(MessageCollectionItemType.INT);
 
                 if (!reader.isLastRead())
                     return false;
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxImplicitSingleStateImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxImplicitSingleStateImpl.java
index 9bf0f4faf95..e88d6b7a7c6 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxImplicitSingleStateImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxImplicitSingleStateImpl.java
@@ -73,7 +73,7 @@ public class IgniteTxImplicitSingleStateImpl extends 
IgniteTxLocalStateAdapter {
 
     /** {@inheritDoc} */
     @Nullable @Override public GridIntList cacheIds() {
-        return GridIntList.asList(cacheCtx.cacheId());
+        return new GridIntList(new int[]{cacheCtx.cacheId()});
     }
 
     /** {@inheritDoc} */
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/GridIntList.java 
b/modules/core/src/main/java/org/apache/ignite/internal/util/GridIntList.java
index 39494ade8a9..0457b592dfc 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/GridIntList.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/GridIntList.java
@@ -22,25 +22,22 @@ import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 import java.util.Arrays;
-import org.apache.ignite.internal.Order;
-import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.SB;
-import org.apache.ignite.plugin.extensions.communication.Message;
+
+import static org.apache.ignite.internal.util.IgniteUtils.EMPTY_INTS;
 
 /**
  * Minimal list API to work with primitive ints. This list exists
  * to avoid boxing/unboxing when using standard list from Java.
  */
-public class GridIntList implements Message, Externalizable {
+public class GridIntList implements Externalizable {
     /** */
     private static final long serialVersionUID = 0L;
 
     /** */
-    @Order(0)
     private int[] arr;
 
     /** */
-    @Order(1)
     private int idx;
 
     /**
@@ -67,54 +64,6 @@ public class GridIntList implements Message, Externalizable {
         idx = arr.length;
     }
 
-    /**
-     * @param vals Values.
-     * @return List from values.
-     */
-    public static GridIntList asList(int... vals) {
-        if (F.isEmpty(vals))
-            return new GridIntList();
-
-        return new GridIntList(vals);
-    }
-
-    /**
-     * @param arr Array.
-     * @param size Size.
-     */
-    private GridIntList(int[] arr, int size) {
-        this.arr = arr;
-        idx = size;
-    }
-
-    /**
-     * @return Array.
-     */
-    public int[] arr() {
-        return arr;
-    }
-
-    /**
-     * @param arr New array.
-     */
-    public void arr(int[] arr) {
-        this.arr = arr;
-    }
-
-    /**
-     * @return Index.
-     */
-    public int idx() {
-        return idx;
-    }
-
-    /**
-     * @param idx New index.
-     */
-    public void idx(int idx) {
-        this.idx = idx;
-    }
-
     /** {@inheritDoc} */
     @Override public boolean equals(Object o) {
         if (this == o)
@@ -164,44 +113,6 @@ public class GridIntList implements Message, 
Externalizable {
         arr[idx++] = x;
     }
 
-    /**
-     * Returns (possibly reordered) copy of this list, excluding all elements 
of given list.
-     *
-     * @param l List of elements to remove.
-     * @return New list without all elements from {@code l}.
-     */
-    public GridIntList copyWithout(GridIntList l) {
-        assert l != null;
-
-        if (idx == 0)
-            return new GridIntList();
-
-        if (l.idx == 0)
-            return new GridIntList(Arrays.copyOf(arr, idx));
-
-        int[] newArr = Arrays.copyOf(arr, idx);
-        int newIdx = idx;
-
-        for (int i = 0; i < l.size(); i++) {
-            int rmVal = l.get(i);
-
-            for (int j = 0; j < newIdx; j++) {
-                if (newArr[j] == rmVal) {
-
-                    while (newIdx > 0 && newArr[newIdx - 1] == rmVal)
-                        newIdx--;
-
-                    if (newIdx > 0) {
-                        newArr[j] = newArr[newIdx - 1];
-                        newIdx--;
-                    }
-                }
-            }
-        }
-
-        return new GridIntList(newArr, newIdx);
-    }
-
     /**
      * @param i Index.
      * @return Value.
@@ -302,6 +213,9 @@ public class GridIntList implements Message, Externalizable 
{
      * @return Array copy.
      */
     public int[] arrayCopy() {
+        if (arr == null)
+            return EMPTY_INTS;
+
         int[] res = new int[idx];
 
         System.arraycopy(arr, 0, res, 0, idx);
@@ -356,11 +270,6 @@ public class GridIntList implements Message, 
Externalizable {
         return this;
     }
 
-    /** {@inheritDoc} */
-    @Override public short directType() {
-        return -52;
-    }
-
     /**
      * @return Iterator.
      */
diff --git 
a/modules/core/src/test/java/org/apache/ignite/util/GridIntListSelfTest.java 
b/modules/core/src/test/java/org/apache/ignite/util/GridIntListSelfTest.java
index 16daa9a7f46..095eb329188 100644
--- a/modules/core/src/test/java/org/apache/ignite/util/GridIntListSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/util/GridIntListSelfTest.java
@@ -20,54 +20,12 @@ package org.apache.ignite.util;
 import org.apache.ignite.internal.util.GridIntList;
 import org.junit.Test;
 
-import static org.apache.ignite.internal.util.GridIntList.asList;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
 
 /**
  *
  */
 public class GridIntListSelfTest {
-    /**
-     * @throws Exception If failed.
-     */
-    @SuppressWarnings("ZeroLengthArrayAllocation")
-    @Test
-    public void testCopyWithout() throws Exception {
-        assertCopy(
-            new GridIntList(new int[] {}),
-            new GridIntList(new int[] {}));
-
-        assertCopy(
-            new GridIntList(new int[] {}),
-            new GridIntList(new int[] {1}));
-
-        assertCopy(
-            new GridIntList(new int[] {1}),
-            new GridIntList(new int[] {}));
-
-        assertCopy(
-            new GridIntList(new int[] {1, 2, 3}),
-            new GridIntList(new int[] {4, 5, 6}));
-
-        assertCopy(
-            new GridIntList(new int[] {1, 2, 3}),
-            new GridIntList(new int[] {1, 2, 3}));
-
-        assertCopy(
-            new GridIntList(new int[] {1, 2, 3, 4, 5, 1}),
-            new GridIntList(new int[] {1, 1}));
-
-        assertCopy(
-            new GridIntList(new int[] {1, 1, 1, 2, 3, 4, 5, 1, 1, 1}),
-            new GridIntList(new int[] {1, 1}));
-
-        assertCopy(
-            new GridIntList(new int[] {1, 2, 3}),
-            new GridIntList(new int[] {1, 1, 2, 2, 3, 3}));
-    }
-
     /**
      *
      */
@@ -91,25 +49,6 @@ public class GridIntListSelfTest {
         assertEquals(new GridIntList(), list);
     }
 
-    /**
-     * Assert {@link GridIntList#copyWithout(GridIntList)} on given lists.
-     *
-     * @param lst Source lists.
-     * @param rmv Exclude list.
-     */
-    private void assertCopy(GridIntList lst, GridIntList rmv) {
-        GridIntList res = lst.copyWithout(rmv);
-
-        for (int i = 0; i < lst.size(); i++) {
-            int v = lst.get(i);
-
-            if (rmv.contains(v))
-                assertFalse(res.contains(v));
-            else
-                assertTrue(res.contains(v));
-        }
-    }
-
     /**
      *
      */
@@ -157,4 +96,9 @@ public class GridIntListSelfTest {
         assertEquals(asList(1, 3, 4, 5, 0), list);
         assertEquals(asList(0, 1, 3, 4, 5), list.sort());
     }
+
+    /** */
+    private GridIntList asList(int... vals) {
+        return new GridIntList(vals);
+    }
 }

Reply via email to