From 60e7372d0a7c9eb61560f07fc106117901309af9 Mon Sep 17 00:00:00 2001 From: Divine Threepwood Date: Tue, 8 Feb 2022 22:12:11 +0100 Subject: [PATCH 1/2] try to avoid deadlock by moving notifyScheduledActionList into action builder lock. --- .../openbase/bco/dal/control/action/ActionImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/module/dal/control/src/main/java/org/openbase/bco/dal/control/action/ActionImpl.java b/module/dal/control/src/main/java/org/openbase/bco/dal/control/action/ActionImpl.java index 869149c1a3..a4347c986e 100644 --- a/module/dal/control/src/main/java/org/openbase/bco/dal/control/action/ActionImpl.java +++ b/module/dal/control/src/main/java/org/openbase/bco/dal/control/action/ActionImpl.java @@ -780,6 +780,11 @@ private void updateActionState(final ActionState.State state) throws Interrupted actionDescriptionBuilder.setTerminationTimestamp(TimestampProcessor.getCurrentTimestamp()); } + // make sure that state changes to finishing states, scheduled and executing always trigger a notification + if (isNotifiedActionState(state)) { + unit.notifyScheduledActionList(); + } + } finally { actionDescriptionBuilderLock.writeLock().unlock(); } @@ -788,11 +793,6 @@ private void updateActionState(final ActionState.State state) throws Interrupted synchronized (executionStateChangeSync) { executionStateChangeSync.notifyAll(); } - - // make sure that state changes to finishing states, scheduled and executing always trigger a notification - if (isNotifiedActionState(state)) { - unit.notifyScheduledActionList(); - } } private void validateStateTransition(final ActionState.State state) throws InvalidStateException { From b39392f456e6534eb45238190a5b9da30adb5e2b Mon Sep 17 00:00:00 2001 From: Tamino Huxohl Date: Tue, 22 Feb 2022 20:19:41 +0100 Subject: [PATCH 2/2] add missing spring dependency for websockets to work --- module/api/graphql/build.gradle.kts | 3 +++ versions.properties | 2 ++ 2 files changed, 5 insertions(+) diff --git a/module/api/graphql/build.gradle.kts b/module/api/graphql/build.gradle.kts index 4ef1497cc3..7a74ccf041 100644 --- a/module/api/graphql/build.gradle.kts +++ b/module/api/graphql/build.gradle.kts @@ -14,6 +14,9 @@ dependencies { exclude(group = "org.springframework.boot", module = "spring-boot-starter-tomcat") } api("org.springframework.boot:spring-boot-starter-jetty:_") + implementation("org.springframework.boot:spring-boot-starter-websocket:_") { + exclude(group = "org.springframework.boot", module = "spring-boot-starter-tomcat") + } api(Spring.boot.webflux) api("org.springframework:spring-webmvc:_") diff --git a/versions.properties b/versions.properties index d2777607ce..87db2c04ac 100644 --- a/versions.properties +++ b/versions.properties @@ -120,6 +120,8 @@ version.org.springframework.boot..spring-boot-starter-webflux=2.6.3 version.org.springframework.boot..spring-boot-starter-jetty=2.6.3 +version.org.springframework.boot..spring-boot-starter-websocket=2.6.3 + version.org.springframework..spring-webmvc=5.3.15 version.org.openhab.core.bundles..org.openhab.core.io.rest.core=3.1.0