Avoid ConcurrentModificationException by using CopyOnWriteArrayList
Change-Id: I91b1f8b1ae8a9ec71166e037b4014536452c7f8c
diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java b/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java
index 4c91f7a..bc37ca8 100644
--- a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java
+++ b/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java
@@ -19,7 +19,6 @@
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import com.google.common.collect.Sets;
import org.apache.felix.scr.annotations.Activate;
@@ -96,6 +95,7 @@
import java.util.List;
import java.util.Optional;
import java.util.Set;
+import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
@@ -170,8 +170,8 @@
protected Multimap<DeviceId, VlanId> ignoredVlans = HashMultimap.create();
private InternalHostListener hostListener = new InternalHostListener();
- private List<DhcpServerInfo> defaultServerInfoList = Lists.newArrayList();
- private List<DhcpServerInfo> indirectServerInfoList = Lists.newArrayList();
+ private List<DhcpServerInfo> defaultServerInfoList = new CopyOnWriteArrayList<>();
+ private List<DhcpServerInfo> indirectServerInfoList = new CopyOnWriteArrayList<>();
@Activate
protected void activate() {
diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java b/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java
index 1b16a52..e5f52bf 100644
--- a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java
+++ b/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java
@@ -18,7 +18,6 @@
package org.onosproject.dhcprelay;
import com.google.common.collect.HashMultimap;
-import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Deactivate;
@@ -103,6 +102,7 @@
import java.util.Optional;
import java.util.Set;
import java.util.ArrayList;
+import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicInteger;
@@ -171,8 +171,8 @@
protected Multimap<DeviceId, VlanId> ignoredVlans = HashMultimap.create();
private InternalHostListener hostListener = new InternalHostListener();
- private List<DhcpServerInfo> defaultServerInfoList = Lists.newArrayList();
- private List<DhcpServerInfo> indirectServerInfoList = Lists.newArrayList();
+ private List<DhcpServerInfo> defaultServerInfoList = new CopyOnWriteArrayList<>();
+ private List<DhcpServerInfo> indirectServerInfoList = new CopyOnWriteArrayList<>();
// CLIENT message types