This is an automated email from the ASF dual-hosted git repository.

riemer pushed a commit to branch fix-machine-simulator
in repository https://gitbox.apache.org/repos/asf/streampipes.git

commit 85fe16a11335214b3bd992876bbf772ecb26d254
Author: Dominik Riemer <[email protected]>
AuthorDate: Sat Aug 10 12:07:45 2024 +0200

    fix: Avoid machine simulator crash
---
 .../simulator/machine/MachineDataSimulator.java        | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git 
a/streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/adapters/simulator/machine/MachineDataSimulator.java
 
b/streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/adapters/simulator/machine/MachineDataSimulator.java
index 32b941a21c..ce2a914349 100644
--- 
a/streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/adapters/simulator/machine/MachineDataSimulator.java
+++ 
b/streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/adapters/simulator/machine/MachineDataSimulator.java
@@ -20,18 +20,24 @@ package 
org.apache.streampipes.connect.iiot.adapters.simulator.machine;
 import org.apache.streampipes.commons.exceptions.connect.AdapterException;
 import org.apache.streampipes.extensions.api.connect.IEventCollector;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import java.util.HashMap;
 import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 public class MachineDataSimulator implements Runnable {
 
-  private IEventCollector collector;
+  private final IEventCollector collector;
 
   private final Integer waitTimeMs;
   private final String selectedSimulatorOption;
 
   private Boolean running;
 
+  private static final Logger LOG = 
LoggerFactory.getLogger(MachineDataSimulator.class);
+
   public MachineDataSimulator(IEventCollector collector,
                               Integer waitTimeMs,
                               String selectedSimulatorOption) {
@@ -44,10 +50,10 @@ public class MachineDataSimulator implements Runnable {
   @Override
   public void run() {
     this.running = true;
-    Map<String, Object> event = new HashMap<>();
     long startTimeMs = System.currentTimeMillis();
 
     while (running) {
+      Map<String, Object> event = new HashMap<>();
       long currentTimeMs = System.currentTimeMillis();
       long timeDeltaMs = currentTimeMs - startTimeMs;
 
@@ -95,18 +101,18 @@ public class MachineDataSimulator implements Runnable {
           try {
             throw new AdapterException("resource not found");
           } catch (AdapterException e) {
-            e.printStackTrace();
+            throw new RuntimeException(e);
           }
       }
 
-      if (event.keySet().size() > 0) {
+      if (!event.keySet().isEmpty()) {
         collector.collect(event);
       }
 
       try {
-        Thread.sleep(waitTimeMs);
+        TimeUnit.MILLISECONDS.sleep(waitTimeMs);
       } catch (InterruptedException e) {
-        e.printStackTrace();
+        LOG.error("Machine simulator thread interrupted", e);
       }
     }
   }

Reply via email to