From 04a00b74f51dd6e5ef747c595cfcbc25420aa7e0 Mon Sep 17 00:00:00 2001 From: Konstantin Boudnik Date: Fri, 4 Jun 2010 04:10:17 +0000 Subject: [PATCH] HADOOP-6788. [Herriot] Exception exclusion functionality is not working correctly. Contributed by Vinay Kumar Thota. git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@951259 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 3 ++ .../test/system/DaemonProtocolAspect.aj | 32 +++++++++++++------ 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index e739176ab1f..aed97ec79fe 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -970,6 +970,9 @@ Release 0.21.0 - Unreleased BUG FIXES + HADOOP-6788. [Herriot] Exception exclusion functionality is not working + correctly. (Vinay Thota via cos) + HADOOP-6773. Ivy folder contains redundant files (cos) HADOOP-5379. CBZip2InputStream to throw IOException on data crc error. diff --git a/src/test/system/aop/org/apache/hadoop/test/system/DaemonProtocolAspect.aj b/src/test/system/aop/org/apache/hadoop/test/system/DaemonProtocolAspect.aj index 4e743481003..f009c538087 100644 --- a/src/test/system/aop/org/apache/hadoop/test/system/DaemonProtocolAspect.aj +++ b/src/test/system/aop/org/apache/hadoop/test/system/DaemonProtocolAspect.aj @@ -256,19 +256,31 @@ public aspect DaemonProtocolAspect { public int DaemonProtocol.getNumberOfMatchesInLogFile(String pattern, String[] list) throws IOException { StringBuffer filePattern = new StringBuffer(getFilePattern()); - if(list != null){ - for(int i =0; i < list.length; ++i) - { - filePattern.append(" | grep -v " + list[i] ); + String[] cmd = null; + if (list != null) { + StringBuffer filterExpPattern = new StringBuffer(); + int index=0; + for (String excludeExp : list) { + if (index++ < list.length -1) { + filterExpPattern.append("grep -v " + excludeExp + " | "); + } else { + filterExpPattern.append("grep -vc " + excludeExp); + } } - } - String[] cmd = - new String[] { - "bash", - "-c", - "grep -c " + cmd = new String[] { + "bash", + "-c", + "grep " + + pattern + " " + filePattern + " | " + + filterExpPattern}; + } else { + cmd = new String[] { + "bash", + "-c", + "grep -c " + pattern + " " + filePattern + " | awk -F: '{s+=$2} END {print s}'" }; + } ShellCommandExecutor shexec = new ShellCommandExecutor(cmd); shexec.execute(); String output = shexec.getOutput();