--- CircuitBreaker/src/dk/thoerup/circuitbreaker/CircuitBreaker.java 2010/03/08 10:01:25 626 +++ CircuitBreaker/src/dk/thoerup/circuitbreaker/CircuitBreaker.java 2010/03/08 10:12:59 627 @@ -59,9 +59,8 @@ this.name = name; - // Initial state is closed - like a reset() was called initially - closed.resetFailureCount(); - currentState = closed; + //set correct intial state + internalReset(); } @@ -106,13 +105,18 @@ public void reset() { synchronized(this) { if (currentState != closed) { // TODO: Is this conditional necessary ?? - closed.resetFailureCount(); - currentState = closed; + internalReset(); notifier.sendNotification(name, Notifier.Event.BreakerReset); } } } + //This one actually sets the correct closed/reset state + private void internalReset() { + closed.resetFailureCount(); + currentState = closed; + } + private CircuitBreakerState getState() { synchronized(this) {