openhab-addons
openhab-addons copied to clipboard
[wemo] WemoHandlerOSGiTest unstable
This test failed in: https://github.com/openhab/openhab-addons/runs/5533265679
TEST org.openhab.binding.wemo.internal.handler.test.WemoHandlerOSGiTest#assertThatThingHandlesOnOffCommandCorrectly() <<< ERROR:
Expected: is <UNKNOWN>
but: was <OFFLINE>
java.lang.AssertionError:
Expected: is <UNKNOWN>
but: was <OFFLINE>
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6)
at org.openhab.binding.wemo.internal.handler.test.WemoHandlerOSGiTest.lambda$0(WemoHandlerOSGiTest.java:78)
at org.openhab.core.test.java.JavaTest.waitForAssert(JavaTest.java:152)
at org.openhab.core.test.java.JavaTest.waitForAssert(JavaTest.java:120)
at org.openhab.core.test.java.JavaTest.waitForAssert(JavaTest.java:73)
at org.openhab.binding.wemo.internal.handler.test.WemoHandlerOSGiTest.assertThatThingHandlesOnOffCommandCorrectly(WemoHandlerOSGiTest.java:77)
@wborn, @hmerk - this might be fixed by #12461. While refactoring handlers to have own initialize()
methods I noticed that a polling job was being scheduled in initialize()
to start immediately, and after that status was being set to UNKNOWN before leaving initialize()
. Since the job would run asynchronously, it could be setting the status at the same time as initialize()
itself when the job would start really fast. I changed this so initialize()
will set status UNKNOWN before starting the job.
That might indeed explain it! I've linked the issue to the PR so it will be closed when it is merged. If it still occurs after that we can reopen it again.
This is still an issue, see: https://github.com/openhab/openhab-addons/runs/7269653198
Still unstable, see: https://github.com/openhab/openhab-addons/actions/runs/3129621749/jobs/5078939913
TEST org.openhab.binding.wemo.internal.handler.test.WemoHandlerOSGiTest#assertThatThingHandlesREFRESHCommandCorrectly() <<< ERROR:
Expected: is <OFFLINE>
but: was <UNKNOWN>
java.lang.AssertionError:
Expected: is <OFFLINE>
but: was <UNKNOWN>
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6)
at org.openhab.binding.wemo.internal.handler.test.WemoHandlerOSGiTest.lambda$1(WemoHandlerOSGiTest.java:114)
at org.openhab.core.test.java.JavaTest.waitForAssert(JavaTest.java:245)
at org.openhab.core.test.java.JavaTest.waitForAssert(JavaTest.java:213)
at org.openhab.core.test.java.JavaTest.waitForAssert(JavaTest.java:166)
at org.openhab.binding.wemo.internal.handler.test.WemoHandlerOSGiTest.assertThatThingHandlesREFRESHCommandCorrectly(WemoHandlerOSGiTest.java:113)
Today it caused this build to fail: https://ci.openhab.org/job/PR-openHAB-Addons/17297/
TEST org.openhab.binding.wemo.internal.handler.test.WemoHandlerOSGiTest#assertThatThingHandlesOnOffCommandCorrectly() <<< ERROR:
Expected: is <UNKNOWN>
but: was <OFFLINE>
java.lang.AssertionError:
Expected: is <UNKNOWN>
but: was <OFFLINE>
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6)
at org.openhab.binding.wemo.internal.handler.test.WemoHandlerOSGiTest.lambda$0(WemoHandlerOSGiTest.java:78)
at org.openhab.core.test.java.JavaTest.waitForAssert(JavaTest.java:245)
at org.openhab.core.test.java.JavaTest.waitForAssert(JavaTest.java:213)
at org.openhab.core.test.java.JavaTest.waitForAssert(JavaTest.java:166)
at org.openhab.binding.wemo.internal.handler.test.WemoHandlerOSGiTest.assertThatThingHandlesOnOffCommandCorrectly(WemoHandlerOSGiTest.java:77)
And today https://github.com/openhab/openhab-addons/actions/runs/6492582809/job/17631797376:
TEST org.openhab.binding.wemo.internal.handler.test.WemoHandlerOSGiTest#assertThatThingHandlesREFRESHCommandCorrectly() <<< ERROR:
Expected: is <UNKNOWN>
but: was <OFFLINE>
java.lang.AssertionError:
Expected: is <UNKNOWN>
but: was <OFFLINE>
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6)
at org.openhab.binding.wemo.internal.handler.test.WemoHandlerOSGiTest.lambda$1(WemoHandlerOSGiTest.java:114)
at org.openhab.core.test.java.JavaTest.waitForAssert(JavaTest.java:245)
at org.openhab.core.test.java.JavaTest.waitForAssert(JavaTest.java:213)
at org.openhab.core.test.java.JavaTest.waitForAssert(JavaTest.java:166)
at org.openhab.binding.wemo.internal.handler.test.WemoHandlerOSGiTest.assertThatThingHandlesREFRESHCommandCorrectly(WemoHandlerOSGiTest.java:113)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at aQute.tester.bundle.engine.BundleDescriptor.executeChild(BundleDescriptor.java:49)
at aQute.tester.bundle.engine.BundleEngine.lambda$executeBundle$7(BundleEngine.java:120)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at aQute.tester.bundle.engine.BundleEngine.executeBundle(BundleEngine.java:120)
at aQute.tester.bundle.engine.BundleEngine.lambda$executeBundle$8(BundleEngine.java:133)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at aQute.tester.bundle.engine.BundleEngine.executeBundle(BundleEngine.java:133)
at aQute.tester.bundle.engine.BundleEngine.lambda$execute$5(BundleEngine.java:100)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at aQute.tester.bundle.engine.BundleEngine.execute(BundleEngine.java:100)