Return-Path: X-Original-To: apmail-falcon-commits-archive@minotaur.apache.org Delivered-To: apmail-falcon-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D0DE517383 for ; Tue, 28 Jul 2015 10:17:50 +0000 (UTC) Received: (qmail 79674 invoked by uid 500); 28 Jul 2015 10:17:34 -0000 Delivered-To: apmail-falcon-commits-archive@falcon.apache.org Received: (qmail 79638 invoked by uid 500); 28 Jul 2015 10:17:34 -0000 Mailing-List: contact commits-help@falcon.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@falcon.apache.org Delivered-To: mailing list commits@falcon.apache.org Received: (qmail 79629 invoked by uid 99); 28 Jul 2015 10:17:34 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 28 Jul 2015 10:17:34 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id B2BF4E00AA; Tue, 28 Jul 2015 10:17:34 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: ajayyadava@apache.org To: commits@falcon.apache.org Message-Id: <9194fa99905d4196a707b8173b00b682@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: falcon git commit: FALCON-1323 Reverse lookup of feeds causes NPE. Contributed by Ajay Yadava. Date: Tue, 28 Jul 2015 10:17:34 +0000 (UTC) Repository: falcon Updated Branches: refs/heads/master 4cda54073 -> 60e96f4a4 FALCON-1323 Reverse lookup of feeds causes NPE. Contributed by Ajay Yadava. Project: http://git-wip-us.apache.org/repos/asf/falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/falcon/commit/60e96f4a Tree: http://git-wip-us.apache.org/repos/asf/falcon/tree/60e96f4a Diff: http://git-wip-us.apache.org/repos/asf/falcon/diff/60e96f4a Branch: refs/heads/master Commit: 60e96f4a4088eb70eab7d6842dfd6d51bd521c98 Parents: 4cda540 Author: Ajay Yadava Authored: Tue Jul 28 15:32:32 2015 +0530 Committer: Ajay Yadava Committed: Tue Jul 28 15:32:32 2015 +0530 ---------------------------------------------------------------------- CHANGES.txt | 2 ++ .../org/apache/falcon/resource/FeedLookupResult.java | 1 + .../java/org/apache/falcon/util/FalconRadixUtils.java | 6 +----- .../test/java/org/apache/falcon/util/RadixTreeTest.java | 12 +++++++++++- 4 files changed, 15 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/falcon/blob/60e96f4a/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 6017dbc..9847422 100755 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -65,6 +65,8 @@ Trunk (Unreleased) (Suhas Vasu) BUG FIXES + FALCON-1323 Reverse lookup of feeds causes NPE(Ajay Yadava) + FALCON-1329 Falcon's idempotent behaviour breaks in some cases(Ajay Yadava) FALCON-1282 Incorrect hdfs servers property for feed replication in secured environment(Venkat Ranganathan via Ajay Yadava) http://git-wip-us.apache.org/repos/asf/falcon/blob/60e96f4a/client/src/main/java/org/apache/falcon/resource/FeedLookupResult.java ---------------------------------------------------------------------- diff --git a/client/src/main/java/org/apache/falcon/resource/FeedLookupResult.java b/client/src/main/java/org/apache/falcon/resource/FeedLookupResult.java index 72b088d..f8d58ae 100644 --- a/client/src/main/java/org/apache/falcon/resource/FeedLookupResult.java +++ b/client/src/main/java/org/apache/falcon/resource/FeedLookupResult.java @@ -79,6 +79,7 @@ public class FeedLookupResult extends APIResult { if (elements != null) { for (FeedProperties element : elements) { buffer.append(element.toString()); + buffer.append("\n"); } } return buffer.toString(); http://git-wip-us.apache.org/repos/asf/falcon/blob/60e96f4a/common/src/main/java/org/apache/falcon/util/FalconRadixUtils.java ---------------------------------------------------------------------- diff --git a/common/src/main/java/org/apache/falcon/util/FalconRadixUtils.java b/common/src/main/java/org/apache/falcon/util/FalconRadixUtils.java index 0374dc1..35f03b9 100644 --- a/common/src/main/java/org/apache/falcon/util/FalconRadixUtils.java +++ b/common/src/main/java/org/apache/falcon/util/FalconRadixUtils.java @@ -193,7 +193,7 @@ public class FalconRadixUtils { String regex = key.substring(0, key.indexOf("}") + 1); // match the text and the regex FeedDataPath.VARS var = getMatchingRegex(regex); - if (matchPart(regex, input.substring(0, var.getValueSize()))) { + if (matchPart(regex, remainingText.substring(0, var.getValueSize()))) { newRoot = child; // if it matches then this is the newRoot break; } @@ -251,10 +251,6 @@ public class FalconRadixUtils { private FeedDataPath.VARS getMatchingRegex(String inputPart) { //inputPart will be something like ${YEAR} - - inputPart = inputPart.replace("${", "\\$\\{"); - inputPart = inputPart.replace("}", "\\}"); - for (FeedDataPath.VARS var : FeedDataPath.VARS.values()) { if (inputPart.equals("${" + var.name() + "}")) { return var; http://git-wip-us.apache.org/repos/asf/falcon/blob/60e96f4a/common/src/test/java/org/apache/falcon/util/RadixTreeTest.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/falcon/util/RadixTreeTest.java b/common/src/test/java/org/apache/falcon/util/RadixTreeTest.java index b602a09..e8b0e5b 100644 --- a/common/src/test/java/org/apache/falcon/util/RadixTreeTest.java +++ b/common/src/test/java/org/apache/falcon/util/RadixTreeTest.java @@ -26,6 +26,7 @@ import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; +import java.util.Collection; import java.util.List; /** @@ -42,7 +43,6 @@ public class RadixTreeTest { tree.insert("key1", "value1"); tree.insert("key2", "value2"); tree.insert("random", "random"); - } @AfterMethod @@ -67,7 +67,17 @@ public class RadixTreeTest { Assert.assertEquals(tree.find("duplicatekey").size(), 2); Assert.assertTrue(tree.find("duplicatekey").contains("value1")); Assert.assertTrue(tree.find("duplicatekey").contains("value2")); + } + @Test + public void testGetNextCandidate() { + tree.insert("/projects/userplatform/${YEAR}-${MONTH}-${DAY}", "feed1"); + tree.insert("/projects/userplatform/another", "feed2"); + Collection result = tree.find("/projects/userplatform/another"); + Assert.assertTrue(result.contains("feed2")); + + result = tree.find("/projects/userplatform/2014-07-07", regexAlgorithm); + Assert.assertTrue(result.contains("feed1")); } @Test