@Override public boolean waitCompletion(final long timeout) throws InterruptedException, HornetQException { SimpleWaitIOCallback waitCallback = new SimpleWaitIOCallback(); executeOnCompletion(waitCallback); complete(); if (timeout == 0) { waitCallback.waitCompletion(); return true; } else { return waitCallback.waitCompletion(timeout); } }