From 75fe771d562eaf9da830987d73f566bb7522d0bc Mon Sep 17 00:00:00 2001 From: Shelly Wang Date: Mon, 23 Dec 2024 16:27:58 +0000 Subject: [PATCH] Fix index out of bound error --- .../kangooroo/utils/io/net/http/HarUtils.java | 35 ++++++------------- 1 file changed, 11 insertions(+), 24 deletions(-) diff --git a/src/ca/gc/cyber/kangooroo/utils/io/net/http/HarUtils.java b/src/ca/gc/cyber/kangooroo/utils/io/net/http/HarUtils.java index 69bf5f8..ecc1286 100644 --- a/src/ca/gc/cyber/kangooroo/utils/io/net/http/HarUtils.java +++ b/src/ca/gc/cyber/kangooroo/utils/io/net/http/HarUtils.java @@ -14,6 +14,7 @@ import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Base64; +import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -21,6 +22,8 @@ import java.util.Optional; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collector; +import java.util.stream.Collectors; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.io.FileUtils; @@ -404,18 +407,10 @@ public static void removeRequestUrlEntries(Har har, String pattern) { List oldEntries = har.getLog().getEntries(); - List entryToRemove = new ArrayList(); - for (int i = 0; i < oldEntries.size(); i++) { - var curUrl = oldEntries.get(i).getRequest().getUrl(); - if (curUrl.contains(pattern)) { - entryToRemove.add(i); - } - } - - for (Integer entryIdx : entryToRemove) { - oldEntries.remove((int) entryIdx); - - } + har.getLog().setEntries( + oldEntries.stream().filter(entry -> !entry.getRequest().getUrl().contains(pattern)) + .collect(Collectors.toList()) + ); } @@ -423,19 +418,11 @@ public static void removeRequestUrlEntries(Har har, String pattern) { public static void removeResponseEntries(Har har, int code) { List oldEntries = har.getLog().getEntries(); - List entryToRemove = new ArrayList(); - for (int i = 0; i < oldEntries.size(); i++) { - var statusCode = oldEntries.get(i).getResponse().getStatus(); - if (statusCode == code) { - entryToRemove.add(i); - } - - } - - for (Integer entryIdx : entryToRemove) { - oldEntries.remove((int) entryIdx); - } + har.getLog().setEntries(oldEntries.stream() + .filter(entry -> entry.getResponse().getStatus() != code) + .collect(Collectors.toList())); + }