Description
In KafkaStreams.waitOnState, the code waits the state to be set to NOT_RUNNING instead of the given target state. Is it deliberately as designed?
// ...... while (state != State.NOT_RUNNING) { if (waitMs == 0) { try { stateLock.wait(); } catch (final InterruptedException e) { // it is ok: just move on to the next iteration } } else if (waitMs > elapsedMs) { long remainingMs = waitMs - elapsedMs; try { stateLock.wait(remainingMs); } catch (final InterruptedException e) { // it is ok: just move on to the next iteration } } else { log.debug("Cannot transit to {} within {}ms", targetState, waitMs); return false; } elapsedMs = time.milliseconds() - begin; } return true;
IMO, it should check the state to be the target one.
guozhang Does is make sense?
Attachments
Issue Links
- links to