Browse Source

修复集合遍历删除元素的java.util.ConcurrentModificationException 异常问题

Awen 4 năm trước cách đây
mục cha
commit
7c849abf29

+ 7 - 4
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookSubscribe.java

@@ -63,7 +63,7 @@ public class ZLMHttpHookSubscribe {
                 }
 
             }
-            if (result) {
+            if (null != result && result) {
                 event = eventMap.get(key);
             }
         }
@@ -75,7 +75,10 @@ public class ZLMHttpHookSubscribe {
         if (eventMap == null) {
             return;
         }
-        for (JSONObject key : eventMap.keySet()) {
+        Iterator<Map.Entry<JSONObject, Event>> iterator = eventMap.entrySet().iterator();
+        while (iterator.hasNext()){
+            Map.Entry<JSONObject, Event> next = iterator.next();
+            JSONObject key = next.getKey();
             Boolean result = null;
             for (String s : key.keySet()) {
                 if (result == null) {
@@ -85,8 +88,8 @@ public class ZLMHttpHookSubscribe {
                 }
 
             }
-            if (result) {
-                eventMap.remove(key);
+            if (null != result && result){
+                iterator.remove();
             }
         }
     }