From 85c813ec90bf6cabe87d0f9be46e74e3058d64e1 Mon Sep 17 00:00:00 2001 From: David R_ <36084356+infodavide@users.noreply.github.com> Date: Thu, 18 Jul 2019 12:03:34 +0200 Subject: [PATCH 1/2] Fixes on toString method Fixes on toString method --- src/main/java/org/apache/commons/scxml2/TriggerEvent.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/apache/commons/scxml2/TriggerEvent.java b/src/main/java/org/apache/commons/scxml2/TriggerEvent.java index 438b8ab81..608e29163 100644 --- a/src/main/java/org/apache/commons/scxml2/TriggerEvent.java +++ b/src/main/java/org/apache/commons/scxml2/TriggerEvent.java @@ -190,13 +190,13 @@ public String toString() { StringBuilder buf = new StringBuilder("TriggerEvent{name="); buf.append(name).append(", type=").append(type); if (sendId != null) { - buf.append(", sendid=").append(invokeId); + buf.append(", sendid=").append(sendId); } if (origin != null) { - buf.append(", origin=").append(invokeId); + buf.append(", origin=").append(origin); } if (originType != null) { - buf.append(", origintype=").append(invokeId); + buf.append(", origintype=").append(originType); } if (invokeId != null) { buf.append(", invokeid=").append(invokeId); From d32e2b7d0c4c5b88784b30ff1f7ee88bedb76453 Mon Sep 17 00:00:00 2001 From: David R_ <36084356+infodavide@users.noreply.github.com> Date: Thu, 18 Jul 2019 12:08:21 +0200 Subject: [PATCH 2/2] Fixes on main thread Fixes on main thread to use a name associated to the running state machine Use of yield to reduce CPU usage. --- .../java/org/apache/commons/scxml2/SCXMLExecutor.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/apache/commons/scxml2/SCXMLExecutor.java b/src/main/java/org/apache/commons/scxml2/SCXMLExecutor.java index 411b12bbf..4da9a28e5 100644 --- a/src/main/java/org/apache/commons/scxml2/SCXMLExecutor.java +++ b/src/main/java/org/apache/commons/scxml2/SCXMLExecutor.java @@ -458,14 +458,14 @@ public Thread run() throws ModelException { public Thread run(final Map data) throws ModelException { go(data); - Thread t = new Thread(() -> { + final Thread t = new Thread(() -> { try { while (exctx.isRunning()) { triggerEvents(); } - } catch (ModelException ignored) { + } catch (final Exception ignored) { } - }); + }, getStateMachine().getName() + '-' + getClass().getSimpleName()); t.start(); return t; } @@ -541,6 +541,7 @@ public void triggerEvents() throws ModelException { while (exctx.isRunning() && (evt = externalEventQueue.poll()) != null) { eventStep(evt); } + Thread.yield(); } protected void eventStep(TriggerEvent event) throws ModelException { @@ -571,4 +572,4 @@ protected void logState() { log.debug(sb.toString()); } } -} \ No newline at end of file +}