Author: mona
Date: Thu Oct 17 18:23:00 2013
New Revision: 1533196
URL: http://svn.apache.org/r1533196
Log:
OOZIE-1559 Fix missing fields from new SELECT queries and Recovery Service
picking up killed control nodes (ryota,mona via mona)
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/CoordinatorJobBean.java
oozie/trunk/core/src/main/java/org/apache/oozie/WorkflowActionBean.java
oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordActionInputCheckXCommand.java
oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordMaterializeTransitionXCommand.java
oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/ActionEndXCommand.java
oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/ActionKillXCommand.java
oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/KillXCommand.java
oozie/trunk/core/src/main/java/org/apache/oozie/executor/jpa/CoordJobQueryExecutor.java
oozie/trunk/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowActionQueryExecutor.java
oozie/trunk/core/src/test/java/org/apache/oozie/event/TestEventGeneration.java
oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowActionQueryExecutor.java
oozie/trunk/release-log.txt
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/CoordinatorJobBean.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/CoordinatorJobBean.java?rev=1533196&r1=1533195&r2=1533196&view=diff
==============================================================================
--- oozie/trunk/core/src/main/java/org/apache/oozie/CoordinatorJobBean.java
(original)
+++ oozie/trunk/core/src/main/java/org/apache/oozie/CoordinatorJobBean.java Thu
Oct 17 18:23:00 2013
@@ -91,7 +91,7 @@ import org.json.simple.JSONObject;
@NamedQuery(name = "GET_COORD_JOB_ACTION_KILL", query = "select w.id,
w.user, w.group, w.appName, w.statusStr from CoordinatorJobBean w where w.id =
:id"),
- @NamedQuery(name = "GET_COORD_JOB_MATERIALIZE", query = "select w.id,
w.user, w.group, w.appName, w.statusStr, w.frequency, w.matThrottling,
w.timeOut, w.timeZone, w.startTimestamp, w.endTimestamp, w.pauseTimestamp,
w.nextMaterializedTimestamp, w.lastActionTimestamp, w.lastActionNumber,
w.doneMaterialization, w.bundleId, w.conf, w.jobXml from CoordinatorJobBean w
where w.id = :id"),
+ @NamedQuery(name = "GET_COORD_JOB_MATERIALIZE", query = "select w.id,
w.user, w.group, w.appName, w.statusStr, w.frequency, w.matThrottling,
w.timeOut, w.timeZone, w.startTimestamp, w.endTimestamp, w.pauseTimestamp,
w.nextMaterializedTimestamp, w.lastActionTimestamp, w.lastActionNumber,
w.doneMaterialization, w.bundleId, w.conf, w.jobXml, w.appNamespace from
CoordinatorJobBean w where w.id = :id"),
@NamedQuery(name = "GET_COORD_JOB_SUSPEND_KILL", query = "select w.id,
w.user, w.group, w.appName, w.statusStr, w.bundleId, w.appNamespace,
w.doneMaterialization from CoordinatorJobBean w where w.id = :id"),
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/WorkflowActionBean.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/WorkflowActionBean.java?rev=1533196&r1=1533195&r2=1533196&view=diff
==============================================================================
--- oozie/trunk/core/src/main/java/org/apache/oozie/WorkflowActionBean.java
(original)
+++ oozie/trunk/core/src/main/java/org/apache/oozie/WorkflowActionBean.java Thu
Oct 17 18:23:00 2013
@@ -65,7 +65,7 @@ import org.json.simple.JSONObject;
@NamedQuery(name = "UPDATE_ACTION_CHECK", query = "update
WorkflowActionBean a set a.userRetryCount = :userRetryCount, a.stats = :stats,
a.externalChildIDs = :externalChildIDs, a.externalStatus = :externalStatus,
a.statusStr = :status, a.data = :data, a.pending = :pending, a.errorCode =
:errorCode, a.errorMessage = :errorMessage, a.lastCheckTimestamp =
:lastCheckTime, a.retries = :retries, a.pendingAgeTimestamp = :pendingAge,
a.startTimestamp = :startTime where a.id = :id"),
- @NamedQuery(name = "UPDATE_ACTION_END", query = "update WorkflowActionBean
a set a.stats = :stats, a.errorCode = :errorCode, a.errorMessage =
:errorMessage, a.retries = :retries, a.endTimestamp = :endTime, a.statusStr =
:status, a.retries = :retries, a.pending = :pending, a.pendingAgeTimestamp =
:pendingAge, a.signalValue = :signalValue, a.userRetryCount = :userRetryCount,
a.externalStatus = :externalStatus where a.id = :id"),
+ @NamedQuery(name = "UPDATE_ACTION_END", query = "update WorkflowActionBean
a set a.stats = :stats, a.errorCode = :errorCode, a.errorMessage =
:errorMessage, a.retries = :retries, a.endTimestamp = :endTime, a.statusStr =
:status, a.pending = :pending, a.pendingAgeTimestamp = :pendingAge,
a.signalValue = :signalValue, a.userRetryCount = :userRetryCount,
a.externalStatus = :externalStatus where a.id = :id"),
@NamedQuery(name = "UPDATE_ACTION_PENDING", query = "update
WorkflowActionBean a set a.pending = :pending, a.pendingAgeTimestamp =
:pendingAge where a.id = :id"),
@@ -87,15 +87,11 @@ import org.json.simple.JSONObject;
@NamedQuery(name = "GET_ACTION_FAIL", query = "select a.id, a.wfId,
a.name, a.statusStr, a.pending, a.type, a.logToken, a.transition, a.errorCode,
a.errorMessage from WorkflowActionBean a where a.id = :id"),
- @NamedQuery(name = "GET_ACTION_SIGNAL", query = "select a.id, a.wfId,
a.name, a.statusStr, a.pending, a.type, a.logToken, a.transition, a.errorCode,
a.errorMessage, a.executionPath, a.signalValue, a.slaXml from
WorkflowActionBean a where a.id = :id"),
+ @NamedQuery(name = "GET_ACTION_SIGNAL", query = "select a.id, a.wfId,
a.name, a.statusStr, a.pending, a.pendingAgeTimestamp, a.type, a.logToken,
a.transition, a.errorCode, a.errorMessage, a.executionPath, a.signalValue,
a.slaXml from WorkflowActionBean a where a.id = :id"),
- @NamedQuery(name = "GET_ACTION_START", query = "select a.id, a.wfId,
a.name, a.statusStr, a.pending, a.type, a.logToken, a.transition, a.retries,
a.userRetryCount, a.userRetryMax, a.userRetryInterval, a.startTimestamp,
a.endTimestamp, a.errorCode, a.errorMessage, a.cred, a.conf, a.slaXml from
WorkflowActionBean a where a.id = :id"),
+ @NamedQuery(name = "GET_ACTION_START", query = "select a.id, a.wfId,
a.name, a.statusStr, a.pending, a.pendingAgeTimestamp, a.type, a.logToken,
a.transition, a.retries, a.userRetryCount, a.userRetryMax, a.userRetryInterval,
a.startTimestamp, a.endTimestamp, a.errorCode, a.errorMessage, a.cred,
a.externalId, a.externalStatus, a.conf, a.slaXml from WorkflowActionBean a
where a.id = :id"),
- @NamedQuery(name = "GET_ACTION_CHECK", query = "select a.id, a.wfId,
a.name, a.statusStr, a.pending, a.type, a.logToken, a.transition, a.retries,
a.trackerUri, a.startTimestamp, a.endTimestamp, a.lastCheckTimestamp,
a.errorCode, a.errorMessage, a.externalId, a.externalStatus,
a.externalChildIDs, a.conf from WorkflowActionBean a where a.id = :id"),
-
- @NamedQuery(name = "GET_ACTION_END", query = "select a.id, a.wfId, a.name,
a.statusStr, a.pending, a.type, a.logToken, a.transition, a.retries,
a.trackerUri, a.userRetryCount, a.userRetryMax, a.userRetryInterval,
a.startTimestamp, a.endTimestamp, a.errorCode, a.errorMessage, a.externalId,
a.externalStatus, a.externalChildIDs, a.conf, a.data, a.stats from
WorkflowActionBean a where a.id = :id"),
-
- @NamedQuery(name = "GET_ACTION_KILL", query = "select a.id, a.wfId,
a.name, a.statusStr, a.pending, a.type, a.logToken, a.transition, a.retries,
a.trackerUri, a.startTimestamp, a.endTimestamp, a.errorCode, a.errorMessage,
a.externalId, a.conf, a.data from WorkflowActionBean a where a.id = :id"),
+ @NamedQuery(name = "GET_ACTION_CHECK", query = "select a.id, a.wfId,
a.name, a.statusStr, a.pending, a.pendingAgeTimestamp, a.type, a.logToken,
a.transition, a.retries, a.userRetryCount, a.userRetryMax, a.userRetryInterval,
a.trackerUri, a.startTimestamp, a.endTimestamp, a.lastCheckTimestamp,
a.errorCode, a.errorMessage, a.externalId, a.externalStatus,
a.externalChildIDs, a.conf from WorkflowActionBean a where a.id = :id"),
@NamedQuery(name = "GET_ACTION_COMPLETED", query = "select a.id, a.wfId,
a.statusStr, a.type, a.logToken from WorkflowActionBean a where a.id = :id"),
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordActionInputCheckXCommand.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordActionInputCheckXCommand.java?rev=1533196&r1=1533195&r2=1533196&view=diff
==============================================================================
---
oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordActionInputCheckXCommand.java
(original)
+++
oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordActionInputCheckXCommand.java
Thu Oct 17 18:23:00 2013
@@ -40,7 +40,6 @@ import org.apache.oozie.dependency.URIHa
import org.apache.oozie.executor.jpa.CoordActionGetForInputCheckJPAExecutor;
import org.apache.oozie.executor.jpa.CoordActionQueryExecutor;
import org.apache.oozie.executor.jpa.CoordActionQueryExecutor.CoordActionQuery;
-import org.apache.oozie.executor.jpa.CoordJobGetJPAExecutor;
import org.apache.oozie.executor.jpa.CoordJobQueryExecutor;
import org.apache.oozie.executor.jpa.CoordJobQueryExecutor.CoordJobQuery;
import org.apache.oozie.executor.jpa.JPAExecutorException;
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordMaterializeTransitionXCommand.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordMaterializeTransitionXCommand.java?rev=1533196&r1=1533195&r2=1533196&view=diff
==============================================================================
---
oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordMaterializeTransitionXCommand.java
(original)
+++
oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordMaterializeTransitionXCommand.java
Thu Oct 17 18:23:00 2013
@@ -455,12 +455,12 @@ public class CoordMaterializeTransitionX
job.setPending();
if (jobEndTime.compareTo(endMatdTime) <= 0) {
- LOG.info("[" + job.getId() + "]: all actions have been
materialized, job status = " + job.getStatus()
- + ", set pending to true");
+ LOG.info("[" + job.getId() + "]: all actions have been
materialized, set pending to true");
// set doneMaterialization to true when materialization is done
job.setDoneMaterialization();
}
job.setStatus(StatusUtils.getStatus(job));
+ LOG.info("Coord Job status updated to = " + job.getStatus());
job.setNextMaterializedTime(endMatdTime);
}
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/ActionEndXCommand.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/ActionEndXCommand.java?rev=1533196&r1=1533195&r2=1533196&view=diff
==============================================================================
---
oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/ActionEndXCommand.java
(original)
+++
oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/ActionEndXCommand.java
Thu Oct 17 18:23:00 2013
@@ -99,7 +99,7 @@ public class ActionEndXCommand extends A
if (jpaService != null) {
this.wfJob =
WorkflowJobQueryExecutor.getInstance().get(WorkflowJobQuery.GET_WORKFLOW_ACTION_OP,
jobId);
- this.wfAction =
WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_END,
actionId);
+ this.wfAction =
WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION,
actionId);
LogUtils.setLogInfo(wfJob, logInfo);
LogUtils.setLogInfo(wfAction, logInfo);
}
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/ActionKillXCommand.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/ActionKillXCommand.java?rev=1533196&r1=1533195&r2=1533196&view=diff
==============================================================================
---
oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/ActionKillXCommand.java
(original)
+++
oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/ActionKillXCommand.java
Thu Oct 17 18:23:00 2013
@@ -96,7 +96,7 @@ public class ActionKillXCommand extends
if (jpaService != null) {
this.wfJob =
WorkflowJobQueryExecutor.getInstance().get(WorkflowJobQuery.GET_WORKFLOW_ACTION_OP,
jobId);
- this.wfAction =
WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_KILL,
actionId);
+ this.wfAction =
WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION,
actionId);
LogUtils.setLogInfo(wfJob, logInfo);
LogUtils.setLogInfo(wfAction, logInfo);
}
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/KillXCommand.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/KillXCommand.java?rev=1533196&r1=1533195&r2=1533196&view=diff
==============================================================================
---
oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/KillXCommand.java
(original)
+++
oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/KillXCommand.java
Thu Oct 17 18:23:00 2013
@@ -142,7 +142,9 @@ public class KillXCommand extends Workfl
for (WorkflowActionBean action : actionList) {
if (action.getStatus() == WorkflowActionBean.Status.RUNNING
|| action.getStatus() ==
WorkflowActionBean.Status.DONE) {
- action.setPending();
+ if (!(actionService.getExecutor(action.getType())
instanceof ControlNodeActionExecutor)) {
+ action.setPending();
+ }
action.setStatus(WorkflowActionBean.Status.KILLED);
updateList.add(new
UpdateEntry<WorkflowActionQuery>(WorkflowActionQuery.UPDATE_ACTION_STATUS_PENDING,
action));
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/executor/jpa/CoordJobQueryExecutor.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/executor/jpa/CoordJobQueryExecutor.java?rev=1533196&r1=1533195&r2=1533196&view=diff
==============================================================================
---
oozie/trunk/core/src/main/java/org/apache/oozie/executor/jpa/CoordJobQueryExecutor.java
(original)
+++
oozie/trunk/core/src/main/java/org/apache/oozie/executor/jpa/CoordJobQueryExecutor.java
Thu Oct 17 18:23:00 2013
@@ -279,6 +279,7 @@ public class CoordJobQueryExecutor exten
bean.setBundleId((String) arr[16]);
bean.setConfBlob((StringBlob) arr[17]);
bean.setJobXmlBlob((StringBlob) arr[18]);
+ bean.setAppNamespace((String) arr[19]);
break;
case GET_COORD_JOB_SUSPEND_KILL:
bean = new CoordinatorJobBean();
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowActionQueryExecutor.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowActionQueryExecutor.java?rev=1533196&r1=1533195&r2=1533196&view=diff
==============================================================================
---
oozie/trunk/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowActionQueryExecutor.java
(original)
+++
oozie/trunk/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowActionQueryExecutor.java
Thu Oct 17 18:23:00 2013
@@ -54,8 +54,6 @@ public class WorkflowActionQueryExecutor
GET_ACTION_SIGNAL,
GET_ACTION_START,
GET_ACTION_CHECK,
- GET_ACTION_END,
- GET_ACTION_KILL,
GET_ACTION_COMPLETED,
GET_RUNNING_ACTIONS,
GET_PENDING_ACTIONS,
@@ -185,7 +183,6 @@ public class WorkflowActionQueryExecutor
query.setParameter("retries", actionBean.getRetries());
query.setParameter("status",
actionBean.getStatus().toString());
query.setParameter("endTime", actionBean.getEndTimestamp());
- query.setParameter("retries", actionBean.getRetries());
query.setParameter("pending", actionBean.getPending());
query.setParameter("pendingAge",
actionBean.getPendingAgeTimestamp());
query.setParameter("signalValue", actionBean.getSignalValue());
@@ -212,8 +209,6 @@ public class WorkflowActionQueryExecutor
case GET_ACTION_SIGNAL:
case GET_ACTION_START:
case GET_ACTION_CHECK:
- case GET_ACTION_END:
- case GET_ACTION_KILL:
case GET_ACTION_COMPLETED:
query.setParameter("id", parameters[0]);
break;
@@ -279,13 +274,14 @@ public class WorkflowActionQueryExecutor
bean.setName((String) arr[2]);
bean.setStatusStr((String) arr[3]);
bean.setPending((Integer) arr[4]);
- bean.setType((String) arr[5]);
- bean.setLogToken((String) arr[6]);
- bean.setTransition((String) arr[7]);
- bean.setErrorInfo((String) arr[8], (String) arr[9]);
- bean.setExecutionPath((String) arr[10]);
- bean.setSignalValue((String) arr[11]);
- bean.setSlaXmlBlob((StringBlob) arr[12]);
+ bean.setPendingAge(DateUtils.toDate((Timestamp) arr[5]));
+ bean.setType((String) arr[6]);
+ bean.setLogToken((String) arr[7]);
+ bean.setTransition((String) arr[8]);
+ bean.setErrorInfo((String) arr[9], (String) arr[10]);
+ bean.setExecutionPath((String) arr[11]);
+ bean.setSignalValue((String) arr[12]);
+ bean.setSlaXmlBlob((StringBlob) arr[13]);
break;
case GET_ACTION_START:
bean = new WorkflowActionBean();
@@ -295,69 +291,24 @@ public class WorkflowActionQueryExecutor
bean.setName((String) arr[2]);
bean.setStatusStr((String) arr[3]);
bean.setPending((Integer) arr[4]);
- bean.setType((String) arr[5]);
- bean.setLogToken((String) arr[6]);
- bean.setTransition((String) arr[7]);
- bean.setRetries((Integer) arr[8]);
- bean.setUserRetryCount((Integer) arr[9]);
- bean.setUserRetryMax((Integer) arr[10]);
- bean.setUserRetryInterval((Integer) arr[11]);
- bean.setStartTime(DateUtils.toDate((Timestamp) arr[12]));
- bean.setEndTime(DateUtils.toDate((Timestamp) arr[13]));
- bean.setErrorInfo((String) arr[14], (String) arr[15]);
- bean.setCred((String) arr[16]);
- bean.setConfBlob((StringBlob) arr[17]);
- bean.setSlaXmlBlob((StringBlob) arr[18]);
- break;
- case GET_ACTION_CHECK:
- bean = new WorkflowActionBean();
- arr = (Object[]) ret;
- bean.setId((String) arr[0]);
- bean.setJobId((String) arr[1]);
- bean.setName((String) arr[2]);
- bean.setStatusStr((String) arr[3]);
- bean.setPending((Integer) arr[4]);
- bean.setType((String) arr[5]);
- bean.setLogToken((String) arr[6]);
- bean.setTransition((String) arr[7]);
- bean.setRetries((Integer) arr[8]);
- bean.setTrackerUri((String) arr[9]);
- bean.setStartTime(DateUtils.toDate((Timestamp) arr[10]));
- bean.setEndTime(DateUtils.toDate((Timestamp) arr[11]));
- bean.setLastCheckTime(DateUtils.toDate((Timestamp) arr[12]));
- bean.setErrorInfo((String) arr[13], (String) arr[14]);
- bean.setExternalId((String) arr[15]);
- bean.setExternalStatus((String) arr[16]);
- bean.setExternalChildIDsBlob((StringBlob) arr[17]);
- bean.setConfBlob((StringBlob) arr[18]);
- break;
- case GET_ACTION_END:
- bean = new WorkflowActionBean();
- arr = (Object[]) ret;
- bean.setId((String) arr[0]);
- bean.setJobId((String) arr[1]);
- bean.setName((String) arr[2]);
- bean.setStatusStr((String) arr[3]);
- bean.setPending((Integer) arr[4]);
- bean.setType((String) arr[5]);
- bean.setLogToken((String) arr[6]);
- bean.setTransition((String) arr[7]);
- bean.setRetries((Integer) arr[8]);
- bean.setTrackerUri((String) arr[9]);
+ bean.setPendingAge(DateUtils.toDate((Timestamp) arr[5]));
+ bean.setType((String) arr[6]);
+ bean.setLogToken((String) arr[7]);
+ bean.setTransition((String) arr[8]);
+ bean.setRetries((Integer) arr[9]);
bean.setUserRetryCount((Integer) arr[10]);
bean.setUserRetryMax((Integer) arr[11]);
bean.setUserRetryInterval((Integer) arr[12]);
bean.setStartTime(DateUtils.toDate((Timestamp) arr[13]));
bean.setEndTime(DateUtils.toDate((Timestamp) arr[14]));
bean.setErrorInfo((String) arr[15], (String) arr[16]);
- bean.setExternalId((String) arr[17]);
- bean.setExternalStatus((String) arr[18]);
- bean.setExternalChildIDsBlob((StringBlob) arr[19]);
+ bean.setCred((String) arr[17]);
+ bean.setExternalId((String) arr[18]);
+ bean.setExternalStatus((String) arr[19]);
bean.setConfBlob((StringBlob) arr[20]);
- bean.setDataBlob((StringBlob) arr[21]);
- bean.setStatsBlob((StringBlob) arr[22]);
+ bean.setSlaXmlBlob((StringBlob) arr[21]);
break;
- case GET_ACTION_KILL:
+ case GET_ACTION_CHECK:
bean = new WorkflowActionBean();
arr = (Object[]) ret;
bean.setId((String) arr[0]);
@@ -365,17 +316,23 @@ public class WorkflowActionQueryExecutor
bean.setName((String) arr[2]);
bean.setStatusStr((String) arr[3]);
bean.setPending((Integer) arr[4]);
- bean.setType((String) arr[5]);
- bean.setLogToken((String) arr[6]);
- bean.setTransition((String) arr[7]);
- bean.setRetries((Integer) arr[8]);
- bean.setTrackerUri((String) arr[9]);
- bean.setStartTime(DateUtils.toDate((Timestamp) arr[10]));
- bean.setEndTime(DateUtils.toDate((Timestamp) arr[11]));
- bean.setErrorInfo((String) arr[12], (String) arr[13]);
- bean.setExternalId((String) arr[14]);
- bean.setConfBlob((StringBlob) arr[15]);
- bean.setDataBlob((StringBlob) arr[16]);
+ bean.setPendingAge(DateUtils.toDate((Timestamp) arr[5]));
+ bean.setType((String) arr[6]);
+ bean.setLogToken((String) arr[7]);
+ bean.setTransition((String) arr[8]);
+ bean.setRetries((Integer) arr[9]);
+ bean.setUserRetryCount((Integer) arr[10]);
+ bean.setUserRetryMax((Integer) arr[11]);
+ bean.setUserRetryInterval((Integer) arr[12]);
+ bean.setTrackerUri((String) arr[13]);
+ bean.setStartTime(DateUtils.toDate((Timestamp) arr[14]));
+ bean.setEndTime(DateUtils.toDate((Timestamp) arr[15]));
+ bean.setLastCheckTime(DateUtils.toDate((Timestamp) arr[16]));
+ bean.setErrorInfo((String) arr[17], (String) arr[18]);
+ bean.setExternalId((String) arr[19]);
+ bean.setExternalStatus((String) arr[20]);
+ bean.setExternalChildIDsBlob((StringBlob) arr[21]);
+ bean.setConfBlob((StringBlob) arr[22]);
break;
case GET_ACTION_COMPLETED:
bean = new WorkflowActionBean();
Modified:
oozie/trunk/core/src/test/java/org/apache/oozie/event/TestEventGeneration.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/test/java/org/apache/oozie/event/TestEventGeneration.java?rev=1533196&r1=1533195&r2=1533196&view=diff
==============================================================================
---
oozie/trunk/core/src/test/java/org/apache/oozie/event/TestEventGeneration.java
(original)
+++
oozie/trunk/core/src/test/java/org/apache/oozie/event/TestEventGeneration.java
Thu Oct 17 18:23:00 2013
@@ -361,10 +361,13 @@ public class TestEventGeneration extends
ehs.setAppTypes(new HashSet<String>(Arrays.asList("workflow_action")));
WorkflowJobBean job =
this.addRecordToWfJobTable(WorkflowJob.Status.RUNNING,
WorkflowInstance.Status.RUNNING);
WorkflowActionBean action = this.addRecordToWfActionTable(job.getId(),
"1", WorkflowAction.Status.PREP, true);
- WorkflowActionGetJPAExecutor wfActionGetCmd = new
WorkflowActionGetJPAExecutor(action.getId());
+ // adding record sets externalChildID to dummy workflow-id so
resetting it
+ action.setExternalChildIDs(null);
+
WorkflowActionQueryExecutor.getInstance().executeUpdate(WorkflowActionQuery.UPDATE_ACTION_START,
action);
// Starting job
new ActionStartXCommand(action.getId(), "map-reduce").call();
+ WorkflowActionGetJPAExecutor wfActionGetCmd = new
WorkflowActionGetJPAExecutor(action.getId());
action = jpaService.execute(wfActionGetCmd);
assertEquals(WorkflowAction.Status.RUNNING, action.getStatus());
assertEquals(1, queue.size());
@@ -488,12 +491,12 @@ public class TestEventGeneration extends
public void testForNoDuplicates() throws Exception {
// test workflow job events
Reader reader = IOUtils.getResourceAsReader("wf-no-op.xml", -1);
- Writer writer = new FileWriter(new File(getTestCaseDir(),
"workflow.xml"));
+ Writer writer = new FileWriter(getTestCaseDir() + "/workflow.xml");
IOUtils.copyCharStream(reader, writer);
final DagEngine engine = new DagEngine(getTestUser());
Configuration conf = new XConfiguration();
- conf.set(OozieClient.APP_PATH, getTestCaseFileUri("workflow.xml"));
+ conf.set(OozieClient.APP_PATH, "file://" + getTestCaseDir() +
File.separator + "workflow.xml");
conf.set(OozieClient.USER_NAME, getTestUser());
final String jobId1 = engine.submitJob(conf, true);
Modified:
oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowActionQueryExecutor.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowActionQueryExecutor.java?rev=1533196&r1=1533195&r2=1533196&view=diff
==============================================================================
---
oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowActionQueryExecutor.java
(original)
+++
oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowActionQueryExecutor.java
Thu Oct 17 18:23:00 2013
@@ -191,16 +191,18 @@ public class TestWorkflowActionQueryExec
}
public void testGet() throws Exception {
- WorkflowActionBean bean =
addRecordToWfActionTable("workflowId","testAction", WorkflowAction.Status.PREP);
+ WorkflowActionBean bean = addRecordToWfActionTable("workflowId",
"testAction", WorkflowAction.Status.PREP, "",
+ true);
WorkflowActionBean retBean;
- //GET_WORKFFLOW_ID_TYPE
+ //GET_ACTION_ID_TYPE_LASTCHECK
retBean =
WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_ID_TYPE_LASTCHECK,
bean.getId());
assertEquals(bean.getId(), retBean.getId());
assertEquals(bean.getType(), retBean.getType());
+ assertEquals(bean.getLastCheckTime(), retBean.getLastCheckTime());
- //GET_WORKFFLOW_FAIL
+ //GET_ACTION_FAIL
retBean =
WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_FAIL,
bean.getId());
assertEquals(bean.getId(), retBean.getId());
assertEquals(bean.getJobId(), retBean.getJobId());
@@ -218,13 +220,14 @@ public class TestWorkflowActionQueryExec
assertNull(retBean.getStats());
assertNull(retBean.getExternalChildIDs());
- //GET_WORKFFLOW_SIGNAL
+ //GET_ACTION_SIGNAL
retBean =
WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_SIGNAL,
bean.getId());
assertEquals(bean.getId(), retBean.getId());
assertEquals(bean.getJobId(), retBean.getJobId());
assertEquals(bean.getName(), retBean.getName());
assertEquals(bean.getStatusStr(), retBean.getStatusStr());
assertEquals(bean.getPending(), retBean.getPending());
+ assertEquals(bean.getPendingAge().getTime(),
retBean.getPendingAge().getTime());
assertEquals(bean.getType(), retBean.getType());
assertEquals(bean.getLogToken(), retBean.getLogToken());
assertEquals(bean.getTransition(), retBean.getTransition());
@@ -256,23 +259,29 @@ public class TestWorkflowActionQueryExec
assertEquals(bean.getErrorCode(), retBean.getErrorCode());
assertEquals(bean.getErrorMessage(), retBean.getErrorMessage());
assertEquals(bean.getCred(), retBean.getCred());
+ assertEquals(bean.getExternalId(), retBean.getExternalId());
+ assertEquals(bean.getExternalStatus(), retBean.getExternalStatus());
assertEquals(bean.getConf(), retBean.getConf());
assertEquals(bean.getSlaXml(), retBean.getSlaXml());
assertNull(retBean.getData());
assertNull(retBean.getStats());
assertNull(retBean.getExternalChildIDs());
- // GET_WORKFLOW_CHECK
+ // GET_ACTION_CHECK
retBean =
WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_CHECK,
bean.getId());
assertEquals(bean.getId(), retBean.getId());
assertEquals(bean.getJobId(), retBean.getJobId());
assertEquals(bean.getName(), retBean.getName());
assertEquals(bean.getStatusStr(), retBean.getStatusStr());
assertEquals(bean.getPending(), retBean.getPending());
+ assertEquals(bean.getPendingAge().getTime(),
retBean.getPendingAge().getTime());
assertEquals(bean.getType(), retBean.getType());
assertEquals(bean.getLogToken(), retBean.getLogToken());
assertEquals(bean.getTransition(), retBean.getTransition());
assertEquals(bean.getRetries(), retBean.getRetries());
+ assertEquals(bean.getUserRetryCount(), retBean.getUserRetryCount());
+ assertEquals(bean.getUserRetryMax(), retBean.getUserRetryMax());
+ assertEquals(bean.getUserRetryInterval(),
retBean.getUserRetryInterval());
assertEquals(bean.getTrackerUri(), retBean.getTrackerUri());
assertEquals(bean.getStartTime().getTime(),
retBean.getStartTime().getTime());
assertEquals(bean.getEndTime().getTime(),
retBean.getEndTime().getTime());
@@ -287,68 +296,48 @@ public class TestWorkflowActionQueryExec
assertNull(retBean.getStats());
assertNull(retBean.getSlaXml());
- // GET_WORKFLOW_END
- retBean =
WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_END,
bean.getId());
+ //GET_ACTION_COMPLETED
+ retBean =
WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_COMPLETED,
bean.getId());
assertEquals(bean.getId(), retBean.getId());
assertEquals(bean.getJobId(), retBean.getJobId());
- assertEquals(bean.getName(), retBean.getName());
assertEquals(bean.getStatusStr(), retBean.getStatusStr());
- assertEquals(bean.getPending(), retBean.getPending());
assertEquals(bean.getType(), retBean.getType());
assertEquals(bean.getLogToken(), retBean.getLogToken());
- assertEquals(bean.getTransition(), retBean.getTransition());
- assertEquals(bean.getRetries(), retBean.getRetries());
- assertEquals(bean.getTrackerUri(), retBean.getTrackerUri());
- assertEquals(bean.getUserRetryCount(), retBean.getUserRetryCount());
- assertEquals(bean.getUserRetryMax(), retBean.getUserRetryMax());
- assertEquals(bean.getUserRetryInterval(),
retBean.getUserRetryInterval());
- assertEquals(bean.getExternalId(), retBean.getExternalId());
- assertEquals(bean.getExternalStatus(), retBean.getExternalStatus());
- assertEquals(bean.getExternalChildIDs(),
retBean.getExternalChildIDs());
- assertEquals(bean.getStartTime().getTime(),
retBean.getStartTime().getTime());
- assertEquals(bean.getEndTime().getTime(),
retBean.getEndTime().getTime());
- assertEquals(bean.getErrorCode(), retBean.getErrorCode());
- assertEquals(bean.getErrorMessage(), retBean.getErrorMessage());
- assertEquals(bean.getConf(), retBean.getConf());
- assertEquals(bean.getData(), retBean.getData());
- assertEquals(bean.getStats(), retBean.getStats());
assertNull(retBean.getSlaXml());
+ assertNull(retBean.getConf());
+ assertNull(retBean.getData());
+ assertNull(retBean.getStats());
+ assertNull(retBean.getExternalChildIDs());
- // GET_WORKFLOW_KILL
- retBean =
WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_KILL,
bean.getId());
+ // GET_ACTION (entire obj)
+ retBean =
WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION,
bean.getId());
assertEquals(bean.getId(), retBean.getId());
assertEquals(bean.getJobId(), retBean.getJobId());
assertEquals(bean.getName(), retBean.getName());
assertEquals(bean.getStatusStr(), retBean.getStatusStr());
assertEquals(bean.getPending(), retBean.getPending());
+ assertEquals(bean.getPendingAge().getTime(),
retBean.getPendingAge().getTime());
assertEquals(bean.getType(), retBean.getType());
assertEquals(bean.getLogToken(), retBean.getLogToken());
assertEquals(bean.getTransition(), retBean.getTransition());
assertEquals(bean.getRetries(), retBean.getRetries());
- assertEquals(bean.getTrackerUri(), retBean.getTrackerUri());
- assertEquals(bean.getErrorCode(), retBean.getErrorCode());
+ assertEquals(bean.getUserRetryCount(), retBean.getUserRetryCount());
+ assertEquals(bean.getUserRetryMax(), retBean.getUserRetryMax());
+ assertEquals(bean.getUserRetryInterval(),
retBean.getUserRetryInterval());
assertEquals(bean.getStartTime().getTime(),
retBean.getStartTime().getTime());
assertEquals(bean.getEndTime().getTime(),
retBean.getEndTime().getTime());
+ assertEquals(bean.getCreatedTime().getTime(),
retBean.getCreatedTime().getTime());
+ assertEquals(bean.getLastCheckTime().getTime(),
retBean.getLastCheckTime().getTime());
+ assertEquals(bean.getErrorCode(), retBean.getErrorCode());
assertEquals(bean.getErrorMessage(), retBean.getErrorMessage());
- assertEquals(bean.getExternalId(), retBean.getExternalId());
+ assertEquals(bean.getExecutionPath(), retBean.getExecutionPath());
+ assertEquals(bean.getSignalValue(), retBean.getSignalValue());
+ assertEquals(bean.getCred(), retBean.getCred());
assertEquals(bean.getConf(), retBean.getConf());
+ assertEquals(bean.getSlaXml(), retBean.getSlaXml());
assertEquals(bean.getData(), retBean.getData());
- assertNull(retBean.getExternalChildIDs());
- assertNull(retBean.getStats());
- assertNull(retBean.getSlaXml());
-
- //GET_WORKFLOW_COMPLETED
- retBean =
WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_COMPLETED,
bean.getId());
- assertEquals(bean.getId(), retBean.getId());
- assertEquals(bean.getJobId(), retBean.getJobId());
- assertEquals(bean.getStatusStr(), retBean.getStatusStr());
- assertEquals(bean.getType(), retBean.getType());
- assertEquals(bean.getLogToken(), retBean.getLogToken());
- assertNull(retBean.getSlaXml());
- assertNull(retBean.getConf());
- assertNull(retBean.getData());
- assertNull(retBean.getStats());
- assertNull(retBean.getExternalChildIDs());
+ assertEquals(bean.getStats(), retBean.getStats());
+ assertEquals(bean.getExternalChildIDs(),
retBean.getExternalChildIDs());
}
public void testGetList() throws Exception {
Modified: oozie/trunk/release-log.txt
URL:
http://svn.apache.org/viewvc/oozie/trunk/release-log.txt?rev=1533196&r1=1533195&r2=1533196&view=diff
==============================================================================
--- oozie/trunk/release-log.txt (original)
+++ oozie/trunk/release-log.txt Thu Oct 17 18:23:00 2013
@@ -1,5 +1,6 @@
-- Oozie 4.1.0 release (trunk - unreleased)
+OOZIE-1559 Fix missing fields from new SELECT queries and Recovery Service
picking up killed control nodes (ryota,mona via mona)
OOZIE-1569 Maintain backward incompatibility for running jobs before upgrade
(mona)
OOZIE-1568 TestWorkflowClient.testSla is flakey (rkanter)
OOZIE-1517 Support using MS SQL Server as a metastore (dwann via rkanter)