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

namelchev 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 fa2c7c606eb IGNITE-28276 Remove TxLockList (#12945)
fa2c7c606eb is described below

commit fa2c7c606ebdc0eb06b82c974f90fdc92131f4ed
Author: Dmitry Werner <[email protected]>
AuthorDate: Fri Mar 27 12:37:43 2026 +0500

    IGNITE-28276 Remove TxLockList (#12945)
---
 .../communication/GridIoMessageFactory.java        |  3 -
 .../cache/transactions/TxDeadlockDetection.java    | 24 +++----
 .../processors/cache/transactions/TxLockList.java  | 73 ----------------------
 .../cache/transactions/TxLocksResponse.java        | 19 +++---
 .../main/resources/META-INF/classnames.properties  |  1 -
 5 files changed, 21 insertions(+), 99 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 05c296ba618..fad3e7a4b07 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
@@ -264,8 +264,6 @@ import 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxKeySeria
 import 
org.apache.ignite.internal.processors.cache.transactions.TxEntryValueHolder;
 import 
org.apache.ignite.internal.processors.cache.transactions.TxEntryValueHolderSerializer;
 import org.apache.ignite.internal.processors.cache.transactions.TxLock;
-import org.apache.ignite.internal.processors.cache.transactions.TxLockList;
-import 
org.apache.ignite.internal.processors.cache.transactions.TxLockListSerializer;
 import 
org.apache.ignite.internal.processors.cache.transactions.TxLockSerializer;
 import org.apache.ignite.internal.processors.cache.transactions.TxLocksRequest;
 import 
org.apache.ignite.internal.processors.cache.transactions.TxLocksRequestSerializer;
@@ -397,7 +395,6 @@ public class GridIoMessageFactory implements 
MessageFactoryProvider {
         factory.register((short)-43, IgniteIoTestMessage::new);
         factory.register((short)-36, GridDhtAtomicSingleUpdateRequest::new, 
new GridDhtAtomicSingleUpdateRequestSerializer());
         factory.register((short)-27, GridDhtTxOnePhaseCommitAckRequest::new, 
new GridDhtTxOnePhaseCommitAckRequestSerializer());
-        factory.register((short)-26, TxLockList::new, new 
TxLockListSerializer());
         factory.register((short)-25, TxLock::new, new TxLockSerializer());
         factory.register((short)-24, TxLocksRequest::new, new 
TxLocksRequestSerializer());
         factory.register((short)-23, TxLocksResponse::new, new 
TxLocksResponseSerializer());
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxDeadlockDetection.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxDeadlockDetection.java
index 1febf364220..a5cae1194cf 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxDeadlockDetection.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxDeadlockDetection.java
@@ -268,14 +268,14 @@ public class TxDeadlockDetection {
             if (topVer == null) // Tx manager already stopped
                 onDone();
             else
-                map(keys, Collections.<IgniteTxKey, TxLockList>emptyMap());
+                map(keys, Collections.emptyMap());
         }
 
         /**
          * @param keys Keys.
          * @param txLocks Tx locks.
          */
-        private void map(@Nullable Set<IgniteTxKey> keys, Map<IgniteTxKey, 
TxLockList> txLocks) {
+        private void map(@Nullable Set<IgniteTxKey> keys, Map<IgniteTxKey, 
List<TxLock>> txLocks) {
             mapTxKeys(keys, txLocks);
 
             UUID nodeId = nodesQueue.pollFirst();
@@ -328,9 +328,9 @@ public class TxDeadlockDetection {
          * @param txLocks Tx locks.
          */
         @SuppressWarnings("ForLoopReplaceableByForEach")
-        private void mapTxKeys(@Nullable Set<IgniteTxKey> txKeys, 
Map<IgniteTxKey, TxLockList> txLocks) {
-            for (Map.Entry<IgniteTxKey, TxLockList> e : txLocks.entrySet()) {
-                List<TxLock> locks = e.getValue().transactionLocks();
+        private void mapTxKeys(@Nullable Set<IgniteTxKey> txKeys, 
Map<IgniteTxKey, List<TxLock>> txLocks) {
+            for (Map.Entry<IgniteTxKey, List<TxLock>> e : txLocks.entrySet()) {
+                List<TxLock> locks = e.getValue();
 
                 for (int i = 0; i < locks.size(); i++) {
                     TxLock txLock = locks.get(i);
@@ -415,18 +415,18 @@ public class TxDeadlockDetection {
          * @param res Tx locks.
          */
         private void merge(TxLocksResponse res) {
-            Map<IgniteTxKey, TxLockList> txLocks = res.txLocks();
+            Map<IgniteTxKey, List<TxLock>> txLocks = res.txLocks();
 
             if (txLocks == null || txLocks.isEmpty())
                 return;
 
-            for (Map.Entry<IgniteTxKey, TxLockList> e : txLocks.entrySet()) {
+            for (Map.Entry<IgniteTxKey, List<TxLock>> e : txLocks.entrySet()) {
                 IgniteTxKey txKey = e.getKey();
 
-                TxLockList lockList = e.getValue();
+                List<TxLock> lockList = e.getValue();
 
                 if (lockList != null && !lockList.isEmpty()) {
-                    for (TxLock lock : lockList.transactionLocks()) {
+                    for (TxLock lock : lockList) {
                         if (lock.owner() || lock.candiate()) {
                             if (txs.get(lock.txId()) == null)
                                 txs.put(lock.txId(), new 
T2<>(lock.nearNodeId(), lock.threadId()));
@@ -458,15 +458,15 @@ public class TxDeadlockDetection {
         /**
          * @param txLocks Tx locks.
          */
-        private void updateWaitForGraph(Map<IgniteTxKey, TxLockList> txLocks) {
+        private void updateWaitForGraph(Map<IgniteTxKey, List<TxLock>> 
txLocks) {
             if (txLocks == null || txLocks.isEmpty())
                 return;
 
-            for (Map.Entry<IgniteTxKey, TxLockList> e : txLocks.entrySet()) {
+            for (Map.Entry<IgniteTxKey, List<TxLock>> e : txLocks.entrySet()) {
 
                 GridCacheVersion txOwner = null;
 
-                for (TxLock lock : e.getValue().transactionLocks()) {
+                for (TxLock lock : e.getValue()) {
                     if (lock.owner() && txOwner == null) {
                         // Actually we can get lock list with more than one 
owner. In this case ignore all owners
                         // except first because likely the first owner was 
cause of deadlock.
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxLockList.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxLockList.java
deleted file mode 100644
index c0214cd163a..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxLockList.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * 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.processors.cache.transactions;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.ignite.internal.Order;
-import org.apache.ignite.internal.util.tostring.GridToStringInclude;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.plugin.extensions.communication.Message;
-
-/**
- * List of transaction locks for particular key.
- */
-public class TxLockList implements Message {
-    /** Tx locks. */
-    @GridToStringInclude
-    @Order(0)
-    List<TxLock> txLocks = new ArrayList<>();
-
-    /**
-     * Default constructor.
-     */
-    public TxLockList() {
-        // No-op.
-    }
-
-    /**
-     * @return Lock list.
-     */
-    public List<TxLock> transactionLocks() {
-        return txLocks;
-    }
-
-    /**
-     * @param txLock Tx lock.
-     */
-    public void add(TxLock txLock) {
-        txLocks.add(txLock);
-    }
-
-    /**
-     * @return {@code True} if lock list is empty.
-     */
-    public boolean isEmpty() {
-        return txLocks.isEmpty();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TxLockList.class, this);
-    }
-
-    /** {@inheritDoc} */
-    @Override public short directType() {
-        return -26;
-    }
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxLocksResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxLocksResponse.java
index 961a2265f9e..0b03c88d652 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxLocksResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxLocksResponse.java
@@ -17,8 +17,10 @@
 
 package org.apache.ignite.internal.processors.cache.transactions;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import org.apache.ignite.IgniteCheckedException;
@@ -40,7 +42,7 @@ public class TxLocksResponse extends GridCacheMessage {
 
     /** Locks for near txKeys of near transactions. */
     @GridToStringInclude
-    private final Map<IgniteTxKey, TxLockList> nearTxKeyLocks = new 
HashMap<>();
+    private final Map<IgniteTxKey, List<TxLock>> nearTxKeyLocks = new 
HashMap<>();
 
     /** Remote keys involved into transactions. Doesn't include near keys. */
     @GridToStringInclude
@@ -59,7 +61,7 @@ public class TxLocksResponse extends GridCacheMessage {
     /** Array of locksArr from {@link #nearTxKeyLocks}. Used during 
marshalling and unmarshalling. */
     @GridToStringExclude
     @Order(3)
-    TxLockList[] locksArr;
+    List<TxLock>[] locksArr;
 
     /**
      * Default constructor.
@@ -85,7 +87,7 @@ public class TxLocksResponse extends GridCacheMessage {
     /**
      * @return Lock lists for all tx nearTxKeysArr.
      */
-    public Map<IgniteTxKey, TxLockList> txLocks() {
+    public Map<IgniteTxKey, List<TxLock>> txLocks() {
         return nearTxKeyLocks;
     }
 
@@ -93,7 +95,7 @@ public class TxLocksResponse extends GridCacheMessage {
      * @param txKey Tx key.
      * @return Lock list for given tx key.
      */
-    public TxLockList txLocks(IgniteTxKey txKey) {
+    public List<TxLock> txLocks(IgniteTxKey txKey) {
         return nearTxKeyLocks.get(txKey);
     }
 
@@ -102,10 +104,7 @@ public class TxLocksResponse extends GridCacheMessage {
      * @param txLock Tx lock.
      */
     public void addTxLock(IgniteTxKey txKey, TxLock txLock) {
-        TxLockList lockList = nearTxKeyLocks.get(txKey);
-
-        if (lockList == null)
-            nearTxKeyLocks.put(txKey, lockList = new TxLockList());
+        List<TxLock> lockList = nearTxKeyLocks.computeIfAbsent(txKey, k -> new 
ArrayList<>());
 
         lockList.add(txLock);
     }
@@ -145,11 +144,11 @@ public class TxLocksResponse extends GridCacheMessage {
             int len = nearTxKeyLocks.size();
 
             nearTxKeysArr = new IgniteTxKey[len];
-            locksArr = new TxLockList[len];
+            locksArr = (List<TxLock>[])new List[len];
 
             int i = 0;
 
-            for (Map.Entry<IgniteTxKey, TxLockList> entry : 
nearTxKeyLocks.entrySet()) {
+            for (Map.Entry<IgniteTxKey, List<TxLock>> entry : 
nearTxKeyLocks.entrySet()) {
                 IgniteTxKey key = entry.getKey();
 
                 key.prepareMarshal(ctx.cacheContext(key.cacheId()));
diff --git a/modules/core/src/main/resources/META-INF/classnames.properties 
b/modules/core/src/main/resources/META-INF/classnames.properties
index 03bdf2e6e8a..f16695c2d12 100644
--- a/modules/core/src/main/resources/META-INF/classnames.properties
+++ b/modules/core/src/main/resources/META-INF/classnames.properties
@@ -1451,7 +1451,6 @@ 
org.apache.ignite.internal.processors.cache.transactions.TxCollisionsDumpSetting
 
org.apache.ignite.internal.processors.cache.transactions.TxDeadlockDetection$UniqueDeque
 org.apache.ignite.internal.processors.cache.transactions.TxEntryValueHolder
 org.apache.ignite.internal.processors.cache.transactions.TxLock
-org.apache.ignite.internal.processors.cache.transactions.TxLockList
 org.apache.ignite.internal.processors.cache.transactions.TxLocksRequest
 org.apache.ignite.internal.processors.cache.transactions.TxLocksResponse
 org.apache.ignite.internal.processors.cache.verify.GridNotIdleException

Reply via email to