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)


Reply via email to