Fixed null pointer exeption

This commit is contained in:
Ziver Koc 2021-08-29 22:06:25 +02:00
parent 41dfcd0e4f
commit b30248d973
2 changed files with 11 additions and 4 deletions

View file

@ -200,11 +200,15 @@ public class SmartHomeImpl extends SmartHomeApp implements TokenRegistrationList
DeviceTrait[] traits = DeviceTraitFactory.getTraits(device); DeviceTrait[] traits = DeviceTraitFactory.getTraits(device);
Map<String, Object> deviceState = new HashMap<>(); Map<String, Object> deviceState = new HashMap<>();
for (DeviceTrait trait : traits) { if (traits != null) {
deviceState.putAll(trait.generateQueryResponse(device.getDeviceData())); 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); deviceStates.put(deviceRequest.getId(), deviceState);
} catch (Exception e) { } catch (Exception e) {
logger.log(Level.SEVERE, "Query request failed for sensor: " + deviceRequest.getId(), e); logger.log(Level.SEVERE, "Query request failed for sensor: " + deviceRequest.getId(), e);

View file

@ -39,6 +39,9 @@ public class DeviceTraitFactory {
public static DeviceTrait[] getTraits(HalAbstractDevice device) { public static DeviceTrait[] getTraits(HalAbstractDevice device) {
if (device == null || device.getDeviceData() == null)
return null;
switch (device.getDeviceData().getClass().getName()) { switch (device.getDeviceData().getClass().getName()) {
case "se.hal.struct.devicedata.DimmerEventData": case "se.hal.struct.devicedata.DimmerEventData":
case "se.hal.struct.devicedata.OnOffEventData": case "se.hal.struct.devicedata.OnOffEventData":