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();