This is an automated email from the ASF dual-hosted git repository. alsuliman pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit aca87de0fec219c628981bdc8e441d22cc67ebef Author: Ali Alsuliman <[email protected]> AuthorDate: Wed May 22 23:11:48 2024 +0300 [ASTERIXDB-3343][API] Return new list when getting completed requests - user model changes: no - storage format changes: no - interface changes: no Details: Completed requests collection has been changed to LinkedHashMap recently which is not synchronized. ConcurrentModificationException can happen when traversing the returned values and the map gets updated. Return a new list of the values instead of returning the values view directly. Change-Id: Ic5a8c12e3feaddeea6882c34fba3c12dc22452c3 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18306 Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Reviewed-by: Ali Alsuliman <[email protected]> Reviewed-by: Murtadha Hubail <[email protected]> --- .../src/main/java/org/apache/asterix/runtime/utils/RequestTracker.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/RequestTracker.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/RequestTracker.java index 9875651817..ef9154d887 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/RequestTracker.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/RequestTracker.java @@ -18,6 +18,7 @@ */ package org.apache.asterix.runtime.utils; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.LinkedHashMap; @@ -109,7 +110,7 @@ public class RequestTracker implements IRequestTracker { @Override public synchronized Collection<IClientRequest> getCompletedRequests() { - return Collections.unmodifiableCollection(completedRequests.values()); + return Collections.unmodifiableCollection(new ArrayList<>(completedRequests.values())); } private void cancel(IClientRequest request) throws HyracksDataException {
