diff --git a/LogParser/src/main/java/org/onap/xacml/parser/ParseLog.java b/LogParser/src/main/java/org/onap/xacml/parser/ParseLog.java
index 259b2cb..5ead822 100644
--- a/LogParser/src/main/java/org/onap/xacml/parser/ParseLog.java
+++ b/LogParser/src/main/java/org/onap/xacml/parser/ParseLog.java
@@ -46,9 +46,8 @@
 import java.util.stream.Stream;
 
 import org.apache.log4j.Logger;
-import org.onap.policy.common.im.AdministrativeStateException;
 import org.onap.policy.common.im.IntegrityMonitor;
-import org.onap.policy.common.im.StandbyStatusException;
+import org.onap.policy.common.im.IntegrityMonitorException;
 import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.utils.CryptoUtils;
 import org.onap.xacml.parser.LogEntryObject.LOGTYPE;
@@ -579,10 +578,8 @@
 		if (im!=null){
 			try {
 				im.startTransaction();
-			} catch (AdministrativeStateException e) {
-				logger.error("Error received" + e);				
-			} catch (StandbyStatusException ex) {
-				logger.error("Error received" + ex);
+			} catch (IntegrityMonitorException e) {
+				logger.error("Error received" + e);
 			}
 		}
 		returnLogValue = pullOutLogValues(line, type);
diff --git a/LogParser/src/test/java/org/onap/xacml/parser/ParseLogTest.java b/LogParser/src/test/java/org/onap/xacml/parser/ParseLogTest.java
index 1f42ac3..62af131 100644
--- a/LogParser/src/test/java/org/onap/xacml/parser/ParseLogTest.java
+++ b/LogParser/src/test/java/org/onap/xacml/parser/ParseLogTest.java
@@ -40,6 +40,7 @@
 import org.mockito.Mockito;
 import org.onap.policy.common.im.AdministrativeStateException;
 import org.onap.policy.common.im.IntegrityMonitor;
+import org.onap.policy.common.im.IntegrityMonitorException;
 import org.onap.policy.common.im.StandbyStatusException;
 import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.common.logging.flexlogger.Logger;
@@ -488,7 +489,7 @@
 		im = Mockito.mock(IntegrityMonitor.class);
 		try {
 			Mockito.doNothing().when(im).startTransaction();
-		} catch (StandbyStatusException | AdministrativeStateException e) {
+		} catch (IntegrityMonitorException e) {
 			fail();
 		}
 		Mockito.doNothing().when(im).endTransaction();
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/XACMLPapServlet.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/XACMLPapServlet.java
index 392c32a..bedc212 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/XACMLPapServlet.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/XACMLPapServlet.java
@@ -64,6 +64,7 @@
 import org.onap.policy.common.im.AdministrativeStateException;
 import org.onap.policy.common.im.ForwardProgressException;
 import org.onap.policy.common.im.IntegrityMonitor;
+import org.onap.policy.common.im.IntegrityMonitorException;
 import org.onap.policy.common.im.IntegrityMonitorProperties;
 import org.onap.policy.common.im.StandbyStatusException;
 import org.onap.policy.common.logging.ONAPLoggingContext;
@@ -557,6 +558,16 @@
 			PolicyLogger.audit("Transaction Failed - See Error.log");
 			setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
 			return;
+		} catch (IntegrityMonitorException e) {
+			String message = "POST interface called for PAP " + papResourceName + " but an exception occurred"
+					+ "\n Exception Message: " + e.getMessage();
+			LOGGER.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message, e);
+			loggingContext.metricEnded();
+			PolicyLogger.metrics("XACMLPapServlet doPost im startTransaction");
+			loggingContext.transactionEnded();
+			PolicyLogger.audit("Transaction Failed - See Error.log");
+			setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+			return;
 		}
 		try {
 			loggingContext.metricStarted();
@@ -825,6 +836,15 @@
 				PolicyLogger.audit("Transaction Failed - See Error.log");
 				setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
 				return;
+			} catch (IntegrityMonitorException e) {
+				String message = "GET interface called for PAP " + papResourceName + " but an exception occurred"
+						+ "\n Exception Message: " + e.getMessage();
+				LOGGER.info(message, e);
+				PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
+				loggingContext.transactionEnded();
+				PolicyLogger.audit("Transaction Failed - See Error.log");
+				setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+				return;
 			}
 			// Request from the API to get the gitPath
 			String apiflag = request.getParameter("apiflag");
@@ -997,7 +1017,7 @@
 			im.startTransaction();
 			loggingContext.metricEnded();
 			PolicyLogger.metrics("XACMLPapServlet doPut im startTransaction");
-		} catch (AdministrativeStateException | StandbyStatusException e) {
+		} catch (IntegrityMonitorException e) {
 			String message = "PUT interface called for PAP " + papResourceName;
 			if (e instanceof AdministrativeStateException) {
 				message += " but it has an Administrative state of "
@@ -1005,6 +1025,8 @@
 			} else if (e instanceof StandbyStatusException) {
 				message += " but it has a Standby Status of "
 					+ im.getStateManager().getStandbyStatus();
+			} else {
+				message += " but an exception occurred";
 
 			}
 			message += "\n Exception Message: " + e.getMessage();
@@ -1279,6 +1301,15 @@
 			PolicyLogger.audit("Transaction Failed - See Error.log");
 			setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
 			return;
+		} catch (IntegrityMonitorException e) {
+			String message = "PUT interface called for PAP " + papResourceName + " but an exception occurred"
+					+ "\n Exception Message: " + e.getMessage();
+			LOGGER.info(message, e);
+			PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
+			loggingContext.transactionEnded();
+			PolicyLogger.audit("Transaction Failed - See Error.log");
+			setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+			return;
 		}
 		loggingContext.metricStarted();
 		XACMLRest.dumpRequest(request);
diff --git a/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/XACMLPdpServlet.java b/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/XACMLPdpServlet.java
index 6082953..567ff2e 100644
--- a/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/XACMLPdpServlet.java
+++ b/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/XACMLPdpServlet.java
@@ -52,6 +52,7 @@
 import org.onap.policy.common.im.AdministrativeStateException;
 import org.onap.policy.common.im.ForwardProgressException;
 import org.onap.policy.common.im.IntegrityMonitor;
+import org.onap.policy.common.im.IntegrityMonitorException;
 import org.onap.policy.common.im.IntegrityMonitorProperties;
 import org.onap.policy.common.im.StandbyStatusException;
 import org.onap.policy.common.logging.ONAPLoggingContext;
@@ -445,7 +446,7 @@
 		try {
 			im.startTransaction();
 		}
-		catch (AdministrativeStateException | StandbyStatusException e) {
+		catch (IntegrityMonitorException e) {
 			String message = e.toString();
 			PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message + e);
 			loggingContext.transactionEnded();
@@ -744,7 +745,7 @@
 		try {
 			im.startTransaction();
 		}
-		catch (AdministrativeStateException | StandbyStatusException e) {
+		catch (IntegrityMonitorException e) {
 			String message = e.toString();
 			PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message);
 			loggingContext.transactionEnded();
@@ -864,7 +865,7 @@
 		try {
 			im.startTransaction();
 		}
-		catch (AdministrativeStateException | StandbyStatusException e) {
+		catch (IntegrityMonitorException e) {
 			String message = e.toString();
 			PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message + e);
 			loggingContext.transactionEnded();
diff --git a/ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/XACMLPdpServletTest.java b/ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/XACMLPdpServletTest.java
index 594b51c..e8747f7 100644
--- a/ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/XACMLPdpServletTest.java
+++ b/ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/XACMLPdpServletTest.java
@@ -42,13 +42,10 @@
 import org.mockito.Mockito;
 import org.onap.policy.common.ia.DbDAO;
 import org.onap.policy.common.ia.IntegrityAuditProperties;
-import org.onap.policy.common.im.AdministrativeStateException;
 import org.onap.policy.common.im.IntegrityMonitor;
-import org.onap.policy.common.im.StandbyStatusException;
+import org.onap.policy.common.im.IntegrityMonitorException;
 import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.common.logging.flexlogger.Logger;
-
-import org.onap.policy.pdp.rest.XACMLPdpServletTest;
 import org.powermock.api.mockito.PowerMockito;
 import org.springframework.mock.web.MockHttpServletResponse;
 import org.springframework.mock.web.MockServletConfig;
@@ -168,7 +165,7 @@
 		
 		try {
 			Mockito.doNothing().when(im).startTransaction();
-		} catch (StandbyStatusException | AdministrativeStateException e) {
+		} catch (IntegrityMonitorException e) {
 			fail();
 		}
 		Mockito.doNothing().when(im).endTransaction();
