Repository: oozie Updated Branches: refs/heads/master 6be29c61f -> 326a58347
OOZIE-2328 Coordinator endtime change should check if the last action is in database Project: http://git-wip-us.apache.org/repos/asf/oozie/repo Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/326a5834 Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/326a5834 Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/326a5834 Branch: refs/heads/master Commit: 326a58347acaba0772c83b2da7d2d5dec785c396 Parents: 6be29c6 Author: Purshotam Shah <[email protected]> Authored: Thu Oct 29 15:51:05 2015 -0700 Committer: Purshotam Shah <[email protected]> Committed: Thu Oct 29 15:51:05 2015 -0700 ---------------------------------------------------------------------- .../command/coord/CoordChangeXCommand.java | 41 +++++++++-------- .../executor/jpa/BundleActionQueryExecutor.java | 25 +++++++---- .../executor/jpa/BundleJobQueryExecutor.java | 12 ++++- .../executor/jpa/CoordActionQueryExecutor.java | 12 ++++- .../executor/jpa/CoordJobQueryExecutor.java | 24 +++++++--- .../oozie/executor/jpa/QueryExecutor.java | 3 ++ .../jpa/SLARegistrationQueryExecutor.java | 13 ++++++ .../executor/jpa/SLASummaryQueryExecutor.java | 13 ++++++ .../jpa/WorkflowActionQueryExecutor.java | 12 ++++- .../executor/jpa/WorkflowJobQueryExecutor.java | 26 ++++++++--- .../command/coord/TestCoordChangeXCommand.java | 47 ++++++++++++++++++++ release-log.txt | 1 + 12 files changed, 185 insertions(+), 44 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/oozie/blob/326a5834/core/src/main/java/org/apache/oozie/command/coord/CoordChangeXCommand.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/command/coord/CoordChangeXCommand.java b/core/src/main/java/org/apache/oozie/command/coord/CoordChangeXCommand.java index d060859..e65b74f 100644 --- a/core/src/main/java/org/apache/oozie/command/coord/CoordChangeXCommand.java +++ b/core/src/main/java/org/apache/oozie/command/coord/CoordChangeXCommand.java @@ -41,8 +41,7 @@ import org.apache.oozie.command.PreconditionException; import org.apache.oozie.command.bundle.BundleStatusUpdateXCommand; import org.apache.oozie.executor.jpa.BatchQueryExecutor; import org.apache.oozie.executor.jpa.BatchQueryExecutor.UpdateEntry; -import org.apache.oozie.executor.jpa.CoordActionGetJPAExecutor; -import org.apache.oozie.executor.jpa.CoordJobGetActionByActionNumberJPAExecutor; +import org.apache.oozie.executor.jpa.CoordActionQueryExecutor; import org.apache.oozie.executor.jpa.CoordJobGetJPAExecutor; import org.apache.oozie.executor.jpa.CoordJobQueryExecutor.CoordJobQuery; import org.apache.oozie.executor.jpa.JPAExecutorException; @@ -269,26 +268,30 @@ public class CoordChangeXCommand extends CoordinatorXCommand<Void> { return null; } - String actionId = jpaService.execute(new CoordJobGetActionByActionNumberJPAExecutor(jobId, actionNum)); - CoordinatorActionBean bean = jpaService.execute(new CoordActionGetJPAExecutor(actionId)); + String actionId = jobId + "@" + actionNum; + CoordinatorActionBean bean = CoordActionQueryExecutor.getInstance().getIfExist( + CoordActionQueryExecutor.CoordActionQuery.GET_COORD_ACTION, actionId); + if (bean == null) { + return null; + } if (afterDate.compareTo(bean.getNominalTime()) <= 0) { - // delete SLA registration entry (if any) for action - if (SLAService.isEnabled()) { - Services.get().get(SLAService.class).removeRegistration(actionId); - } - SLARegistrationBean slaReg = SLARegistrationQueryExecutor.getInstance().get(SLARegQuery.GET_SLA_REG_ALL, actionId); - if (slaReg != null) { - LOG.debug("Deleting registration bean corresponding to action " + slaReg.getId()); - deleteList.add(slaReg); - } - SLASummaryBean slaSummaryBean = SLASummaryQueryExecutor.getInstance().get( - SLASummaryQuery.GET_SLA_SUMMARY, actionId); - if (slaSummaryBean != null) { - LOG.debug("Deleting summary bean corresponding to action " + slaSummaryBean.getId()); - deleteList.add(slaSummaryBean); - } if (bean.getStatus() == CoordinatorAction.Status.WAITING || bean.getStatus() == CoordinatorAction.Status.READY) { + // delete SLA registration entry (if any) for action + if (SLAService.isEnabled()) { + Services.get().get(SLAService.class).removeRegistration(actionId); + } + SLARegistrationBean slaReg = SLARegistrationQueryExecutor.getInstance().get(SLARegQuery.GET_SLA_REG_ALL, actionId); + if (slaReg != null) { + LOG.debug("Deleting registration bean corresponding to action " + slaReg.getId()); + deleteList.add(slaReg); + } + SLASummaryBean slaSummaryBean = SLASummaryQueryExecutor.getInstance().get( + SLASummaryQuery.GET_SLA_SUMMARY, actionId); + if (slaSummaryBean != null) { + LOG.debug("Deleting summary bean corresponding to action " + slaSummaryBean.getId()); + deleteList.add(slaSummaryBean); + } deleteList.add(bean); } else { http://git-wip-us.apache.org/repos/asf/oozie/blob/326a5834/core/src/main/java/org/apache/oozie/executor/jpa/BundleActionQueryExecutor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/executor/jpa/BundleActionQueryExecutor.java b/core/src/main/java/org/apache/oozie/executor/jpa/BundleActionQueryExecutor.java index 704da87..bc3742d 100644 --- a/core/src/main/java/org/apache/oozie/executor/jpa/BundleActionQueryExecutor.java +++ b/core/src/main/java/org/apache/oozie/executor/jpa/BundleActionQueryExecutor.java @@ -20,7 +20,6 @@ package org.apache.oozie.executor.jpa; import java.sql.Timestamp; import java.util.ArrayList; -import java.util.Date; import java.util.List; import javax.persistence.EntityManager; @@ -123,14 +122,11 @@ public class BundleActionQueryExecutor extends @Override public BundleActionBean get(BundleActionQuery namedQuery, Object... parameters) throws JPAExecutorException { - JPAService jpaService = Services.get().get(JPAService.class); - EntityManager em = jpaService.getEntityManager(); - Query query = getSelectQuery(namedQuery, em, parameters); - Object ret = jpaService.executeGet(namedQuery.name(), query, em); - if (ret == null) { - throw new JPAExecutorException(ErrorCode.E0604, query.toString()); + BundleActionBean bean = getIfExist(namedQuery, parameters); + if (bean == null) { + throw new JPAExecutorException(ErrorCode.E0604, getSelectQuery(namedQuery, + Services.get().get(JPAService.class).getEntityManager(), parameters)); } - BundleActionBean bean = constructBean(namedQuery, ret); return bean; } @@ -186,4 +182,17 @@ public class BundleActionQueryExecutor extends throw new UnsupportedOperationException(); } + @Override + public BundleActionBean getIfExist(BundleActionQuery namedQuery, Object... parameters) throws JPAExecutorException { + JPAService jpaService = Services.get().get(JPAService.class); + EntityManager em = jpaService.getEntityManager(); + Query query = getSelectQuery(namedQuery, em, parameters); + Object ret = jpaService.executeGet(namedQuery.name(), query, em); + if (ret == null) { + return null; + } + BundleActionBean bean = constructBean(namedQuery, ret); + return bean; + } + } http://git-wip-us.apache.org/repos/asf/oozie/blob/326a5834/core/src/main/java/org/apache/oozie/executor/jpa/BundleJobQueryExecutor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/executor/jpa/BundleJobQueryExecutor.java b/core/src/main/java/org/apache/oozie/executor/jpa/BundleJobQueryExecutor.java index e07672b..bfd1dae 100644 --- a/core/src/main/java/org/apache/oozie/executor/jpa/BundleJobQueryExecutor.java +++ b/core/src/main/java/org/apache/oozie/executor/jpa/BundleJobQueryExecutor.java @@ -157,12 +157,22 @@ public class BundleJobQueryExecutor extends QueryExecutor<BundleJobBean, BundleJ @Override public BundleJobBean get(BundleJobQuery namedQuery, Object... parameters) throws JPAExecutorException { + BundleJobBean bean = getIfExist(namedQuery, parameters); + if (bean == null) { + throw new JPAExecutorException(ErrorCode.E0605, getSelectQuery(namedQuery, + Services.get().get(JPAService.class).getEntityManager(), parameters).toString()); + } + return bean; + } + + @Override + public BundleJobBean getIfExist(BundleJobQuery namedQuery, Object... parameters) throws JPAExecutorException { JPAService jpaService = Services.get().get(JPAService.class); EntityManager em = jpaService.getEntityManager(); Query query = getSelectQuery(namedQuery, em, parameters); Object ret = jpaService.executeGet(namedQuery.name(), query, em); if (ret == null) { - throw new JPAExecutorException(ErrorCode.E0604, query.toString()); + return null; } BundleJobBean bean = constructBean(namedQuery, ret, parameters); return bean; http://git-wip-us.apache.org/repos/asf/oozie/blob/326a5834/core/src/main/java/org/apache/oozie/executor/jpa/CoordActionQueryExecutor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/executor/jpa/CoordActionQueryExecutor.java b/core/src/main/java/org/apache/oozie/executor/jpa/CoordActionQueryExecutor.java index 6c7f4be..79ec28c 100644 --- a/core/src/main/java/org/apache/oozie/executor/jpa/CoordActionQueryExecutor.java +++ b/core/src/main/java/org/apache/oozie/executor/jpa/CoordActionQueryExecutor.java @@ -227,12 +227,22 @@ public class CoordActionQueryExecutor extends @Override public CoordinatorActionBean get(CoordActionQuery namedQuery, Object... parameters) throws JPAExecutorException { + CoordinatorActionBean bean = getIfExist(namedQuery, parameters); + if (bean == null) { + throw new JPAExecutorException(ErrorCode.E0605, getSelectQuery(namedQuery, + Services.get().get(JPAService.class).getEntityManager(), parameters).toString()); + } + return bean; + } + + @Override + public CoordinatorActionBean getIfExist(CoordActionQuery namedQuery, Object... parameters) throws JPAExecutorException { JPAService jpaService = Services.get().get(JPAService.class); EntityManager em = jpaService.getEntityManager(); Query query = getSelectQuery(namedQuery, em, parameters); Object ret = jpaService.executeGet(namedQuery.name(), query, em); if (ret == null) { - throw new JPAExecutorException(ErrorCode.E0605, query.toString()); + return null; } CoordinatorActionBean bean = constructBean(namedQuery, ret); return bean; http://git-wip-us.apache.org/repos/asf/oozie/blob/326a5834/core/src/main/java/org/apache/oozie/executor/jpa/CoordJobQueryExecutor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/executor/jpa/CoordJobQueryExecutor.java b/core/src/main/java/org/apache/oozie/executor/jpa/CoordJobQueryExecutor.java index 1518686..45d2fc9 100644 --- a/core/src/main/java/org/apache/oozie/executor/jpa/CoordJobQueryExecutor.java +++ b/core/src/main/java/org/apache/oozie/executor/jpa/CoordJobQueryExecutor.java @@ -399,14 +399,11 @@ public class CoordJobQueryExecutor extends QueryExecutor<CoordinatorJobBean, Coo @Override public CoordinatorJobBean get(CoordJobQuery namedQuery, Object... parameters) throws JPAExecutorException { - JPAService jpaService = Services.get().get(JPAService.class); - EntityManager em = jpaService.getEntityManager(); - Query query = getSelectQuery(namedQuery, em, parameters); - Object ret = jpaService.executeGet(namedQuery.name(), query, em); - if (ret == null) { - throw new JPAExecutorException(ErrorCode.E0604, query.toString()); + CoordinatorJobBean bean = getIfExist(namedQuery, parameters); + if (bean == null) { + throw new JPAExecutorException(ErrorCode.E0605, getSelectQuery(namedQuery, + Services.get().get(JPAService.class).getEntityManager(), parameters).toString()); } - CoordinatorJobBean bean = constructBean(namedQuery, ret, parameters); return bean; } @@ -429,4 +426,17 @@ public class CoordJobQueryExecutor extends QueryExecutor<CoordinatorJobBean, Coo public Object getSingleValue(CoordJobQuery namedQuery, Object... parameters) throws JPAExecutorException { throw new UnsupportedOperationException(); } + + @Override + public CoordinatorJobBean getIfExist(CoordJobQuery namedQuery, Object... parameters) throws JPAExecutorException { + JPAService jpaService = Services.get().get(JPAService.class); + EntityManager em = jpaService.getEntityManager(); + Query query = getSelectQuery(namedQuery, em, parameters); + Object ret = jpaService.executeGet(namedQuery.name(), query, em); + if (ret == null) { + return null; + } + CoordinatorJobBean bean = constructBean(namedQuery, ret, parameters); + return bean; + } } http://git-wip-us.apache.org/repos/asf/oozie/blob/326a5834/core/src/main/java/org/apache/oozie/executor/jpa/QueryExecutor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/executor/jpa/QueryExecutor.java b/core/src/main/java/org/apache/oozie/executor/jpa/QueryExecutor.java index 8c9d127..8d94c23 100644 --- a/core/src/main/java/org/apache/oozie/executor/jpa/QueryExecutor.java +++ b/core/src/main/java/org/apache/oozie/executor/jpa/QueryExecutor.java @@ -19,6 +19,7 @@ package org.apache.oozie.executor.jpa; import java.util.List; + import javax.persistence.EntityManager; import javax.persistence.PersistenceException; import javax.persistence.Query; @@ -76,4 +77,6 @@ public abstract class QueryExecutor<T, E extends Enum<E>> { public abstract Object getSingleValue(E namedQuery, Object... parameters) throws JPAExecutorException; + public abstract T getIfExist(E namedQuery, Object... parameters) throws JPAExecutorException; + } http://git-wip-us.apache.org/repos/asf/oozie/blob/326a5834/core/src/main/java/org/apache/oozie/executor/jpa/SLARegistrationQueryExecutor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/executor/jpa/SLARegistrationQueryExecutor.java b/core/src/main/java/org/apache/oozie/executor/jpa/SLARegistrationQueryExecutor.java index bded634..446858f 100644 --- a/core/src/main/java/org/apache/oozie/executor/jpa/SLARegistrationQueryExecutor.java +++ b/core/src/main/java/org/apache/oozie/executor/jpa/SLARegistrationQueryExecutor.java @@ -144,6 +144,19 @@ public class SLARegistrationQueryExecutor extends QueryExecutor<SLARegistrationB } @Override + public SLARegistrationBean getIfExist(SLARegQuery namedQuery, Object... parameters) throws JPAExecutorException { + JPAService jpaService = Services.get().get(JPAService.class); + EntityManager em = jpaService.getEntityManager(); + Query query = getSelectQuery(namedQuery, em, parameters); + Object ret = jpaService.executeGet(namedQuery.name(), query, em); + if (ret == null && !namedQuery.equals(SLARegQuery.GET_SLA_REG_ALL)) { + return null; + } + SLARegistrationBean bean = constructBean(namedQuery, ret, parameters); + return bean; + } + + @Override public List<SLARegistrationBean> getList(SLARegQuery namedQuery, Object... parameters) throws JPAExecutorException { JPAService jpaService = Services.get().get(JPAService.class); EntityManager em = jpaService.getEntityManager(); http://git-wip-us.apache.org/repos/asf/oozie/blob/326a5834/core/src/main/java/org/apache/oozie/executor/jpa/SLASummaryQueryExecutor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/executor/jpa/SLASummaryQueryExecutor.java b/core/src/main/java/org/apache/oozie/executor/jpa/SLASummaryQueryExecutor.java index 0057c89..6663162 100644 --- a/core/src/main/java/org/apache/oozie/executor/jpa/SLASummaryQueryExecutor.java +++ b/core/src/main/java/org/apache/oozie/executor/jpa/SLASummaryQueryExecutor.java @@ -161,6 +161,19 @@ public class SLASummaryQueryExecutor extends QueryExecutor<SLASummaryBean, SLASu } @Override + public SLASummaryBean getIfExist(SLASummaryQuery namedQuery, Object... parameters) throws JPAExecutorException { + JPAService jpaService = Services.get().get(JPAService.class); + EntityManager em = jpaService.getEntityManager(); + Query query = getSelectQuery(namedQuery, em, parameters); + Object ret = jpaService.executeGet(namedQuery.name(), query, em); + if (ret == null && !namedQuery.equals(SLASummaryQuery.GET_SLA_SUMMARY)) { + return null; + } + SLASummaryBean bean = constructBean(namedQuery, ret, parameters); + return bean; + } + + @Override public List<SLASummaryBean> getList(SLASummaryQuery namedQuery, Object... parameters) throws JPAExecutorException { JPAService jpaService = Services.get().get(JPAService.class); EntityManager em = jpaService.getEntityManager(); http://git-wip-us.apache.org/repos/asf/oozie/blob/326a5834/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowActionQueryExecutor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowActionQueryExecutor.java b/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowActionQueryExecutor.java index 76f9adc..078fd40 100644 --- a/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowActionQueryExecutor.java +++ b/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowActionQueryExecutor.java @@ -372,12 +372,22 @@ public class WorkflowActionQueryExecutor extends @Override public WorkflowActionBean get(WorkflowActionQuery namedQuery, Object... parameters) throws JPAExecutorException { + WorkflowActionBean bean = getIfExist(namedQuery, parameters); + if (bean == null) { + throw new JPAExecutorException(ErrorCode.E0605, getSelectQuery(namedQuery, + Services.get().get(JPAService.class).getEntityManager(), parameters).toString()); + } + return bean; + } + + @Override + public WorkflowActionBean getIfExist(WorkflowActionQuery namedQuery, Object... parameters) throws JPAExecutorException { JPAService jpaService = Services.get().get(JPAService.class); EntityManager em = jpaService.getEntityManager(); Query query = getSelectQuery(namedQuery, em, parameters); Object ret = jpaService.executeGet(namedQuery.name(), query, em); if (ret == null) { - throw new JPAExecutorException(ErrorCode.E0605, query.toString()); + return null; } WorkflowActionBean bean = constructBean(namedQuery, ret); return bean; http://git-wip-us.apache.org/repos/asf/oozie/blob/326a5834/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowJobQueryExecutor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowJobQueryExecutor.java b/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowJobQueryExecutor.java index 1acab4a..ce108d5 100644 --- a/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowJobQueryExecutor.java +++ b/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowJobQueryExecutor.java @@ -18,20 +18,22 @@ package org.apache.oozie.executor.jpa; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.List; + +import javax.persistence.EntityManager; +import javax.persistence.Query; + import org.apache.oozie.BinaryBlob; import org.apache.oozie.ErrorCode; import org.apache.oozie.StringBlob; +import org.apache.oozie.WorkflowActionBean; import org.apache.oozie.WorkflowJobBean; import org.apache.oozie.service.JPAService; import org.apache.oozie.service.Services; import org.apache.oozie.util.DateUtils; -import javax.persistence.EntityManager; -import javax.persistence.Query; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.List; - /** * Query Executor that provides API to run query for Workflow Job */ @@ -337,12 +339,22 @@ public class WorkflowJobQueryExecutor extends QueryExecutor<WorkflowJobBean, Wor @Override public WorkflowJobBean get(WorkflowJobQuery namedQuery, Object... parameters) throws JPAExecutorException { + WorkflowJobBean bean = getIfExist(namedQuery, parameters); + if (bean == null) { + throw new JPAExecutorException(ErrorCode.E0605, getSelectQuery(namedQuery, + Services.get().get(JPAService.class).getEntityManager(), parameters).toString()); + } + return bean; + } + + @Override + public WorkflowJobBean getIfExist(WorkflowJobQuery namedQuery, Object... parameters) throws JPAExecutorException { JPAService jpaService = Services.get().get(JPAService.class); EntityManager em = jpaService.getEntityManager(); Query query = getSelectQuery(namedQuery, em, parameters); Object ret = jpaService.executeGet(namedQuery.name(), query, em); if (ret == null) { - throw new JPAExecutorException(ErrorCode.E0604, query.toString()); + return null; } WorkflowJobBean bean = constructBean(namedQuery, ret, parameters); return bean; http://git-wip-us.apache.org/repos/asf/oozie/blob/326a5834/core/src/test/java/org/apache/oozie/command/coord/TestCoordChangeXCommand.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/oozie/command/coord/TestCoordChangeXCommand.java b/core/src/test/java/org/apache/oozie/command/coord/TestCoordChangeXCommand.java index 3a91aa5..5635c0a 100644 --- a/core/src/test/java/org/apache/oozie/command/coord/TestCoordChangeXCommand.java +++ b/core/src/test/java/org/apache/oozie/command/coord/TestCoordChangeXCommand.java @@ -388,6 +388,53 @@ public class TestCoordChangeXCommand extends XDataTestCase { assertTrue(coordJob.isDoneMaterialization()); } + /** + * Testcase when no actions are added to coord action table + * reflects correct job state and values + * + * @throws Exception + */ + public void testCoordChangeEndTime4() throws Exception { + JPAService jpaService = Services.get().get(JPAService.class); + + Date startTime = new Date(); + Date endTime = new Date(startTime.getTime() + (50 * 60 * 1000)); + CoordinatorJobBean coordJob = addRecordToCoordJobTable(CoordinatorJob.Status.RUNNING, startTime, endTime, true, true, 1); + coordJob.setNextMaterializedTime(new Date(startTime.getTime() + (30 * 60 * 1000))); + CoordJobQueryExecutor.getInstance().executeUpdate(CoordJobQuery.UPDATE_COORD_JOB, coordJob); + + Runnable runnable = new StatusTransitService.StatusTransitRunnable(); + runnable.run(); // dummy run so we get to the interval check following coord job change + sleep(1000); + + assertEquals(endTime.getTime(), coordJob.getEndTime().getTime()); // checking before change + + String newEndTime = convertDateToString(startTime.getTime() + 30 * 60 * 1000); + + new CoordChangeXCommand(coordJob.getId(), "endtime=" + newEndTime).call(); + try { + checkCoordJobs(coordJob.getId(), DateUtils.parseDateOozieTZ(newEndTime), null, null, false); + } + catch (Exception ex) { + ex.printStackTrace(); + fail("Invalid date" + ex); + } + + CoordJobGetJPAExecutor coordGetCmd = new CoordJobGetJPAExecutor(coordJob.getId()); + coordJob = jpaService.execute(coordGetCmd); + assertEquals(Job.Status.RUNNING, coordJob.getStatus()); + assertEquals(newEndTime, convertDateToString(coordJob.getEndTime().getTime())); // checking after change + assertTrue(coordJob.isPending()); + assertTrue(coordJob.isDoneMaterialization()); + + runnable.run(); + sleep(1000); + coordJob = jpaService.execute(coordGetCmd); + assertEquals(Job.Status.SUCCEEDED, coordJob.getStatus()); + assertFalse(coordJob.isPending()); + assertTrue(coordJob.isDoneMaterialization()); + } + // Testcase to test deletion of lookahead action in case of end-date change public void testCoordChangeEndTimeDeleteAction() throws Exception { Date startTime = DateUtils.parseDateOozieTZ("2013-08-01T00:00Z"); http://git-wip-us.apache.org/repos/asf/oozie/blob/326a5834/release-log.txt ---------------------------------------------------------------------- diff --git a/release-log.txt b/release-log.txt index ee46b29..9dbcd1d 100644 --- a/release-log.txt +++ b/release-log.txt @@ -1,5 +1,6 @@ -- Oozie 4.3.0 release (trunk - unreleased) +OOZIE-2328 Coordinator endtime change should check if the last action is in database (kailongs via puru) OOZIE-2367 fs delete should support skipTrash option (jaydeepvishwakarma via rohini) OOZIE-2368 coord:dateOffset and coord:dateTzOffset can't be used for coord initial-instance (puru) OOZIE-2369 coord:offset doesn't resolve correctly (puru)
