From b30248d973e1ab88e04cef9f92067305f49e63f8 Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Sun, 29 Aug 2021 22:06:25 +0200 Subject: [PATCH] Fixed null pointer exeption --- .../hal/plugin/assistant/google/SmartHomeImpl.java | 12 ++++++++---- .../assistant/google/trait/DeviceTraitFactory.java | 3 +++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/plugins/hal-assistant-google/src/se/hal/plugin/assistant/google/SmartHomeImpl.java b/plugins/hal-assistant-google/src/se/hal/plugin/assistant/google/SmartHomeImpl.java index fd9cc27b..fb042e2a 100644 --- a/plugins/hal-assistant-google/src/se/hal/plugin/assistant/google/SmartHomeImpl.java +++ b/plugins/hal-assistant-google/src/se/hal/plugin/assistant/google/SmartHomeImpl.java @@ -200,11 +200,15 @@ public class SmartHomeImpl extends SmartHomeApp implements TokenRegistrationList DeviceTrait[] traits = DeviceTraitFactory.getTraits(device); Map deviceState = new HashMap<>(); - for (DeviceTrait trait : traits) { - deviceState.putAll(trait.generateQueryResponse(device.getDeviceData())); - } + if (traits != null) { + for (DeviceTrait trait : traits) { + deviceState.putAll(trait.generateQueryResponse(device.getDeviceData())); + } - deviceState.put("status", "SUCCESS"); + deviceState.put("status", "SUCCESS"); + } else { + deviceState.put("status", "UNKNOWN"); + } deviceStates.put(deviceRequest.getId(), deviceState); } catch (Exception e) { logger.log(Level.SEVERE, "Query request failed for sensor: " + deviceRequest.getId(), e); diff --git a/plugins/hal-assistant-google/src/se/hal/plugin/assistant/google/trait/DeviceTraitFactory.java b/plugins/hal-assistant-google/src/se/hal/plugin/assistant/google/trait/DeviceTraitFactory.java index d59d3c12..649a677a 100644 --- a/plugins/hal-assistant-google/src/se/hal/plugin/assistant/google/trait/DeviceTraitFactory.java +++ b/plugins/hal-assistant-google/src/se/hal/plugin/assistant/google/trait/DeviceTraitFactory.java @@ -39,6 +39,9 @@ public class DeviceTraitFactory { public static DeviceTrait[] getTraits(HalAbstractDevice device) { + if (device == null || device.getDeviceData() == null) + return null; + switch (device.getDeviceData().getClass().getName()) { case "se.hal.struct.devicedata.DimmerEventData": case "se.hal.struct.devicedata.OnOffEventData":