You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flume.apache.org by ap...@apache.org on 2015/08/06 22:57:41 UTC

flume git commit: FLUME-2753 Error when specifying empty replace string in Search and Replace Interceptor

Repository: flume
Updated Branches:
  refs/heads/trunk 5239b618c -> 32ef64dd6


FLUME-2753 Error when specifying empty replace string in Search and Replace Interceptor

(Johny Rufus via Ashish Paliwal)


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

Branch: refs/heads/trunk
Commit: 32ef64dd6b4ee5457832324b3d401a6d724d92bd
Parents: 5239b61
Author: Ashish <ap...@apache.org>
Authored: Thu Aug 6 13:55:43 2015 -0700
Committer: Ashish <ap...@apache.org>
Committed: Thu Aug 6 13:55:43 2015 -0700

----------------------------------------------------------------------
 .../flume/interceptor/SearchAndReplaceInterceptor.java   |  8 +++++---
 .../interceptor/TestSearchAndReplaceInterceptor.java     | 11 +++++++++++
 2 files changed, 16 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flume/blob/32ef64dd/flume-ng-core/src/main/java/org/apache/flume/interceptor/SearchAndReplaceInterceptor.java
----------------------------------------------------------------------
diff --git a/flume-ng-core/src/main/java/org/apache/flume/interceptor/SearchAndReplaceInterceptor.java b/flume-ng-core/src/main/java/org/apache/flume/interceptor/SearchAndReplaceInterceptor.java
index 6f5c146..b8588cd 100644
--- a/flume-ng-core/src/main/java/org/apache/flume/interceptor/SearchAndReplaceInterceptor.java
+++ b/flume-ng-core/src/main/java/org/apache/flume/interceptor/SearchAndReplaceInterceptor.java
@@ -105,9 +105,11 @@ public class SearchAndReplaceInterceptor implements Interceptor {
           " (may not be empty)");
 
       replaceString = context.getString(REPLACE_STRING_KEY);
-      Preconditions.checkNotNull(replaceString,
-          "Must supply a replacement string " + REPLACE_STRING_KEY +
-          " (empty is ok)");
+      // Empty replacement String value or if the property itself is not present
+      // assign empty string as replacement
+      if(replaceString == null) {
+        replaceString = "";
+      }
 
       searchRegex = Pattern.compile(searchPattern);
 

http://git-wip-us.apache.org/repos/asf/flume/blob/32ef64dd/flume-ng-core/src/test/java/org/apache/flume/interceptor/TestSearchAndReplaceInterceptor.java
----------------------------------------------------------------------
diff --git a/flume-ng-core/src/test/java/org/apache/flume/interceptor/TestSearchAndReplaceInterceptor.java b/flume-ng-core/src/test/java/org/apache/flume/interceptor/TestSearchAndReplaceInterceptor.java
index b39f912..2ab15f5 100644
--- a/flume-ng-core/src/test/java/org/apache/flume/interceptor/TestSearchAndReplaceInterceptor.java
+++ b/flume-ng-core/src/test/java/org/apache/flume/interceptor/TestSearchAndReplaceInterceptor.java
@@ -84,4 +84,15 @@ public class TestSearchAndReplaceInterceptor {
     context.put("replaceString", "REDACTED");
     testSearchReplace(context, input, output);
   }
+
+  @Test
+  public void testReplaceEmpty() throws Exception {
+    final String input = "Abc123@test.com";
+    final String output = "@test.com";
+    Context context = new Context();
+    context.put("searchPattern", "^[A-Za-z0-9_]+");
+    testSearchReplace(context, input, output);
+    context.put("replaceString", "");
+    testSearchReplace(context, input, output);
+  }
 }
\ No newline at end of file