diff options
author | Kevin McKiou <km097d@att.com> | 2017-11-21 13:36:04 -0600 |
---|---|---|
committer | Kevin McKiou <km097d@att.com> | 2017-11-21 13:36:27 -0600 |
commit | 94dc887dd7e31856a2a1950bd4c210e2139fbfa0 (patch) | |
tree | 4c7ce4f79b49f34de62fb7ec5ba32efc8e4944d9 | |
parent | e73c82943d4a1e6dffd7712837d50e58c01bef7b (diff) |
IntegrityMonitor check before commit
Under some conditions the JPA transaction may be already closed
when commit is called in StateManagement. Surround it with a
check to see if the transaction is active, so it will not
generate an error in the log.
Issue-ID: POLICY-484
Change-Id: Id54585e68361a0be9ae8afd7e9ccba2f7eadfe5f
Signed-off-by: Kevin McKiou <km097d@att.com>
-rw-r--r-- | integrity-monitor/src/main/java/org/onap/policy/common/im/StateManagement.java | 56 |
1 files changed, 42 insertions, 14 deletions
diff --git a/integrity-monitor/src/main/java/org/onap/policy/common/im/StateManagement.java b/integrity-monitor/src/main/java/org/onap/policy/common/im/StateManagement.java index cf78b775..637a3042 100644 --- a/integrity-monitor/src/main/java/org/onap/policy/common/im/StateManagement.java +++ b/integrity-monitor/src/main/java/org/onap/policy/common/im/StateManagement.java @@ -129,11 +129,15 @@ public class StateManagement extends Observable { } em.persist(sm); synchronized(FLUSHLOCK){ - et.commit(); + if(et.isActive()){ + et.commit(); + } } } else { synchronized(FLUSHLOCK){ - et.commit(); + if(et.isActive()){ + et.commit(); + } } } @@ -188,7 +192,9 @@ public class StateManagement extends Observable { em.persist(sm); synchronized(FLUSHLOCK){ - et.commit(); + if(et.isActive()){ + et.commit(); + } } setChanged(); notifyObservers(ADMIN_STATE); @@ -243,7 +249,9 @@ public class StateManagement extends Observable { em.persist(sm); synchronized(FLUSHLOCK){ - et.commit(); + if(et.isActive()){ + et.commit(); + } } setChanged(); notifyObservers(ADMIN_STATE); @@ -297,7 +305,9 @@ public class StateManagement extends Observable { em.persist(sm); synchronized(FLUSHLOCK){ - et.commit(); + if(et.isActive()){ + et.commit(); + } } setChanged(); notifyObservers(ADMIN_STATE); @@ -352,7 +362,9 @@ public class StateManagement extends Observable { em.persist(sm); synchronized(FLUSHLOCK){ - et.commit(); + if(et.isActive()){ + et.commit(); + } } setChanged(); notifyObservers(OPERATION_STATE); @@ -405,7 +417,9 @@ public class StateManagement extends Observable { em.persist(sm); synchronized(FLUSHLOCK){ - et.commit(); + if(et.isActive()){ + et.commit(); + } } setChanged(); notifyObservers(OPERATION_STATE); @@ -464,7 +478,9 @@ public class StateManagement extends Observable { em.persist(sm); synchronized(FLUSHLOCK){ - et.commit(); + if(et.isActive()){ + et.commit(); + } } setChanged(); notifyObservers(OPERATION_STATE); @@ -519,7 +535,9 @@ public class StateManagement extends Observable { em.persist(sm); synchronized(FLUSHLOCK){ - et.commit(); + if(et.isActive()){ + et.commit(); + } } setChanged(); notifyObservers(OPERATION_STATE); @@ -574,7 +592,9 @@ public class StateManagement extends Observable { em.persist(sm); synchronized(FLUSHLOCK){ - et.commit(); + if(et.isActive()){ + et.commit(); + } } setChanged(); notifyObservers(OPERATION_STATE); @@ -691,7 +711,9 @@ public class StateManagement extends Observable { em.persist(sm); synchronized(FLUSHLOCK){ - et.commit(); + if(et.isActive()){ + et.commit(); + } } setChanged(); notifyObservers(STANDBY_STATUS); @@ -752,7 +774,9 @@ public class StateManagement extends Observable { em.persist(sm); synchronized(FLUSHLOCK){ - et.commit(); + if(et.isActive()){ + et.commit(); + } } //We don't notify observers because this is assumed to be a remote resource @@ -984,7 +1008,9 @@ public String getOpState() logger.error("getStandbyStatus: resourceName ={} not found in statemanagemententity table", otherResourceName); } synchronized(FLUSHLOCK){ - et.commit(); + if(et.isActive()){ + et.commit(); + } } } catch (Exception e) { logger.error("getStandbyStatus: Caught Exception attempting to get statemanagemententity record, message='{}'", e.getMessage(), e); @@ -1036,7 +1062,9 @@ public String getOpState() em.remove(stateManagementEntity); } synchronized(FLUSHLOCK){ - et.commit(); + if(et.isActive()){ + et.commit(); + } } }catch(Exception ex){ logger.error("StateManagement.deleteAllStateManagementEntities() caught Exception: ", ex); |