Repository: airavata
Updated Branches:
  refs/heads/master bf5f8c3c5 -> 8b5f2724e


http://git-wip-us.apache.org/repos/asf/airavata/blob/8b5f2724/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentResource.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentResource.java
index 64a63bb..733ed6e 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentResource.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentResource.java
@@ -258,6 +258,7 @@ public class ExperimentResource extends AbstractResource {
                     break;
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);
@@ -484,6 +485,7 @@ public class ExperimentResource extends AbstractResource {
                     throw new UnsupportedOperationException();
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);
@@ -510,12 +512,15 @@ public class ExperimentResource extends AbstractResource {
             Experiment experiment = new Experiment();
             Project projectmodel = em.find(Project.class, project.getId());
             experiment.setProject(projectmodel);
+            experiment.setProjectId(projectmodel.getProject_id());
             Gateway gateway = em.find(Gateway.class, 
getGateway().getGatewayName());
             experiment.setExpId(expID);
             experiment.setExecutionUser(executionUser);
             Users userModel = em.find(Users.class, executionUser);
             experiment.setUser(userModel);
+            experiment.setExecutionUser(userModel.getUser_name());
             experiment.setGateway(gateway);
+            experiment.setGatewayName(gateway.getGateway_name());
             experiment.setCreationTime(creationTime);
             experiment.setExpName(expName);
             experiment.setExpDesc(description);
@@ -526,9 +531,11 @@ public class ExperimentResource extends AbstractResource {
             experiment.setWorkflowExecutionId(workflowExecutionId);
             if (existingExp != null) {
                 existingExp.setGateway(gateway);
+                existingExp.setGatewayName(gateway.getGateway_name());
                 existingExp.setProject(projectmodel);
                 existingExp.setExecutionUser(executionUser);
-                experiment.setUser(userModel);
+                existingExp.setUser(userModel);
+                existingExp.setProjectId(projectmodel.getProject_id());
                 existingExp.setCreationTime(creationTime);
                 existingExp.setExpName(expName);
                 existingExp.setExpDesc(description);
@@ -539,9 +546,10 @@ public class ExperimentResource extends AbstractResource {
                 existingExp.setWorkflowExecutionId(workflowExecutionId);
                 experiment = em.merge(existingExp);
             } else {
-                em.merge(experiment);
+                em.persist(experiment);
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b5f2724/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/GatewayResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/GatewayResource.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/GatewayResource.java
index fff2e3e..9535ecc 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/GatewayResource.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/GatewayResource.java
@@ -193,6 +193,7 @@ public class GatewayResource extends AbstractResource {
                     break;
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);
@@ -439,6 +440,7 @@ public class GatewayResource extends AbstractResource {
                     throw new IllegalArgumentException("Unsupported resource 
type for gateway resource.");
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);
@@ -472,6 +474,7 @@ public class GatewayResource extends AbstractResource {
                 em.persist(gateway);
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);
@@ -737,6 +740,7 @@ public class GatewayResource extends AbstractResource {
                 }
             }
             em.getTransaction().commit();
+            em.close();
             return resourceList;
         } catch (Exception e) {
             logger.error(e.getMessage(), e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b5f2724/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/HostDescriptorResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/HostDescriptorResource.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/HostDescriptorResource.java
index 172bf65..20aa685 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/HostDescriptorResource.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/HostDescriptorResource.java
@@ -170,6 +170,7 @@ public class HostDescriptorResource extends 
AbstractResource {
                     }
                 }
                 em.getTransaction().commit();
+                em.close();
             }
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
@@ -203,18 +204,22 @@ public class HostDescriptorResource extends 
AbstractResource {
 //            user.setUser_name(userName);
             hostDescriptor.setHost_descriptor_ID(getHostDescName());
             hostDescriptor.setGateway(existingGateway);
+            hostDescriptor.setGateway_name(existingGateway.getGateway_name());
             byte[] contentBytes = content.getBytes();
             hostDescriptor.setHost_descriptor_xml(contentBytes);
             hostDescriptor.setUser(existingUser);
             if (existingHost_desc != null) {
+                existingHost_desc.setGateway(existingGateway);
+                
existingHost_desc.setGateway_name(existingGateway.getGateway_name());
                 existingHost_desc.setUser(existingUser);
                 existingHost_desc.setHost_descriptor_xml(contentBytes);
                 hostDescriptor = em.merge(existingHost_desc);
             } else {
-                em.merge(hostDescriptor);
+                em.persist(hostDescriptor);
             }
 
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b5f2724/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/JobDetailResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/JobDetailResource.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/JobDetailResource.java
index e1eea67..9ed68b1 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/JobDetailResource.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/JobDetailResource.java
@@ -128,6 +128,7 @@ public class JobDetailResource extends AbstractResource {
                     break;
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);
@@ -227,6 +228,7 @@ public class JobDetailResource extends AbstractResource {
                     throw new UnsupportedOperationException();
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             throw new RegistryException(e);
         } finally {
@@ -268,9 +270,10 @@ public class JobDetailResource extends AbstractResource {
                 
existingJobDetail.setComputeResourceConsumed(computeResourceConsumed);
                 jobDetail = em.merge(existingJobDetail);
             } else {
-                em.merge(jobDetail);
+                em.persist(jobDetail);
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b5f2724/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java
index e7354ea..e393ca8 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java
@@ -110,7 +110,6 @@ public class NodeOutputResource extends AbstractResource {
 
     
     public void save() throws RegistryException{
-
         EntityManager em = null;
         try {
             em = ResourceUtils.getEntityManager();
@@ -140,6 +139,7 @@ public class NodeOutputResource extends AbstractResource {
                 em.persist(nodeOutput);
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b5f2724/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java
index bb8755c..108e903 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java
@@ -113,6 +113,7 @@ public class ProjectResource extends AbstractResource {
                 throw new IllegalArgumentException("Unsupported resource type 
for project resource.");
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);
@@ -264,6 +265,7 @@ public class ProjectResource extends AbstractResource {
             }
 
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b5f2724/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectUserResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectUserResource.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectUserResource.java
index d1b34ee..ed2648a 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectUserResource.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectUserResource.java
@@ -107,6 +107,7 @@ public class ProjectUserResource extends AbstractResource {
             }
 
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b5f2724/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/PublishWorkflowResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/PublishWorkflowResource.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/PublishWorkflowResource.java
index a4bbc52..434a012 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/PublishWorkflowResource.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/PublishWorkflowResource.java
@@ -210,14 +210,15 @@ public class PublishWorkflowResource extends 
AbstractResource {
             publishedWorkflow.setVersion(version);
             byte[] bytes = content.getBytes();
             publishedWorkflow.setWorkflow_content(bytes);
-            Gateway gateway = new Gateway();
-            gateway.setGateway_name(this.gateway.getGatewayName());
-            publishedWorkflow.setGateway(gateway);
-            Users user = new Users();
-            user.setUser_name(createdUser);
+            Gateway existingGateway = em.find(Gateway.class, 
gateway.getGatewayName());
+            publishedWorkflow.setGateway(existingGateway);
+            
publishedWorkflow.setGateway_name(existingGateway.getGateway_name());
+            Users user = em.find(Users.class, createdUser);
             publishedWorkflow.setUser(user);
             if (existingWF != null) {
                 existingWF.setUser(user);
+                existingWF.setGateway(existingGateway);
+                existingWF.setGateway_name(existingGateway.getGateway_name());
                 existingWF.setPublished_date(publishedDate);
                 existingWF.setWorkflow_content(bytes);
                 existingWF.setVersion(version);
@@ -228,6 +229,7 @@ public class PublishWorkflowResource extends 
AbstractResource {
             }
 
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b5f2724/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/QosParamResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/QosParamResource.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/QosParamResource.java
index f2ce6a0..26b9d88 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/QosParamResource.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/QosParamResource.java
@@ -136,6 +136,7 @@ public class QosParamResource extends AbstractResource {
             em.persist(qosParam);
             qosId = qosParam.getQosId();
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b5f2724/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java
index 371e4ea..b42c437 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java
@@ -115,6 +115,7 @@ public class ServiceDescriptorResource extends 
AbstractResource {
                     }
                 }
                 em.getTransaction().commit();
+                em.close();
             }
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
@@ -140,6 +141,7 @@ public class ServiceDescriptorResource extends 
AbstractResource {
             serviceDescriptor.setService_descriptor_ID(getServiceDescName());
             Gateway gateway = em.find(Gateway.class, gatewayName);
             serviceDescriptor.setGateway(gateway);
+            serviceDescriptor.setGateway_name(gateway.getGateway_name());
             byte[] bytes = content.getBytes();
             serviceDescriptor.setService_descriptor_xml(bytes);
             Users user = em.find(Users.class, userName);
@@ -147,11 +149,14 @@ public class ServiceDescriptorResource extends 
AbstractResource {
             if (existingServiceDesc != null) {
                 existingServiceDesc.setUser(user);
                 existingServiceDesc.setService_descriptor_xml(bytes);
+                existingServiceDesc.setGateway(gateway);
+                existingServiceDesc.setGateway_name(gateway.getGateway_name());
                 serviceDescriptor = em.merge(existingServiceDesc);
             } else {
-                em.merge(serviceDescriptor);
+                em.persist(serviceDescriptor);
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b5f2724/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/StatusResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/StatusResource.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/StatusResource.java
index f821e4d..b67f0b3 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/StatusResource.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/StatusResource.java
@@ -179,6 +179,7 @@ public class StatusResource extends AbstractResource {
             em.persist(status);
             statusId = status.getStatusId();
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b5f2724/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/TaskDetailResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/TaskDetailResource.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/TaskDetailResource.java
index 29b45f9..797d167 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/TaskDetailResource.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/TaskDetailResource.java
@@ -210,6 +210,7 @@ public class TaskDetailResource extends AbstractResource {
                     break;
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);
@@ -438,6 +439,7 @@ public class TaskDetailResource extends AbstractResource {
                     throw new UnsupportedOperationException();
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b5f2724/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserResource.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserResource.java
index 53dd172..2194472 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserResource.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserResource.java
@@ -144,6 +144,7 @@ public class UserResource extends AbstractResource {
                 em.persist(user);
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b5f2724/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserWorkflowResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserWorkflowResource.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserWorkflowResource.java
index c01aa72..547df55 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserWorkflowResource.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserWorkflowResource.java
@@ -137,6 +137,7 @@ public class UserWorkflowResource extends AbstractResource {
                 em.persist(userWorkflow);
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b5f2724/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkerResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkerResource.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkerResource.java
index a818391..312a7bb 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkerResource.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkerResource.java
@@ -130,6 +130,7 @@ public class WorkerResource extends AbstractResource {
                     break;
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e.getMessage());
@@ -183,6 +184,7 @@ public class WorkerResource extends AbstractResource {
                     break;
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             throw new RegistryException(e);
         } finally {
@@ -286,6 +288,7 @@ public class WorkerResource extends AbstractResource {
                     break;
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);
@@ -310,19 +313,23 @@ public class WorkerResource extends AbstractResource {
             em = ResourceUtils.getEntityManager();
             em.getTransaction().begin();
             Gateway_Worker gatewayWorker = new Gateway_Worker();
-            Users users = new Users();
-            users.setUser_name(user);
-            gatewayWorker.setUser(users);
-            Gateway gatewaymodel = new Gateway();
-            gatewaymodel.setGateway_name(gateway.getGatewayName());
-            gatewaymodel.setOwner(gateway.getOwner());
+            Users existingUser = em.find(Users.class, this.user);
+            gatewayWorker.setUser(existingUser);
+            gatewayWorker.setUser_name(existingUser.getUser_name());
+            Gateway gatewaymodel = em.find(Gateway.class, 
gateway.getGatewayName());
             gatewayWorker.setGateway(gatewaymodel);
+            gatewayWorker.setGateway_name(gatewaymodel.getGateway_name());
             if (existingWorker != null) {
+                existingWorker.setUser_name(existingUser.getUser_name());
+                existingWorker.setUser(existingUser);
+                existingWorker.setGateway(gatewaymodel);
+                existingWorker.setGateway_name(gatewaymodel.getGateway_name());
                 gatewayWorker = em.merge(existingWorker);
             } else {
-                em.merge(gatewayWorker);
+                em.persist(gatewayWorker);
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);
@@ -535,6 +542,7 @@ public class WorkerResource extends AbstractResource {
                 result.add(projectResource);
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);
@@ -571,6 +579,7 @@ public class WorkerResource extends AbstractResource {
                 result.add(experimentResource);
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);
@@ -604,6 +613,7 @@ public class WorkerResource extends AbstractResource {
                 result.add(experimentResource);
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b5f2724/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkflowNodeDetailResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkflowNodeDetailResource.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkflowNodeDetailResource.java
index 1fed39c..75c0f49 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkflowNodeDetailResource.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkflowNodeDetailResource.java
@@ -147,6 +147,7 @@ public class WorkflowNodeDetailResource extends 
AbstractResource {
                     break;
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);
@@ -312,6 +313,7 @@ public class WorkflowNodeDetailResource extends 
AbstractResource {
                     throw new UnsupportedOperationException();
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
 //            logger.error(e.getMessage(), e);
             throw new RegistryException(e);
@@ -346,9 +348,10 @@ public class WorkflowNodeDetailResource extends 
AbstractResource {
                 existingNode.setNodeName(nodeName);
                 workflowNodeDetail = em.merge(existingNode);
             } else {
-                em.merge(workflowNodeDetail);
+                em.persist(workflowNodeDetail);
             }
             em.getTransaction().commit();
+            em.close();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

Reply via email to