vasumathi sridharan created LANG-1333:
-----------------------------------------

             Summary: 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.3.15#6346)

Reply via email to