Repository: camel
Updated Branches:
  refs/heads/camel-2.16.x e94334ae7 -> 4c794f8b1
  refs/heads/master 0fb9d7080 -> 7d5436d0d


Fix Filters Bugs on hbase-098.xx


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/cb9bd378
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/cb9bd378
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/cb9bd378

Branch: refs/heads/camel-2.16.x
Commit: cb9bd3785d74a355297e2f2f40386681b7ce057e
Parents: e94334a
Author: Moizes Junior <moizes.jun...@hotmail.com>
Authored: Mon Feb 1 11:25:41 2016 -0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Thu Feb 11 09:07:33 2016 +0100

----------------------------------------------------------------------
 components/camel-hbase/pom.xml                    |  2 +-
 .../apache/camel/component/hbase/HBaseHelper.java |  2 +-
 .../camel/component/hbase/HBaseProducer.java      | 18 +++++-------------
 .../component/hbase/filters/ModelAwareFilter.java |  5 +++++
 .../hbase/filters/ModelAwareFilterList.java       |  5 +++++
 .../hbase/filters/ModelAwareSkipFilter.java       |  6 ++++++
 .../hbase/filters/ModelAwareWhileMatchFilter.java |  6 ++++++
 7 files changed, 29 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/cb9bd378/components/camel-hbase/pom.xml
----------------------------------------------------------------------
diff --git a/components/camel-hbase/pom.xml b/components/camel-hbase/pom.xml
index 11f41c2..f4d1249 100644
--- a/components/camel-hbase/pom.xml
+++ b/components/camel-hbase/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <groupId>org.apache.camel</groupId>
         <artifactId>components</artifactId>
-        <version>2.16.3-SNAPSHOT</version>
+        <version>2.16.2</version>
     </parent>
 
     <artifactId>camel-hbase</artifactId>

http://git-wip-us.apache.org/repos/asf/camel/blob/cb9bd378/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseHelper.java
----------------------------------------------------------------------
diff --git 
a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseHelper.java
 
b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseHelper.java
index 1d1458c..1ceefa4 100644
--- 
a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseHelper.java
+++ 
b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseHelper.java
@@ -42,7 +42,7 @@ public final class HBaseHelper {
     public static byte[] getHBaseFieldAsBytes(String n) {
         byte[] name = null;
         name = NAMES.get(n);
-        if (name == null) {
+        if (name == null && n != null) {
             name = n.getBytes();
             NAMES.put(n, name);
         }

http://git-wip-us.apache.org/repos/asf/camel/blob/cb9bd378/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseProducer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseProducer.java
 
b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseProducer.java
index 4a921aa..de4cd91 100644
--- 
a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseProducer.java
+++ 
b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseProducer.java
@@ -207,20 +207,12 @@ public class HBaseProducer extends DefaultProducer 
implements ServicePoolAware {
         } else {
             scan = new Scan();
         }
-
-        // need to clone the filters as they are not thread safe to use
+        
         if (filters != null && !filters.isEmpty()) {
-            List<Filter> clonedFilters = new LinkedList<Filter>();
-            for (Filter filter : filters) {
-                if 
(ModelAwareFilter.class.isAssignableFrom(filter.getClass())) {
-                    Object clone = 
endpoint.getCamelContext().getInjector().newInstance(filter.getClass());
-                    if (clone instanceof ModelAwareFilter) {
-                        ((ModelAwareFilter<?>) 
clone).apply(endpoint.getCamelContext(), model);
-                        clonedFilters.add((Filter) clone);
-                    }
-                }
-            }
-            scan.setFilter(new FilterList(FilterList.Operator.MUST_PASS_ALL, 
clonedFilters));
+               for (int i=0;i<filters.size();i++){
+                       ((ModelAwareFilter<?>) 
filters.get(i)).apply(endpoint.getCamelContext(), model);
+                       scan.setFilter(new 
FilterList(FilterList.Operator.MUST_PASS_ALL, ((ModelAwareFilter<?>) 
filters.get(i)).getFilteredList()));
+               }
         }
 
         Set<HBaseCell> cellModels = model.getCells();

http://git-wip-us.apache.org/repos/asf/camel/blob/cb9bd378/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilter.java
----------------------------------------------------------------------
diff --git 
a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilter.java
 
b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilter.java
index a45be79..327c102 100644
--- 
a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilter.java
+++ 
b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilter.java
@@ -16,9 +16,12 @@
  */
 package org.apache.camel.component.hbase.filters;
 
+import java.util.List;
+
 import org.apache.camel.CamelContext;
 import org.apache.camel.component.hbase.model.HBaseRow;
 import org.apache.hadoop.hbase.filter.Filter;
+import org.apache.hadoop.hbase.filter.FilterList;
 
 public interface ModelAwareFilter<T extends Filter> {
 
@@ -26,4 +29,6 @@ public interface ModelAwareFilter<T extends Filter> {
      * Applies the message to {@link Filter} to context.
      */
     void apply(CamelContext context, HBaseRow rowModel);
+
+    FilterList getFilteredList();
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/cb9bd378/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilterList.java
----------------------------------------------------------------------
diff --git 
a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilterList.java
 
b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilterList.java
index 636c8bf..bf2da0e 100644
--- 
a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilterList.java
+++ 
b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilterList.java
@@ -89,4 +89,9 @@ public class ModelAwareFilterList implements 
ModelAwareFilter<FilterList> {
     public void addFilter(Filter filter) {
         getFilters().add(filter);
     }
+
+       @Override
+       public FilterList getFilteredList() {
+               return fl;
+       }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/cb9bd378/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareSkipFilter.java
----------------------------------------------------------------------
diff --git 
a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareSkipFilter.java
 
b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareSkipFilter.java
index 574a680..161be6c 100644
--- 
a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareSkipFilter.java
+++ 
b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareSkipFilter.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.hbase.filters;
 import org.apache.camel.CamelContext;
 import org.apache.camel.component.hbase.model.HBaseRow;
 import org.apache.hadoop.hbase.filter.Filter;
+import org.apache.hadoop.hbase.filter.FilterList;
 import org.apache.hadoop.hbase.filter.SkipFilter;
 
 public class ModelAwareSkipFilter extends SkipFilter implements 
ModelAwareFilter<SkipFilter> {
@@ -44,4 +45,9 @@ public class ModelAwareSkipFilter extends SkipFilter 
implements ModelAwareFilter
     public static ModelAwareSkipFilter wrap(SkipFilter filter) {
         return new ModelAwareSkipFilter(filter.getFilter());
     }
+
+       @Override
+       public FilterList getFilteredList() {
+               return null;
+       }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/cb9bd378/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareWhileMatchFilter.java
----------------------------------------------------------------------
diff --git 
a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareWhileMatchFilter.java
 
b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareWhileMatchFilter.java
index 5fd401d..c16a470 100644
--- 
a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareWhileMatchFilter.java
+++ 
b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareWhileMatchFilter.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.hbase.filters;
 import org.apache.camel.CamelContext;
 import org.apache.camel.component.hbase.model.HBaseRow;
 import org.apache.hadoop.hbase.filter.Filter;
+import org.apache.hadoop.hbase.filter.FilterList;
 import org.apache.hadoop.hbase.filter.WhileMatchFilter;
 
 public class ModelAwareWhileMatchFilter extends WhileMatchFilter implements 
ModelAwareFilter<WhileMatchFilter> {
@@ -44,4 +45,9 @@ public class ModelAwareWhileMatchFilter extends 
WhileMatchFilter implements Mode
         return new ModelAwareWhileMatchFilter(filter.getFilter());
     }
 
+       @Override
+       public FilterList getFilteredList() {
+               return null;
+       }
+
 }

Reply via email to