You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@falcon.apache.org by pa...@apache.org on 2016/01/18 07:12:06 UTC

[1/4] falcon git commit: FALCON-1732 Folders not getting deleted after testing (by Praveen Adlakha)

Repository: falcon
Updated Branches:
  refs/heads/master 583651c00 -> 9864f0013


FALCON-1732 Folders not getting deleted after testing (by Praveen Adlakha)


Project: http://git-wip-us.apache.org/repos/asf/falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/falcon/commit/b5676c5d
Tree: http://git-wip-us.apache.org/repos/asf/falcon/tree/b5676c5d
Diff: http://git-wip-us.apache.org/repos/asf/falcon/diff/b5676c5d

Branch: refs/heads/master
Commit: b5676c5d60a16a5d82aa55e7459500aefba3d2fc
Parents: 583651c
Author: Pallavi Rao <pa...@inmobi.com>
Authored: Mon Jan 18 10:24:51 2016 +0530
Committer: Pallavi Rao <pa...@inmobi.com>
Committed: Mon Jan 18 10:24:51 2016 +0530

----------------------------------------------------------------------
 CHANGES.txt                                                    | 2 ++
 .../test/java/org/apache/falcon/lifecycle/FeedImportIT.java    | 6 ++++++
 2 files changed, 8 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/falcon/blob/b5676c5d/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 590f17a..3169891 100755
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -112,6 +112,8 @@ Proposed Release Version: 0.9
   OPTIMIZATIONS
 
   BUG FIXES
+    FALCON-1732 Folders not getting deleted after testing (Praveen Adlakha via Pallavi Rao)
+
     FALCON-1675 Lifecycle stage is not honoured when only cluster level lifecycle is implemented (Ajay Yadava via Pallavi Rao)
 
     FALCON-1730 Upgrade enunciate for JDK 8 compatibility(Deepak Barr via Ajay Yadava)

http://git-wip-us.apache.org/repos/asf/falcon/blob/b5676c5d/webapp/src/test/java/org/apache/falcon/lifecycle/FeedImportIT.java
----------------------------------------------------------------------
diff --git a/webapp/src/test/java/org/apache/falcon/lifecycle/FeedImportIT.java b/webapp/src/test/java/org/apache/falcon/lifecycle/FeedImportIT.java
index 8cc1273..27b8454 100644
--- a/webapp/src/test/java/org/apache/falcon/lifecycle/FeedImportIT.java
+++ b/webapp/src/test/java/org/apache/falcon/lifecycle/FeedImportIT.java
@@ -19,13 +19,17 @@
 package org.apache.falcon.lifecycle;
 
 import junit.framework.Assert;
+import org.apache.commons.io.FileUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.falcon.resource.TestContext;
 import org.apache.falcon.util.HsqldbTestUtils;
+import org.apache.hadoop.fs.Path;
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
+
+import java.io.File;
 import java.util.Map;
 
 /**
@@ -49,6 +53,8 @@ public class FeedImportIT {
     @AfterClass
     public void tearDown() throws Exception {
         HsqldbTestUtils.tearDown();
+        FileUtils.deleteDirectory(new File("webapp/localhost/"));
+        FileUtils.deleteDirectory(new File("localhost"));
     }
 
     @Test


[3/4] falcon git commit: FALCON-1715 IllegalStateException in MetadataMappingService when entity is scheduled via native scheduler (by Pallavi Rao)

Posted by pa...@apache.org.
FALCON-1715 IllegalStateException in MetadataMappingService when entity is scheduled via native scheduler (by Pallavi Rao)


Project: http://git-wip-us.apache.org/repos/asf/falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/falcon/commit/32d23639
Tree: http://git-wip-us.apache.org/repos/asf/falcon/tree/32d23639
Diff: http://git-wip-us.apache.org/repos/asf/falcon/diff/32d23639

Branch: refs/heads/master
Commit: 32d23639f8fdf97451d2b30f9cccf2c5aead7afa
Parents: a923059
Author: Pallavi Rao <pa...@inmobi.com>
Authored: Mon Jan 18 11:02:45 2016 +0530
Committer: Pallavi Rao <pa...@inmobi.com>
Committed: Mon Jan 18 11:02:45 2016 +0530

----------------------------------------------------------------------
 CHANGES.txt                                      |  2 ++
 .../falcon/workflow/engine/OozieDAGEngine.java   | 19 +++++++++++--------
 2 files changed, 13 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/falcon/blob/32d23639/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 3169891..0b0a585 100755
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -112,6 +112,8 @@ Proposed Release Version: 0.9
   OPTIMIZATIONS
 
   BUG FIXES
+    FALCON-1715 IllegalStateException in MetadataMappingService when entity is scheduled via native scheduler (Pallavi Rao)
+
     FALCON-1732 Folders not getting deleted after testing (Praveen Adlakha via Pallavi Rao)
 
     FALCON-1675 Lifecycle stage is not honoured when only cluster level lifecycle is implemented (Ajay Yadava via Pallavi Rao)

http://git-wip-us.apache.org/repos/asf/falcon/blob/32d23639/scheduler/src/main/java/org/apache/falcon/workflow/engine/OozieDAGEngine.java
----------------------------------------------------------------------
diff --git a/scheduler/src/main/java/org/apache/falcon/workflow/engine/OozieDAGEngine.java b/scheduler/src/main/java/org/apache/falcon/workflow/engine/OozieDAGEngine.java
index 1d0e126..4266118 100644
--- a/scheduler/src/main/java/org/apache/falcon/workflow/engine/OozieDAGEngine.java
+++ b/scheduler/src/main/java/org/apache/falcon/workflow/engine/OozieDAGEngine.java
@@ -99,8 +99,8 @@ public class OozieDAGEngine implements DAGEngine {
         try {
             Properties properties = getRunProperties(instance);
             Path buildPath = EntityUtil.getLatestStagingPath(cluster, instance.getEntity());
-            switchUser();
-            properties.setProperty(OozieClient.USER_NAME, CurrentUser.getUser());
+            switchUserTo(instance.getEntity().getACL().getOwner());
+            properties.setProperty(OozieClient.USER_NAME, instance.getEntity().getACL().getOwner());
             properties.setProperty(OozieClient.APP_PATH, buildPath.toString());
             return client.run(properties);
         } catch (OozieClientException e) {
@@ -112,6 +112,10 @@ public class OozieDAGEngine implements DAGEngine {
         }
     }
 
+    private void switchUserTo(String user) {
+        CurrentUser.authenticate(user);
+    }
+
     private void prepareEntityBuildPath(Entity entity) throws FalconException {
         Path stagingPath = EntityUtil.getBaseStagingPath(cluster, entity);
         Path logPath = EntityUtil.getLogPath(cluster, entity);
@@ -129,13 +133,13 @@ public class OozieDAGEngine implements DAGEngine {
     private void dryRunInternal(Properties properties, Path buildPath, Entity entity)
         throws OozieClientException, DAGEngineException {
         if (properties == null) {
-            LOG.info("Entity {} is not scheduled on cluster {}", entity.getName(), cluster);
+            LOG.info("Entity {} is not scheduled on cluster {} with user {}", entity.getName(), cluster,
+                    entity.getACL().getOwner());
             throw new DAGEngineException("Properties for entity " + entity.getName() + " is empty");
         }
 
-        switchUser();
-        LOG.debug("Logged in user is " + CurrentUser.getUser());
-        properties.setProperty(OozieClient.USER_NAME, CurrentUser.getUser());
+        switchUserTo(entity.getACL().getOwner());
+        properties.setProperty(OozieClient.USER_NAME, entity.getACL().getOwner());
         properties.setProperty(OozieClient.APP_PATH, buildPath.toString());
         properties.putAll(getDryRunProperties(entity));
         //Do dryrun before run as run is asynchronous
@@ -144,8 +148,7 @@ public class OozieDAGEngine implements DAGEngine {
     }
 
     private void switchUser() {
-        String user = System.getProperty("user.name");
-        CurrentUser.authenticate(user);
+        switchUserTo(System.getProperty("user.name"));
     }
 
     @Override


[4/4] falcon git commit: FALCON-1662 Ensure entity can be scheduled on multiple clusters on same colo (by Pallavi Rao)

Posted by pa...@apache.org.
FALCON-1662 Ensure entity can be scheduled on multiple clusters on same colo (by Pallavi Rao)


Project: http://git-wip-us.apache.org/repos/asf/falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/falcon/commit/9864f001
Tree: http://git-wip-us.apache.org/repos/asf/falcon/tree/9864f001
Diff: http://git-wip-us.apache.org/repos/asf/falcon/diff/9864f001

Branch: refs/heads/master
Commit: 9864f00131eb6cb0329b502be6b4e5154fbe0f05
Parents: 32d2363
Author: Pallavi Rao <pa...@inmobi.com>
Authored: Mon Jan 18 11:40:20 2016 +0530
Committer: Pallavi Rao <pa...@inmobi.com>
Committed: Mon Jan 18 11:40:20 2016 +0530

----------------------------------------------------------------------
 CHANGES.txt                                     |  2 ++
 .../workflow/engine/OozieWorkflowEngine.java    |  7 ++++++-
 .../execution/FalconExecutionService.java       |  5 +++++
 .../falcon/state/store/jdbc/InstanceBean.java   |  2 +-
 .../falcon/state/store/jdbc/JDBCStateStore.java |  3 ++-
 .../workflow/engine/FalconWorkflowEngine.java   |  9 ++++++---
 .../state/service/store/TestJDBCStateStore.java | 21 ++++++++++++++++----
 7 files changed, 39 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/falcon/blob/9864f001/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 0b0a585..7fec9e1 100755
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -59,6 +59,8 @@ Proposed Release Version: 0.9
     FALCON-1213 Base framework of the native scheduler(Pallavi Rao)
 
   IMPROVEMENTS
+    FALCON-1662 Ensure entity can be scheduled on multiple clusters on same colo (Pallavi Rao)
+
     FALCON-1545 Add documentation for Hive replication job counters(Peeyush Bishnoi via Ajay Yadava)
 
     FALCON-1601 Make Falcon StateStore more secure by not disclosing imp params in startup.props(Pavan Kumar Kolamuri via Ajay Yadava)

http://git-wip-us.apache.org/repos/asf/falcon/blob/9864f001/oozie/src/main/java/org/apache/falcon/workflow/engine/OozieWorkflowEngine.java
----------------------------------------------------------------------
diff --git a/oozie/src/main/java/org/apache/falcon/workflow/engine/OozieWorkflowEngine.java b/oozie/src/main/java/org/apache/falcon/workflow/engine/OozieWorkflowEngine.java
index 07eb47c..f4bb406 100644
--- a/oozie/src/main/java/org/apache/falcon/workflow/engine/OozieWorkflowEngine.java
+++ b/oozie/src/main/java/org/apache/falcon/workflow/engine/OozieWorkflowEngine.java
@@ -269,12 +269,17 @@ public class OozieWorkflowEngine extends AbstractWorkflowEngine {
     private boolean isBundleInState(Map<String, BundleJob> bundles,
                                     BundleStatus status) throws FalconException {
 
+        // Need a separate list to avoid concurrent modification.
+        List<String> bundlesToRemove = new ArrayList<>();
         // After removing MISSING bundles for clusters, if bundles.size() == 0, entity is not scheduled. Return false.
         for (Map.Entry<String, BundleJob> clusterBundle : bundles.entrySet()) {
             if (clusterBundle.getValue() == MISSING) { // There is no active bundle for this cluster
-                bundles.remove(clusterBundle.getKey());
+                bundlesToRemove.add(clusterBundle.getKey());
             }
         }
+        for (String bundleToRemove : bundlesToRemove) {
+            bundles.remove(bundleToRemove);
+        }
         if (bundles.size() == 0) {
             return false;
         }

http://git-wip-us.apache.org/repos/asf/falcon/blob/9864f001/scheduler/src/main/java/org/apache/falcon/execution/FalconExecutionService.java
----------------------------------------------------------------------
diff --git a/scheduler/src/main/java/org/apache/falcon/execution/FalconExecutionService.java b/scheduler/src/main/java/org/apache/falcon/execution/FalconExecutionService.java
index f45ec98..7bdcd6f 100644
--- a/scheduler/src/main/java/org/apache/falcon/execution/FalconExecutionService.java
+++ b/scheduler/src/main/java/org/apache/falcon/execution/FalconExecutionService.java
@@ -221,6 +221,11 @@ public final class FalconExecutionService implements FalconService, EntityStateC
      */
     public void delete(Entity entity) throws FalconException {
         for (String cluster : EntityUtil.getClustersDefinedInColos(entity)) {
+            EntityClusterID id = new EntityClusterID(entity, cluster);
+            if (!executors.containsKey(id)) {
+                LOG.info("Entity {} is already deleted on cluster {}.", id, cluster);
+                continue;
+            }
             EntityExecutor executor = getEntityExecutor(entity, cluster);
             executor.killAll();
             executors.remove(executor.getId());

http://git-wip-us.apache.org/repos/asf/falcon/blob/9864f001/scheduler/src/main/java/org/apache/falcon/state/store/jdbc/InstanceBean.java
----------------------------------------------------------------------
diff --git a/scheduler/src/main/java/org/apache/falcon/state/store/jdbc/InstanceBean.java b/scheduler/src/main/java/org/apache/falcon/state/store/jdbc/InstanceBean.java
index 5ed3ccd..7f7b966 100644
--- a/scheduler/src/main/java/org/apache/falcon/state/store/jdbc/InstanceBean.java
+++ b/scheduler/src/main/java/org/apache/falcon/state/store/jdbc/InstanceBean.java
@@ -48,7 +48,7 @@ import java.sql.Timestamp;
         @NamedQuery(name = "GET_INSTANCES_FOR_ENTITY_CLUSTER", query = "select OBJECT(a) from InstanceBean a where a.entityId = :entityId AND a.cluster = :cluster"),
         @NamedQuery(name = "GET_INSTANCES_FOR_ENTITY_CLUSTER_FOR_STATES", query = "select OBJECT(a) from InstanceBean a where a.entityId = :entityId AND a.cluster = :cluster AND a.currentState IN (:currentState)"),
         @NamedQuery(name = "GET_INSTANCES_FOR_ENTITY_FOR_STATES", query = "select OBJECT(a) from InstanceBean a where a.entityId = :entityId AND a.currentState IN (:currentState)"),
-        @NamedQuery(name = "GET_INSTANCES_FOR_ENTITY_FOR_STATES_WITH_RANGE", query = "select OBJECT(a) from InstanceBean a where a.entityId = :entityId AND a.currentState IN (:currentState) AND a.instanceTime >= :startTime AND a.instanceTime < :endTime"),
+        @NamedQuery(name = "GET_INSTANCES_FOR_ENTITY_CLUSTER_FOR_STATES_WITH_RANGE", query = "select OBJECT(a) from InstanceBean a where a.entityId = :entityId AND a.cluster = :cluster AND a.currentState IN (:currentState) AND a.instanceTime >= :startTime AND a.instanceTime < :endTime"),
         @NamedQuery(name = "GET_LAST_INSTANCE_FOR_ENTITY_CLUSTER", query = "select OBJECT(a) from InstanceBean a where a.entityId = :entityId AND a.cluster = :cluster order by a.instanceTime desc"),
         @NamedQuery(name = "DELETE_INSTANCES_TABLE", query = "delete from InstanceBean a")
 })

http://git-wip-us.apache.org/repos/asf/falcon/blob/9864f001/scheduler/src/main/java/org/apache/falcon/state/store/jdbc/JDBCStateStore.java
----------------------------------------------------------------------
diff --git a/scheduler/src/main/java/org/apache/falcon/state/store/jdbc/JDBCStateStore.java b/scheduler/src/main/java/org/apache/falcon/state/store/jdbc/JDBCStateStore.java
index e898247..2eafbce 100644
--- a/scheduler/src/main/java/org/apache/falcon/state/store/jdbc/JDBCStateStore.java
+++ b/scheduler/src/main/java/org/apache/falcon/state/store/jdbc/JDBCStateStore.java
@@ -362,7 +362,7 @@ public final class JDBCStateStore extends AbstractStateStore {
                                                            DateTime end) throws StateStoreException {
         String entityKey = new EntityClusterID(entity, cluster).getEntityID().getKey();
         EntityManager entityManager = getEntityManager();
-        Query q = entityManager.createNamedQuery("GET_INSTANCES_FOR_ENTITY_FOR_STATES_WITH_RANGE");
+        Query q = entityManager.createNamedQuery("GET_INSTANCES_FOR_ENTITY_CLUSTER_FOR_STATES_WITH_RANGE");
         q.setParameter("entityId", entityKey);
         List<String> instanceStates = new ArrayList<>();
         for (InstanceState.STATE state : states) {
@@ -371,6 +371,7 @@ public final class JDBCStateStore extends AbstractStateStore {
         q.setParameter("currentState", instanceStates);
         q.setParameter("startTime", new Timestamp(start.getMillis()));
         q.setParameter("endTime", new Timestamp(end.getMillis()));
+        q.setParameter("cluster", cluster);
         List result  = q.getResultList();
         entityManager.close();
         try {

http://git-wip-us.apache.org/repos/asf/falcon/blob/9864f001/scheduler/src/main/java/org/apache/falcon/workflow/engine/FalconWorkflowEngine.java
----------------------------------------------------------------------
diff --git a/scheduler/src/main/java/org/apache/falcon/workflow/engine/FalconWorkflowEngine.java b/scheduler/src/main/java/org/apache/falcon/workflow/engine/FalconWorkflowEngine.java
index bffdb0b..efe9049 100644
--- a/scheduler/src/main/java/org/apache/falcon/workflow/engine/FalconWorkflowEngine.java
+++ b/scheduler/src/main/java/org/apache/falcon/workflow/engine/FalconWorkflowEngine.java
@@ -319,6 +319,7 @@ public class FalconWorkflowEngine extends AbstractWorkflowEngine {
             for (String name : props.stringPropertyNames()) {
                 keyValuePairs[i++] = new InstancesResult.KeyValuePair(name, props.getProperty(name));
             }
+            instanceInfo.wfParams = keyValuePairs;
             break;
         default:
             throw new IllegalArgumentException("Unhandled action " + action);
@@ -416,9 +417,11 @@ public class FalconWorkflowEngine extends AbstractWorkflowEngine {
         boolean entityUpdated =
                 UpdateHelper.isEntityUpdated(oldEntity, newEntity, cluster,
                         EntityUtil.getLatestStagingPath(clusterEntity, oldEntity));
-
+        StringBuilder result = new StringBuilder();
         if (!entityUpdated) {
-            throw new FalconException("No relevant updates detected in the new entity definition!");
+            // Ideally should throw an exception, but, keeping it backward-compatible.
+            LOG.warn("No relevant updates detected in the new entity definition for entity {}!", newEntity.getName());
+            return result.toString();
         }
 
         Date oldEndTime = EntityUtil.getEndTime(oldEntity, cluster);
@@ -435,7 +438,7 @@ public class FalconWorkflowEngine extends AbstractWorkflowEngine {
         Collection<InstanceState> instances = new ArrayList<>();
         instances.add(STATE_STORE.getLastExecutionInstance(oldEntity, cluster));
         EXECUTION_SERVICE.getEntityExecutor(oldEntity, cluster).update(newEntity);
-        StringBuilder result = new StringBuilder();
+
         result.append(newEntity.toShortString()).append("/Effective Time: ")
                 .append(getEffectiveTime(newEntity, cluster, instances));
         return result.toString();

http://git-wip-us.apache.org/repos/asf/falcon/blob/9864f001/scheduler/src/test/java/org/apache/falcon/state/service/store/TestJDBCStateStore.java
----------------------------------------------------------------------
diff --git a/scheduler/src/test/java/org/apache/falcon/state/service/store/TestJDBCStateStore.java b/scheduler/src/test/java/org/apache/falcon/state/service/store/TestJDBCStateStore.java
index bb8ff61..2a383cc 100644
--- a/scheduler/src/test/java/org/apache/falcon/state/service/store/TestJDBCStateStore.java
+++ b/scheduler/src/test/java/org/apache/falcon/state/service/store/TestJDBCStateStore.java
@@ -346,21 +346,34 @@ public class TestJDBCStateStore extends AbstractSchedulerTestBase {
         InstanceState instanceState2 = new InstanceState(processExecutionInstance2);
         instanceState2.setCurrentState(InstanceState.STATE.RUNNING);
 
+        ExecutionInstance processExecutionInstance3 = BeanMapperUtil.getExecutionInstance(
+                entityState.getEntity().getEntityType(), entityState.getEntity(),
+                instance2Time, "cluster2", instance2Time);
+        InstanceState instanceState3 = new InstanceState(processExecutionInstance3);
+        instanceState3.setCurrentState(InstanceState.STATE.RUNNING);
+
         stateStore.putExecutionInstance(instanceState1);
         stateStore.putExecutionInstance(instanceState2);
+        stateStore.putExecutionInstance(instanceState3);
 
         List<InstanceState.STATE> states = new ArrayList<>();
         states.add(InstanceState.STATE.RUNNING);
 
         Collection<InstanceState> actualInstances = stateStore.getExecutionInstances(entityState.getEntity(),
                 "cluster1", states, new DateTime(instance1Time), new DateTime(instance1Time + 60000));
-        Assert.assertEquals(1, actualInstances.size());
-        Assert.assertEquals(instanceState1, actualInstances.toArray()[0]);
+        Assert.assertEquals(actualInstances.size(), 1);
+        Assert.assertEquals(actualInstances.toArray()[0], instanceState1);
 
         actualInstances = stateStore.getExecutionInstances(entityState.getEntity(),
                 "cluster1", states, new DateTime(instance2Time), new DateTime(instance2Time + 60000));
-        Assert.assertEquals(1, actualInstances.size());
-        Assert.assertEquals(instanceState2, actualInstances.toArray()[0]);
+        Assert.assertEquals(actualInstances.size(), 1);
+        Assert.assertEquals(actualInstances.toArray()[0], instanceState2);
+
+        // Ensure we can get instances for a different cluster
+        actualInstances = stateStore.getExecutionInstances(entityState.getEntity(),
+                "cluster2", states, new DateTime(instance2Time), new DateTime(instance2Time + 60000));
+        Assert.assertEquals(actualInstances.size(), 1);
+        Assert.assertEquals(actualInstances.toArray()[0], instanceState3);
 
     }
 


[2/4] falcon git commit: FALCON-1732 Folders not getting deleted after testing (by Praveen Adlakha)

Posted by pa...@apache.org.
FALCON-1732 Folders not getting deleted after testing (by Praveen Adlakha)


Project: http://git-wip-us.apache.org/repos/asf/falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/falcon/commit/a923059d
Tree: http://git-wip-us.apache.org/repos/asf/falcon/tree/a923059d
Diff: http://git-wip-us.apache.org/repos/asf/falcon/diff/a923059d

Branch: refs/heads/master
Commit: a923059d696f98b486682a8710b8c4f64fea4fb0
Parents: b5676c5
Author: Pallavi Rao <pa...@inmobi.com>
Authored: Mon Jan 18 10:58:45 2016 +0530
Committer: Pallavi Rao <pa...@inmobi.com>
Committed: Mon Jan 18 10:58:45 2016 +0530

----------------------------------------------------------------------
 webapp/src/test/java/org/apache/falcon/lifecycle/FeedImportIT.java | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/falcon/blob/a923059d/webapp/src/test/java/org/apache/falcon/lifecycle/FeedImportIT.java
----------------------------------------------------------------------
diff --git a/webapp/src/test/java/org/apache/falcon/lifecycle/FeedImportIT.java b/webapp/src/test/java/org/apache/falcon/lifecycle/FeedImportIT.java
index 27b8454..1fbad88 100644
--- a/webapp/src/test/java/org/apache/falcon/lifecycle/FeedImportIT.java
+++ b/webapp/src/test/java/org/apache/falcon/lifecycle/FeedImportIT.java
@@ -24,7 +24,6 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.falcon.resource.TestContext;
 import org.apache.falcon.util.HsqldbTestUtils;
-import org.apache.hadoop.fs.Path;
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;