[
https://issues.apache.org/jira/browse/HBASE-19640?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zheng Hu resolved HBASE-19640.
------------------------------
Resolution: Fixed
> Change in filterAllRemaining() impl for FilterListWithOR
> --------------------------------------------------------
>
> Key: HBASE-19640
> URL: https://issues.apache.org/jira/browse/HBASE-19640
> Project: HBase
> Issue Type: Bug
> Components: Filters
> Affects Versions: 2.0.0-beta-1
> Reporter: Ankit Singhal
> Assignee: Zheng Hu
>
> filterAllRemaining() in FilterListWithOR will now return false if the filter
> list is empty whereas earlier it used to return true for
> Operator.MUST_PASS_ONE.
> *In HBase-2.0*
> {code}
> @Override
> public boolean filterAllRemaining() throws IOException {
> if (isEmpty()) {
> return super.filterAllRemaining();//false
> }
> for (int i = 0, n = filters.size(); i < n; i++) {
> if (!filters.get(i).filterAllRemaining()) {
> return false;
> }
> }
> return true;
> }
> {code}
> Earlier versions(1.3.1 atleast):-
> {code}
> @Override
> public boolean filterAllRemaining() throws IOException {
> int listize = filters.size();
> for (int i = 0; i < listize; i++) {
> if (filters.get(i).filterAllRemaining()) {
> if (operator == Operator.MUST_PASS_ALL) {
> return true;
> }
> } else {
> if (operator == Operator.MUST_PASS_ONE) {
> return false;
> }
> }
> }
> return operator == Operator.MUST_PASS_ONE;
> }
> {code}
> IMO, the current implementation seems to be right, but probably this change
> requires a release note at least as some people might have implemented the
> filters considering the old semantics.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)