completed setup for installation, fixed robustness problem.
[upnpmonitor] / monitor / src / main / java / org / wamblee / upnpmonitor / Monitor.java
index fab9fe643b66292103c5472ce33db7d8bd2939cd..3049144fd970d1497948fc20acf1ddf5f2dc10ce 100644 (file)
@@ -26,6 +26,23 @@ public class Monitor implements Runnable {
 
     public void start() {
         serviceFound = true;
+        stack = new UpnpStack(new UpnpStack.Listener() {
+            @Override
+            public void deviceAdded(String aDeviceString) {
+                LOGGER.fine("Device added: " + aDeviceString);
+                if (aDeviceString.toLowerCase().contains(
+                    config.getPattern().toLowerCase())) {
+                    synchronized (Monitor.this) {
+                        setServiceFound(true);
+                    }
+                }
+            }
+
+            @Override
+            public void deviceRemoved(String aDeviceString) {
+                LOGGER.fine("Device removed:" + aDeviceString);
+            }
+        });
         executor.scheduleWithFixedDelay(this, 0, config.getIntervalSeconds(),
             TimeUnit.SECONDS);
         executeCommand(config.getStartupCommand());
@@ -47,27 +64,7 @@ public class Monitor implements Runnable {
             return;
         }
 
-        shutdownStack();
-
         setServiceFound(false);
-
-        stack = new UpnpStack(new UpnpStack.Listener() {
-            @Override
-            public void deviceAdded(String aDeviceString) {
-                LOGGER.fine("Device added: " + aDeviceString);
-                if (aDeviceString.toLowerCase().contains(
-                    config.getPattern().toLowerCase())) {
-                    synchronized (Monitor.this) {
-                        setServiceFound(true);
-                    }
-                }
-            }
-
-            @Override
-            public void deviceRemoved(String aDeviceString) {
-                LOGGER.fine("Device removed:" + aDeviceString);
-            }
-        });
         stack.search();
     }