From b2e8be5a599c256736b22d320fd8ebbbed3adab2 Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Sun, 9 Apr 2023 18:08:25 +0200 Subject: [PATCH] Fix NPEs in migration scripts --- common/src/main/java/ctbrec/Config.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/common/src/main/java/ctbrec/Config.java b/common/src/main/java/ctbrec/Config.java index 1bf2ef51..b9ad99da 100644 --- a/common/src/main/java/ctbrec/Config.java +++ b/common/src/main/java/ctbrec/Config.java @@ -190,7 +190,7 @@ public class Config { private void convertChaturbateModelNamesToLowerCase() { final String CTB = "chaturbate.com"; - // convert mode notes + // convert model notes Map convertedModelNotes = new HashMap<>(); getSettings().modelNotes.forEach((key, value) -> { if (key.contains(CTB)) { @@ -211,16 +211,21 @@ public class Config { getSettings().modelPortraits.putAll(convertedModelPortraits); // convert model groups - getSettings().modelGroups.forEach(mg -> mg.setModelUrls(mg.getModelUrls().stream().map(url -> url.contains(CTB) ? url.toLowerCase() : url) + getSettings().modelGroups.forEach(mg -> mg.setModelUrls(mg.getModelUrls().stream() + .filter(Objects::nonNull) + .map(url -> url.contains(CTB) ? url.toLowerCase() : url) .collect(Collectors.toList()))); // NOSONAR - has to be mutable // convert ignored models - getSettings().ignoredModels = getSettings().ignoredModels.stream().map(url -> url.contains(CTB) ? url.toLowerCase() : url) + getSettings().ignoredModels = getSettings().ignoredModels.stream() + .filter(Objects::nonNull) + .map(url -> url.contains(CTB) ? url.toLowerCase() : url) .collect(Collectors.toList()); // NOSONAR - has to be mutable // change the model objects getSettings().models.stream() .filter(ChaturbateModel.class::isInstance) + .filter(m -> m.getUrl() != null) .forEach(m -> { m.setDisplayName(m.getName()); m.setName(m.getName().toLowerCase()); @@ -228,6 +233,7 @@ public class Config { }); getSettings().recordLater.stream() .filter(ChaturbateModel.class::isInstance) + .filter(m -> m.getUrl() != null) .forEach(m -> { m.setDisplayName(m.getName()); m.setName(m.getName().toLowerCase());