diff --git a/framework.tck/pom.xml b/framework.tck/pom.xml index 35cd65a10d..32be9fcabb 100644 --- a/framework.tck/pom.xml +++ b/framework.tck/pom.xml @@ -105,7 +105,7 @@ net.bytebuddy byte-buddy - 1.17.5 + 1.18.0 test diff --git a/framework.tck/tck.bndrun b/framework.tck/tck.bndrun index 541ec5ddb6..d9567bc7a1 100644 --- a/framework.tck/tck.bndrun +++ b/framework.tck/tck.bndrun @@ -30,7 +30,7 @@ junit-platform-engine;version='[1.12.1,1.12.2)',\ org.opentest4j;version='[1.3.0,1.3.1)',\ junit-platform-launcher;version='[1.12.1,1.12.2)',\ - assertj-core;version='[3.27.3,3.27.4)',\ + assertj-core;version='[3.27.7,3.27.8)',\ biz.aQute.junit;version='[6.4.1,6.4.2)',\ junit-vintage-engine;version='[5.7.1,5.7.2)',\ - net.bytebuddy.byte-buddy;version='[1.17.5,1.17.6)' \ No newline at end of file + net.bytebuddy.byte-buddy;version='[1.18.0,1.18.1)' \ No newline at end of file diff --git a/framework/src/main/java/org/apache/felix/framework/EventDispatcher.java b/framework/src/main/java/org/apache/felix/framework/EventDispatcher.java index 2e86fe35cf..0376e71fe2 100644 --- a/framework/src/main/java/org/apache/felix/framework/EventDispatcher.java +++ b/framework/src/main/java/org/apache/felix/framework/EventDispatcher.java @@ -87,6 +87,20 @@ public void startDispatching() { synchronized (m_threadLock) { + // If the thread is stopping, wait until it is fully stopped. + while (m_stopping) + { + try + { + m_threadLock.wait(); + } + catch (InterruptedException ex) + { + // Restore interrupted status + Thread.currentThread().interrupt(); + } + } + // Start event dispatching thread if necessary. if (m_thread == null || !m_thread.isAlive()) {