Author: samindaw
Date: Tue Oct  9 17:12:51 2012
New Revision: 1396117

URL: http://svn.apache.org/viewvc?rev=1396117&view=rev
Log:
whenever you update the node status update the workflow status update time as 
well

Modified:
    
airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java

Modified: 
airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java
URL: 
http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java?rev=1396117&r1=1396116&r2=1396117&view=diff
==============================================================================
--- 
airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java
 (original)
+++ 
airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java
 Tue Oct  9 17:12:51 2012
@@ -1176,17 +1176,22 @@ public class AiravataJPARegistry extends
        public boolean updateWorkflowNodeStatus(
                        WorkflowInstanceNodeStatus workflowStatusNode)
                        throws RegistryException {
-               if 
(!isWorkflowInstanceNodePresent(workflowStatusNode.getWorkflowInstanceNode().getWorkflowInstance().getWorkflowInstanceId(),
 workflowStatusNode.getWorkflowInstanceNode().getNodeId(), true)){
-                       throw new 
WorkflowInstanceNodeDoesNotExistsException(workflowStatusNode.getWorkflowInstanceNode().getWorkflowInstance().getWorkflowInstanceId(),
 workflowStatusNode.getWorkflowInstanceNode().getNodeId());
+               WorkflowInstance workflowInstance = 
workflowStatusNode.getWorkflowInstanceNode().getWorkflowInstance();
+               String nodeId = 
workflowStatusNode.getWorkflowInstanceNode().getNodeId();
+               if 
(!isWorkflowInstanceNodePresent(workflowInstance.getWorkflowInstanceId(), 
nodeId, true)){
+                       throw new 
WorkflowInstanceNodeDoesNotExistsException(workflowInstance.getWorkflowInstanceId(),
 nodeId);
                }
-               NodeDataResource nodeData = 
jpa.getWorker().getWorkflowInstance(workflowStatusNode.getWorkflowInstanceNode().getWorkflowInstance().getWorkflowInstanceId()).getNodeData(workflowStatusNode.getWorkflowInstanceNode().getNodeId());
+               NodeDataResource nodeData = 
jpa.getWorker().getWorkflowInstance(workflowInstance.getWorkflowInstanceId()).getNodeData(nodeId);
                
nodeData.setStatus(workflowStatusNode.getExecutionStatus().toString());
+               Timestamp t = new 
Timestamp(workflowStatusNode.getStatusUpdateTime().getTime());
                if 
(workflowStatusNode.getExecutionStatus()==ExecutionStatus.STARTED){
-                       nodeData.setStartTime(new 
Timestamp(workflowStatusNode.getStatusUpdateTime().getTime()));
+                       nodeData.setStartTime(t);
                }
-               nodeData.setLastUpdateTime(new 
Timestamp(workflowStatusNode.getStatusUpdateTime().getTime()));
+               nodeData.setLastUpdateTime(t);
                nodeData.save();
-               return true;
+               //Each time node status is updated the the time of update for 
the workflow status is going to be the same
+               WorkflowInstanceStatus currentWorkflowInstanceStatus = 
getWorkflowInstanceStatus(workflowInstance.getWorkflowInstanceId());
+               return updateWorkflowInstanceStatus(new 
WorkflowInstanceStatus(workflowInstance, 
currentWorkflowInstanceStatus.getExecutionStatus(),t));
        }
 
 


Reply via email to