private void verifyCounter(Event event, long expectedCounter, RunState currentRunState) { if (expectedCounter == Long.MAX_VALUE) { return; } final long currentCounter = currentRunState.counter(); if (currentCounter > expectedCounter) { final String message = "Stale event encountered. Expected counter is " + expectedCounter + " but current counter is " + currentCounter + ". Discarding event " + event; log.debug(message); throw new StaleEventException(message); } else if (currentCounter < expectedCounter) { // This should never happen final String message = "Unexpected current counter is less than last observed one for " + currentRunState; log.error(message); throw new RuntimeException(message); } }