This is an automated email from the ASF dual-hosted git repository.
zhongqishang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/amoro.git
The following commit(s) were added to refs/heads/master by this push:
new 1057139dd [AMORO-3286] Fix ConcurrentModificationException in
TableRuntime.getQuotaTime() (#3292)
1057139dd is described below
commit 1057139dd1c1b4b22d39b9c36d6c9348c138a20d
Author: Guilherme Santos <[email protected]>
AuthorDate: Fri Oct 25 06:38:16 2024 +0100
[AMORO-3286] Fix ConcurrentModificationException in
TableRuntime.getQuotaTime() (#3292)
* Fix ConcurrentModificationException in TableRuntime.getQuotaTime()
* Fix ConcurrentModificationException using CopyOnWriteArrayList
---------
Co-authored-by: gsantos <[email protected]>
---
.../src/main/java/org/apache/amoro/server/table/TableRuntime.java | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git
a/amoro-ams/src/main/java/org/apache/amoro/server/table/TableRuntime.java
b/amoro-ams/src/main/java/org/apache/amoro/server/table/TableRuntime.java
index 3499b9306..25dcce959 100644
--- a/amoro-ams/src/main/java/org/apache/amoro/server/table/TableRuntime.java
+++ b/amoro-ams/src/main/java/org/apache/amoro/server/table/TableRuntime.java
@@ -51,12 +51,11 @@ import org.slf4j.LoggerFactory;
import java.math.BigDecimal;
import java.math.RoundingMode;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
+import java.util.concurrent.CopyOnWriteArrayList;
public class TableRuntime extends StatedPersistentBase {
@@ -64,8 +63,7 @@ public class TableRuntime extends StatedPersistentBase {
private final TableRuntimeHandler tableHandler;
private final ServerTableIdentifier tableIdentifier;
- private final List<TaskRuntime.TaskQuota> taskQuotas =
- Collections.synchronizedList(new ArrayList<>());
+ private final List<TaskRuntime.TaskQuota> taskQuotas = new
CopyOnWriteArrayList<>();
// for unKeyedTable or base table
@StateField private volatile long currentSnapshotId =
AmoroServiceConstants.INVALID_SNAPSHOT_ID;