From: eugen Date: Wed, 13 Jul 2022 15:01:02 +0000 (+0200) Subject: [homekit] fix potential null pointer exceptions (#13122) X-Git-Url: https://git.basschouten.com/?a=commitdiff_plain;h=94615b7728166e8f3df36e93a71b3ee40efd8bc9;p=openhab-addons.git [homekit] fix potential null pointer exceptions (#13122) * fix potential null pointer exceptions * use contains key Signed-off-by: Eugen Freiter --- diff --git a/bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/HomekitImpl.java b/bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/HomekitImpl.java index 7fa41890fa..563c6a3f48 100644 --- a/bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/HomekitImpl.java +++ b/bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/HomekitImpl.java @@ -148,6 +148,8 @@ public class HomekitImpl implements Homekit, NetworkAddressChangeListener { try { HomekitSettings oldSettings = settings; settings = processConfig(config); + if ((oldSettings == null) || (settings == null)) + return; changeListener.updateSettings(settings); if (!oldSettings.networkInterface.equals(settings.networkInterface) || oldSettings.port != settings.port || oldSettings.useOHmDNS != settings.useOHmDNS) { diff --git a/bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/accessories/HomekitAccessoryFactory.java b/bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/accessories/HomekitAccessoryFactory.java index 7cd25e2ee0..a9d1b0d350 100644 --- a/bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/accessories/HomekitAccessoryFactory.java +++ b/bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/accessories/HomekitAccessoryFactory.java @@ -142,16 +142,17 @@ public class HomekitAccessoryFactory { }; private static List getRequiredCharacteristics(HomekitTaggedItem taggedItem) { + final List characteristics = new ArrayList<>(); + if (MANDATORY_CHARACTERISTICS.containsKey(taggedItem.getAccessoryType())) { + characteristics.addAll(Arrays.asList(MANDATORY_CHARACTERISTICS.get(taggedItem.getAccessoryType()))); + } if (taggedItem.getAccessoryType() == BATTERY) { final String isChargeable = taggedItem.getConfiguration(HomekitBatteryImpl.BATTERY_TYPE, "false"); if ("true".equalsIgnoreCase(isChargeable) || "yes".equalsIgnoreCase(isChargeable)) { - final List characteristics = new ArrayList<>(); - characteristics.addAll(Arrays.asList(MANDATORY_CHARACTERISTICS.get(taggedItem.getAccessoryType()))); characteristics.add(BATTERY_CHARGING_STATE); - return characteristics; } } - return Arrays.asList(MANDATORY_CHARACTERISTICS.get(taggedItem.getAccessoryType())); + return characteristics; } /**