From 2b8231000ed1d02b2a04dd37e950125287d7e648 Mon Sep 17 00:00:00 2001 From: H-Jason <953986800@qq.com> Date: Sun, 5 May 2024 13:30:18 +0800 Subject: [PATCH] fix dead lock in multi DB when using batchUpdate(#31038) --- .../executor/sql/prepare/AbstractExecutionPrepareEngine.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/prepare/AbstractExecutionPrepareEngine.java b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/prepare/AbstractExecutionPrepareEngine.java index eea1fec1043b59..39e8b0c94335df 100644 --- a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/prepare/AbstractExecutionPrepareEngine.java +++ b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/prepare/AbstractExecutionPrepareEngine.java @@ -30,11 +30,11 @@ import java.sql.SQLException; import java.util.Collection; import java.util.Collections; -import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.TreeMap; /** * Abstract execution prepare engine. @@ -80,7 +80,7 @@ private List> group(final List sqlUnits) { protected abstract List> group(String dataSourceName, int connectionOffset, List> executionUnitGroups, ConnectionMode connectionMode) throws SQLException; private Map> aggregateExecutionUnitGroups(final Collection executionUnits) { - Map> result = new LinkedHashMap<>(executionUnits.size(), 1F); + Map> result = new TreeMap(); for (ExecutionUnit each : executionUnits) { result.computeIfAbsent(each.getDataSourceName(), unused -> new LinkedList<>()).add(each); }