Thank you Peter! Your guess is working. xmlReader0.run() is blocking. Thus, I start each xmlReader in its own thread, start the merger, and wait until both are finished: Thread t1 = new Thread(xmlReader0); Thread t2 = new Thread(xmlReader1); t1.start(); t2.start(); merger.run(); t1.join(); t2.join(); Best, Richard