private void interceptorMove(File from, File to) throws IOException { interceptor.afterMove(from, to); interceptor.doMove(from, to); // the doMove works asynchronusly. lets give him some time ... for (int i = 0; i < 30; i++) { waitALittleBit(200); if (!from.exists() || to.exists()) { break; } } }