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);
+ }
}