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 <[email protected]> Authored: Thu Aug 6 13:55:43 2015 -0700 Committer: Ashish <[email protected]> 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 = "[email protected]"; + 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
