You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2012/07/26 22:53:17 UTC

svn commit: r1366198 - in /hbase/trunk/hbase-server/src: main/java/org/apache/hadoop/hbase/filter/FilterList.java test/java/org/apache/hadoop/hbase/filter/TestFilterList.java

Author: tedyu
Date: Thu Jul 26 20:53:17 2012
New Revision: 1366198

URL: http://svn.apache.org/viewvc?rev=1366198&view=rev
Log:
HBASE-6431 Some FilterList Constructors break addFilter (Alex Newman)


Modified:
    hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/filter/FilterList.java
    hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilterList.java

Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/filter/FilterList.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/filter/FilterList.java?rev=1366198&r1=1366197&r2=1366198&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/filter/FilterList.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/filter/FilterList.java Thu Jul 26 20:53:17 2012
@@ -74,7 +74,11 @@ public class FilterList implements Filte
    * @param rowFilters list of filters
    */
   public FilterList(final List<Filter> rowFilters) {
-    this.filters = rowFilters;
+    if (rowFilters instanceof ArrayList) {
+      this.filters = rowFilters;
+    } else {
+      this.filters = new ArrayList<Filter>(rowFilters);
+    }
   }
 
   /**
@@ -83,7 +87,7 @@ public class FilterList implements Filte
    * @param rowFilters
    */
   public FilterList(final Filter... rowFilters) {
-    this.filters = Arrays.asList(rowFilters);
+    this.filters = new ArrayList<Filter>(Arrays.asList(rowFilters));
   }
 
   /**
@@ -102,7 +106,7 @@ public class FilterList implements Filte
    * @param rowFilters Set of row filters.
    */
   public FilterList(final Operator operator, final List<Filter> rowFilters) {
-    this.filters = rowFilters;
+    this.filters = new ArrayList<Filter>(rowFilters);
     this.operator = operator;
   }
 
@@ -113,7 +117,7 @@ public class FilterList implements Filte
    * @param rowFilters Filters to use
    */
   public FilterList(final Operator operator, final Filter... rowFilters) {
-    this.filters = Arrays.asList(rowFilters);
+    this.filters = new ArrayList<Filter>(Arrays.asList(rowFilters));
     this.operator = operator;
   }
 

Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilterList.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilterList.java?rev=1366198&r1=1366197&r2=1366198&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilterList.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilterList.java Thu Jul 26 20:53:17 2012
@@ -54,6 +54,27 @@ public class TestFilterList {
   static byte[] GOOD_BYTES = Bytes.toBytes("abc");
   static byte[] BAD_BYTES = Bytes.toBytes("def");
 
+
+  @Test
+  public void testAddFilter() throws Exception {
+    Filter filter1 = new RowFilter();
+    Filter filter2 = new RowFilter();
+
+    FilterList filterList = new FilterList(filter1, filter2);
+    filterList.addFilter(new RowFilter());
+
+    filterList = new FilterList(Arrays.asList(filter1, filter2));
+    filterList.addFilter(new RowFilter());
+
+    filterList = new FilterList(Operator.MUST_PASS_ALL, filter1, filter2);
+    filterList.addFilter(new RowFilter());
+
+    filterList = new FilterList(Operator.MUST_PASS_ALL, Arrays.asList(filter1, filter2));
+    filterList.addFilter(new RowFilter());
+
+  }
+
+
   /**
    * Test "must pass one"
    * @throws Exception