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;

Reply via email to