From 4f6066fe7a2b7d48a643402707d05e56f9dc65b7 Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Tue, 31 May 2016 14:33:46 +0200 Subject: [PATCH] Added some improved robostness to sensor sync daemon --- .../deamon/PCDataSynchronizationClient.java | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/src/se/hal/deamon/PCDataSynchronizationClient.java b/src/se/hal/deamon/PCDataSynchronizationClient.java index dc47d4c4..a6446c90 100755 --- a/src/se/hal/deamon/PCDataSynchronizationClient.java +++ b/src/se/hal/deamon/PCDataSynchronizationClient.java @@ -70,19 +70,25 @@ public class PCDataSynchronizationClient implements HalDaemon { user.save(db); for(SensorDTO sensorDTO : peerData.sensors){ - Sensor sensor = Sensor.getExternalSensor(db, user, sensorDTO.sensorId); - if(sensor == null) { // new sensor - sensor = new Sensor(); - logger.fine("Created new external sensor with external_id: "+ sensorDTO.sensorId); - } - else - logger.fine("Updating external sensor with id: "+ sensor.getId() +" and external_id: "+ sensor.getExternalId()); - sensor.setExternalId(sensorDTO.sensorId); - sensor.setName(sensorDTO.name); - sensor.setType(sensorDTO.type); - sensor.getDeviceConfig().setValues(JSONParser.read(sensorDTO.config)).applyConfiguration(); - sensor.setUser(user); - sensor.save(db); + try { // We might not have the sensor plugin installed + Sensor sensor = Sensor.getExternalSensor(db, user, sensorDTO.sensorId); + if(sensor == null) { // new sensor + sensor = new Sensor(); + logger.fine("Created new external sensor with external_id: "+ sensorDTO.sensorId); + } + else + logger.fine("Updating external sensor with id: "+ sensor.getId() +" and external_id: "+ sensor.getExternalId()); + sensor.setExternalId(sensorDTO.sensorId); + sensor.setName(sensorDTO.name); + sensor.setType(sensorDTO.type); + sensor.setUser(user); + + sensor.getDeviceConfig().setValues(JSONParser.read(sensorDTO.config)).applyConfiguration(); + sensor.save(db); + } catch (Exception e){ + logger.warning("Unable to register external sensor: " + + "name="+sensorDTO.name+", type="+ sensorDTO.type); + } } // Request sensor data