failed : mustBeAbleToUseMapWithAutoCloseableResource
He-Pin opened this issue ยท 2 comments
He-Pin commented
https://github.com/apache/pekko/actions/runs/8407468790/job/23022464371#step:7:21794
@injae-kim Would you like to take a look, thanks.
- mustBeAbleToUseMapWithAutoCloseableResource *** FAILED ***
[03-24 07:08:16.265] [info] java.lang.AssertionError: expected:<0> but was:<1>
[03-24 07:08:16.265] [info] at org.junit.Assert.fail(Assert.java:89)
[03-24 07:08:16.265] [info] at org.junit.Assert.failNotEquals(Assert.java:835)
[03-24 07:08:16.265] [info] at org.junit.Assert.assertEquals(Assert.java:647)
[03-24 07:08:16.265] [info] at org.junit.Assert.assertEquals(Assert.java:633)
[03-24 07:08:16.265] [info] at org.apache.pekko.stream.javadsl.FlowTest.mustBeAbleToUseMapWithAutoCloseableResource(FlowTest.java:253)
[03-24 07:08:16.265] [info] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[03-24 07:08:16.265] [info] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[03-24 07:08:16.265] [info] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[03-24 07:08:16.265] [info] at java.lang.reflect.Method.invoke(Method.java:498)
[03-24 07:08:16.265] [info] at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
[03-24 07:08:16.265] [info] at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
[03-24 07:08:16.265] [info] at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
[03-24 07:08:16.266] [info] at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
[03-24 07:08:16.266] [info] at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
[03-24 07:08:16.266] [info] at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
[03-24 07:08:16.266] [info] at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
[03-24 07:08:16.266] [info] at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
[03-24 07:08:16.266] [info] at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
[03-24 07:08:16.266] [info] at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
[03-24 07:08:16.266] [info] at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
[03-24 07:08:16.266] [info] at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
[03-24 07:08:16.266] [info] at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
[03-24 07:08:16.266] [info] at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
[03-24 07:08:16.266] [info] at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:54)
[03-24 07:08:16.266] [info] at org.junit.rules.RunRules.evaluate(RunRules.java:20)
[03-24 07:08:16.266] [info] at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
[03-24 07:08:16.266] [info] at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
[03-24 07:08:16.266] [info] at org.junit.runners.Suite.runChild(Suite.java:128)
[03-24 07:08:16.266] [info] at org.junit.runners.Suite.runChild(Suite.java:27)
[03-24 07:08:16.267] [info] at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
[03-24 07:08:16.267] [info] at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
[03-24 07:08:16.267] [info] at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
[03-24 07:08:16.267] [info] at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
[03-24 07:08:16.267] [info] at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
[03-24 07:08:16.267] [info] at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
[03-24 07:08:16.267] [info] at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
[03-24 07:08:16.267] [info] at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
[03-24 07:08:16.267] [info] at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
[03-24 07:08:16.267] [info] at org.junit.runner.JUnitCore.run(JUnitCore.java:105)
[03-24 07:08:16.268] [info] at org.junit.runner.JUnitCore.run(JUnitCore.java:94)
[03-24 07:08:16.268] [info] at org.scalatestplus.junit.JUnitSuiteLike.run(JUnitSuiteLike.scala:241)
[03-24 07:08:16.268] [info] at org.scalatestplus.junit.JUnitSuiteLike.run$(JUnitSuiteLike.scala:229)
[03-24 07:08:16.268] [info] at org.scalatestplus.junit.JUnitSuite.run(JUnitSuite.scala:71)
[03-24 07:08:16.268] [info] at org.scalatest.tools.Framework.org$scalatest$tools$Framework$$runSuite(Framework.scala:321)
[03-24 07:08:16.268] [info] at org.scalatest.tools.Framework$ScalaTestTask.execute(Framework.scala:517)
[03-24 07:08:16.268] [info] at sbt.ForkMain$Run.lambda$runTest$1(ForkMain.java:414)
[03-24 07:08:16.268] [info] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[03-24 07:08:16.268] [info] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[03-24 07:08:16.268] [info] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[03-24 07:08:16.268] [info] at java.lang.Thread.run(Thread.java:750)
injae-kim commented
oh I'll check it within this weekend. thank you! :)
injae-kim commented
@Test
public void mustBeAbleToUseMapWithAutoCloseableResource() {
final TestKit probe = new TestKit(system);
final AtomicInteger closed = new AtomicInteger();
Source.from(Arrays.asList("1", "2", "3"))
.via(
Flow.of(String.class)
.mapWithResource(
() -> (AutoCloseable) closed::incrementAndGet, (resource, elem) -> elem))
.runWith(Sink.foreach(elem -> probe.getRef().tell(elem, ActorRef.noSender())), system);
probe.expectMsgAllOf("1", "2", "3");
// FAILED: AssertionError: expected:<0> but was:<1>
Assert.assertEquals(closed.get(), 1); // ๐๐ clean-up may not be processed yet here!
}
I found root cause and create simple fix PR #1241 ๐