[
https://issues.apache.org/jira/browse/LANG-1333?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16051165#comment-16051165
]
Bruno P. Kinoshita commented on LANG-1333:
------------------------------------------
Indeed, good points. We are going to probably re-work some of the circuit
breakers for upcoming Java 9 module system. So we might as well update this one
too, either adjusting documentation or code. Will think about for a while and
re-read the code of all circuit breakers during the next days.
Thanks for reporting a clear and detailed issue.
Bruno
> ThresholdCircuitBreaker checkState method contradicts javadoc/interface
> -----------------------------------------------------------------------
>
> Key: LANG-1333
> URL: https://issues.apache.org/jira/browse/LANG-1333
> Project: Commons Lang
> Issue Type: Bug
> Components: lang.concurrent.*
> Affects Versions: 3.5
> Environment: java 8
> Reporter: vasumathi sridharan
> Priority: Minor
>
> The [ThresholdCircuitBreaker impl
> |https://github.com/apache/commons-lang/blob/master/src/main/java/org/apache/commons/lang3/concurrent/ThresholdCircuitBreaker.java]
> does not seem to comply with the interface. The [checkState |
> https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/concurrent/AbstractCircuitBreaker.html#checkState--]
> method should return whether the circuit is closed or not. However, it
> returns isOpen(). This contradicts what's given in the java doc example
> Example:
> ThresHoldCircuitBreaker breaker = new ThresholdCircuitBreaker(10L);
> breaker.incrementAndCheckState(9L) returns false meaning the circuit is
> closed and the requests should pass through. The checkState method should
> return true for below example in javadoc to be correct
> {code}/**
> public void handleRequest(Request request) {
> * long memoryUsed = estimateMemoryUsage(request);
> * if (breaker.incrementAndCheckState(memoryUsed)) {
> * // actually handle this request
> * } else {
> * // do something else, e.g. send an error code
> * }
> * }
> */{code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)