--- CircuitBreaker/src/dk/thoerup/circuitbreaker/LoggingCircuitBreaker.java 2011/04/16 11:11:07 1293 +++ CircuitBreaker/src/dk/thoerup/circuitbreaker/LoggingCircuitBreaker.java 2011/04/16 21:00:08 1295 @@ -68,17 +68,22 @@ private void addEntry(Notifier.Event event) { synchronized(this) { - - if (log.getFirst().event != Notifier.Event.BreakerRetripped) { - - log.addFirst( new LogEntry(event) ); - if(log.size() > maxSize) { - log.removeLast(); - } - + + if (event != Notifier.Event.BreakerRetripped ) { + log.addFirst( new LogEntry(event) ); //trip and reset are added unconditionally } else { - log.getFirst().newRetrip(); + + if (log.size() == 0 || log.getFirst().event != Notifier.Event.BreakerRetripped) { + log.addFirst( new LogEntry(event) ); + } else { + log.getFirst().newRetrip(); + } } + + if(log.size() > maxSize) { + log.removeLast(); + } + } }