diff options
Diffstat (limited to 'integrity-audit/src/main/java/org/onap/policy/common/ia/AuditThread.java')
-rw-r--r-- | integrity-audit/src/main/java/org/onap/policy/common/ia/AuditThread.java | 62 |
1 files changed, 36 insertions, 26 deletions
diff --git a/integrity-audit/src/main/java/org/onap/policy/common/ia/AuditThread.java b/integrity-audit/src/main/java/org/onap/policy/common/ia/AuditThread.java index 25335540..03fbdb57 100644 --- a/integrity-audit/src/main/java/org/onap/policy/common/ia/AuditThread.java +++ b/integrity-audit/src/main/java/org/onap/policy/common/ia/AuditThread.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * Integrity Audit * ================================================================================ - * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2021 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,7 +22,6 @@ package org.onap.policy.common.ia; import java.util.Collections; import java.util.Comparator; -import java.util.Date; import java.util.List; import java.util.Properties; import org.onap.policy.common.ia.jpa.IntegrityAuditEntity; @@ -149,10 +148,12 @@ public class AuditThread extends Thread { */ runUntilInterrupted(); + } catch (InterruptedException e) { + handleAuditLoopException(e); + Thread.currentThread().interrupt(); + } catch (Exception e) { - String msg = "AuditThread.run: Could not start audit loop. Exception thrown; message=" + e.getMessage(); - logger.error(MessageCodes.EXCEPTION_ERROR, e, msg); - integrityAudit.setThreadInitialized(false); + handleAuditLoopException(e); } dbDao.destroy(); @@ -160,16 +161,24 @@ public class AuditThread extends Thread { logger.info("AuditThread.run: Exiting"); } + private void handleAuditLoopException(Exception exception) { + String msg = "AuditThread.run: Could not start audit loop. Exception thrown; message=" + exception.getMessage(); + logger.error(MessageCodes.EXCEPTION_ERROR, exception, msg); + integrityAudit.setThreadInitialized(false); + } + private void runUntilInterrupted() throws InterruptedException { - boolean auditCompleted = false; + var auditCompleted = false; - DbAudit dbAudit = new DbAudit(dbDao); + var dbAudit = new DbAudit(dbDao); IntegrityAuditEntity entityCurrentlyDesignated; IntegrityAuditEntity thisEntity; integrityAudit.setThreadInitialized(true); // An exception will set it to false - while (true) { + var interrupted = false; + + while (!interrupted) { try { /* * It may have been awhile since we last cycled through this loop, so refresh @@ -208,16 +217,17 @@ public class AuditThread extends Thread { if (isInterruptedException(e)) { String msg = "AuditThread.run loop - Exception thrown: " + e.getMessage() + "; Stopping."; logger.error(MessageCodes.EXCEPTION_ERROR, e, msg); - break; - } + Thread.currentThread().interrupt(); + interrupted = true; - String msg = "AuditThread.run loop - Exception thrown: " + e.getMessage() - + "; Will try audit again in " + integrityAuditPeriodSeconds + " seconds"; - logger.error(MessageCodes.EXCEPTION_ERROR, e, msg); - // Sleep and try again later - AuditorTime.getInstance().sleep(integrityAuditPeriodSeconds * 1000L); + } else { + String msg = "AuditThread.run loop - Exception thrown: " + e.getMessage() + + "; Will try audit again in " + integrityAuditPeriodSeconds + " seconds"; + logger.error(MessageCodes.EXCEPTION_ERROR, e, msg); + // Sleep and try again later + AuditorTime.getInstance().sleep(integrityAuditPeriodSeconds * 1000L); + } } - } } @@ -345,10 +355,10 @@ public class AuditThread extends Thread { IntegrityAuditEntity thisEntity = null; - int designatedEntityIndex = -1; - int entityIndex = 0; - int priorCandidateIndex = -1; - int subsequentCandidateIndex = -1; + var designatedEntityIndex = -1; + var entityIndex = 0; + var priorCandidateIndex = -1; + var subsequentCandidateIndex = -1; for (IntegrityAuditEntity integrityAuditEntity : integrityAuditEntityList) { @@ -559,7 +569,7 @@ public class AuditThread extends Thread { */ List<IntegrityAuditEntity> integrityAuditEntityList = dbDao.getIntegrityAuditEntities(this.persistenceUnit, this.nodeType); - int listSize = integrityAuditEntityList.size(); + var listSize = integrityAuditEntityList.size(); if (logger.isDebugEnabled()) { logger.debug("getIntegrityAuditEntityList: Got " + listSize + " IntegrityAuditEntity records"); } @@ -632,10 +642,10 @@ public class AuditThread extends Thread { + integrityAuditEntity.getLastUpdated()); } - boolean stale = false; + var stale = false; - Date currentTime = AuditorTime.getInstance().getDate(); - Date lastUpdated = integrityAuditEntity.getLastUpdated(); + var currentTime = AuditorTime.getInstance().getDate(); + var lastUpdated = integrityAuditEntity.getLastUpdated(); /* * If lastUpdated is null, we assume that the audit never ran for that node. @@ -688,8 +698,8 @@ public class AuditThread extends Thread { long timeDifference; - Date currentTime = AuditorTime.getInstance().getDate(); - Date lastUpdated = thisEntity.getLastUpdated(); + var currentTime = AuditorTime.getInstance().getDate(); + var lastUpdated = thisEntity.getLastUpdated(); long lastUpdatedTime = lastUpdated.getTime(); timeDifference = currentTime.getTime() - lastUpdatedTime; |