aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin McKiou <km097d@att.com>2017-11-21 13:36:04 -0600
committerKevin McKiou <km097d@att.com>2017-11-21 13:36:27 -0600
commit94dc887dd7e31856a2a1950bd4c210e2139fbfa0 (patch)
tree4c7ce4f79b49f34de62fb7ec5ba32efc8e4944d9
parente73c82943d4a1e6dffd7712837d50e58c01bef7b (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.java56
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);