From 7384034402d768382b67aa729e61b4ba7fd86eb4 Mon Sep 17 00:00:00 2001 From: IllianiCBT Date: Wed, 28 Aug 2024 14:51:23 -0500 Subject: [PATCH] Fixed Bad Merge (again) Merge of previous fix got overwritten during conflict resolution. Code is identical to previous approved PR. --- MekHQ/src/mekhq/campaign/force/Force.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/MekHQ/src/mekhq/campaign/force/Force.java b/MekHQ/src/mekhq/campaign/force/Force.java index 14c1808b6d..a3b1ceb291 100644 --- a/MekHQ/src/mekhq/campaign/force/Force.java +++ b/MekHQ/src/mekhq/campaign/force/Force.java @@ -434,11 +434,16 @@ public void setOverrideForceCommanderID(UUID overrideForceCommanderID) { * @return a list of UUIDs representing the eligible commanders */ public List getEligibleCommanders(Campaign campaign) { - List eligibleCommanders = getUnits().stream() - .map(unitId -> campaign.getUnit(unitId).getCommander() != null ? - campaign.getUnit(unitId).getCommander().getId() : null) - .filter(Objects::nonNull) - .collect(Collectors.toList()); + List eligibleCommanders = new ArrayList<>(); + + // don't use a stream here, it's not worth the added risk of an NPE + for (UUID unitId : getUnits()) { + Unit unit = campaign.getUnit(unitId); + + if ((unit != null) && (unit.getCommander() != null)) { + eligibleCommanders.add(unit.getCommander().getId()); + } + } // this means the force contains no Units, so we check against the leaders of the sub-forces if (eligibleCommanders.isEmpty()) {