From 4b17d309cb86ce90c9d4c9e4626b3c2b7fda0909 Mon Sep 17 00:00:00 2001 From: Andrei Koval Date: Thu, 8 Feb 2018 08:44:17 +0100 Subject: [PATCH] Replaced Stack with Deque --- .../kernel/impl/locking/community/RagManager.java | 10 +++++----- .../core/replication/session/LocalSessionPool.java | 5 +++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/community/RagManager.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/community/RagManager.java index 602336909f763..22ca165c2b65d 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/community/RagManager.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/locking/community/RagManager.java @@ -19,12 +19,13 @@ */ package org.neo4j.kernel.impl.locking.community; +import java.util.ArrayDeque; +import java.util.Deque; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Stack; import org.neo4j.kernel.DeadlockDetectedException; import org.neo4j.kernel.impl.util.ArrayMap; @@ -132,7 +133,7 @@ synchronized void checkWaitOn( Object resource, Object tx ) Iterator itr = lockingTxList.iterator(); List checkedTransactions = new LinkedList<>(); - Stack graphStack = new Stack<>(); + final Deque graphStack = new ArrayDeque<>(); // has resource,transaction interleaved graphStack.push( resource ); while ( itr.hasNext() ) @@ -162,8 +163,7 @@ synchronized void checkWaitOn( Object resource, Object tx ) continue; } graphStack.push( lockingTx ); - checkWaitOnRecursive( lockingTx, tx, checkedTransactions, - graphStack ); + checkWaitOnRecursive( lockingTx, tx, checkedTransactions, graphStack ); graphStack.pop(); } @@ -173,7 +173,7 @@ synchronized void checkWaitOn( Object resource, Object tx ) private synchronized void checkWaitOnRecursive( Object lockingTx, Object waitingTx, List checkedTransactions, - Stack graphStack ) throws DeadlockDetectedException + Deque graphStack ) throws DeadlockDetectedException { if ( lockingTx.equals( waitingTx ) ) { diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/replication/session/LocalSessionPool.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/replication/session/LocalSessionPool.java index d57e8f3063074..1837065537f81 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/replication/session/LocalSessionPool.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/replication/session/LocalSessionPool.java @@ -19,13 +19,14 @@ */ package org.neo4j.causalclustering.core.replication.session; +import java.util.ArrayDeque; +import java.util.Deque; import java.util.EmptyStackException; -import java.util.Stack; /** Keeps a pool of local sub-sessions, to be used under a single global session. */ public class LocalSessionPool { - private final Stack sessionStack = new Stack<>(); + private final Deque sessionStack = new ArrayDeque<>(); private final GlobalSession globalSession; private long nextLocalSessionId;