[ 
https://issues.apache.org/jira/browse/HBASE-19797?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Duo Zhang updated HBASE-19797:
------------------------------
    Description: 
{code}
if (e instanceof EOFException ||
        e.getCause() instanceof EOFException && logQueue.size() > 1 && 
this.eofAutoRecovery)
{code}

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html

According to the doc here, && has a higher priority than ||, so we will only 
check logQueueSize when e.getCause is an EOFException, which is incorrect.

> Operator priority leads to wrong logic
> --------------------------------------
>
>                 Key: HBASE-19797
>                 URL: https://issues.apache.org/jira/browse/HBASE-19797
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Duo Zhang
>            Priority: Major
>
> {code}
> if (e instanceof EOFException ||
>         e.getCause() instanceof EOFException && logQueue.size() > 1 && 
> this.eofAutoRecovery)
> {code}
> https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
> According to the doc here, && has a higher priority than ||, so we will only 
> check logQueueSize when e.getCause is an EOFException, which is incorrect.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to