@Test public void mustBeAbleToUseStatefulMaponcat() throws Exception { final JavaTestKit probe = new JavaTestKit(system); final java.lang.Iterable<Integer> input = Arrays.asList(1, 2, 3, 4, 5); final Source<Integer, NotUsed> ints = Source.from(input) .statefulMapConcat( () -> { int[] state = new int[] {0}; return (elem) -> { List<Integer> list = new ArrayList<>(Collections.nCopies(state[0], elem)); state[0] = elem; return list; }; }); ints.runFold("", (acc, elem) -> acc + elem, materializer) .thenAccept(elem -> probe.getRef().tell(elem, ActorRef.noSender())); probe.expectMsgEquals("2334445555"); }