Updated Branches: refs/heads/master 34904ff57 -> c729cab62
OOZIE-1691 StackOverflowError in TimestampedMessageParser.parseNextLine() (puru via rkanter) Project: http://git-wip-us.apache.org/repos/asf/oozie/repo Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/d6ddfba1 Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/d6ddfba1 Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/d6ddfba1 Branch: refs/heads/master Commit: d6ddfba1838e3fdcd3a2db1c4e9e83b9a72a2f6d Parents: 34904ff Author: Robert Kanter <[email protected]> Authored: Thu Feb 13 10:33:28 2014 -0800 Committer: Robert Kanter <[email protected]> Committed: Thu Feb 13 10:33:28 2014 -0800 ---------------------------------------------------------------------- .../oozie/util/TimestampedMessageParser.java | 8 ++-- .../util/TestTimestampedMessageParser.java | 39 ++++++++++++++++++++ release-log.txt | 1 + 3 files changed, 44 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/oozie/blob/d6ddfba1/core/src/main/java/org/apache/oozie/util/TimestampedMessageParser.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/util/TimestampedMessageParser.java b/core/src/main/java/org/apache/oozie/util/TimestampedMessageParser.java index 92a687b..8a11780 100644 --- a/core/src/main/java/org/apache/oozie/util/TimestampedMessageParser.java +++ b/core/src/main/java/org/apache/oozie/util/TimestampedMessageParser.java @@ -133,14 +133,14 @@ public class TimestampedMessageParser { * @throws IOException */ protected String parseNextLine() throws IOException { - String line = reader.readLine(); - if (line != null) { + String line; + while ((line = reader.readLine()) != null) { ArrayList<String> logParts = filter.splitLogMessage(line); if (logParts != null) { patternMatched = filter.matches(logParts); } - if (!patternMatched) { - line = parseNextLine(); + if (patternMatched) { + return line; } } return line; http://git-wip-us.apache.org/repos/asf/oozie/blob/d6ddfba1/core/src/test/java/org/apache/oozie/util/TestTimestampedMessageParser.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/oozie/util/TestTimestampedMessageParser.java b/core/src/test/java/org/apache/oozie/util/TestTimestampedMessageParser.java index 55a5284..c2630e7 100644 --- a/core/src/test/java/org/apache/oozie/util/TestTimestampedMessageParser.java +++ b/core/src/test/java/org/apache/oozie/util/TestTimestampedMessageParser.java @@ -97,6 +97,45 @@ public class TestTimestampedMessageParser extends XTestCase { return file; } + static File prepareFile3(String dir) throws IOException { + File file = new File(dir + "/test3.log"); + FileWriter fw = new FileWriter(file); + + for (int i = 0; i < 10000; i++) { + String log = "2009-06-24 02:43:13," + i + + " DEBUG _L1_:323 - USER[oozie] GROUP[-] TOKEN[-] APP[example-forkjoinwf] " + + "JOB[14-200904160239--found-C] ACTION[14-200904160239--example-C@1] End workflow state change\n"; + + fw.write(log); + } + + fw.close(); + return file; + } + + public void testNofindLogs() { + // Test of OOZIE-1691 + XLogStreamer.Filter.reset(); + XLogStreamer.Filter.defineParameter("USER"); + XLogStreamer.Filter.defineParameter("GROUP"); + XLogStreamer.Filter.defineParameter("TOKEN"); + XLogStreamer.Filter.defineParameter("APP"); + XLogStreamer.Filter.defineParameter("JOB"); + XLogStreamer.Filter.defineParameter("ACTION"); + XLogStreamer.Filter xf = new XLogStreamer.Filter(); + xf.setParameter("JOB", "14-200904160239--no-found-C"); + xf.setLogLevel("DEBUG|WARN"); + try { + File file = prepareFile3(getTestCaseDir()); + StringWriter sw = new StringWriter(); + new TimestampedMessageParser(new BufferedReader(new FileReader(file)), xf).processRemaining(sw, 4096); + assertTrue(sw.toString().isEmpty()); + } + catch (Exception e) { + fail("should not throw Exception"); + } + } + public void testProcessRemainingLog() throws IOException { XLogStreamer.Filter.reset(); XLogStreamer.Filter.defineParameter("USER"); http://git-wip-us.apache.org/repos/asf/oozie/blob/d6ddfba1/release-log.txt ---------------------------------------------------------------------- diff --git a/release-log.txt b/release-log.txt index c5cdf6f..a067414 100644 --- a/release-log.txt +++ b/release-log.txt @@ -1,5 +1,6 @@ -- Oozie 4.1.0 release (trunk - unreleased) +OOZIE-1691 StackOverflowError in TimestampedMessageParser.parseNextLine() (puru via rkanter) OOZIE-1552 Bring Windows shell script functionality and structure in line with trunk (omaliuvanchuk via rkanter) OOZIE-1608 Update Curator to 2.4.0 when its available to fix security hole (rkanter) OOZIE-1687 Bundle can still be in RUNNINGWITHERROR status after bundle kill (rohini)
