From 60c57083ec880ae5702c4b50207a501c274d17c3 Mon Sep 17 00:00:00 2001 From: Dave Hladky Date: Thu, 24 Oct 2013 09:32:41 -0500 Subject: [PATCH] Issue #2469 Refined deletion of adhoc subs. Former-commit-id: f6763481a24f69b5a4554662a629ae8f41d3d2ba [formerly e02868bf2a8317b3b0ca27da69678979c5e44840] [formerly 988bb90523b267f29aa14c1cae8b3311943e8a6e] [formerly 6b5543501a12badcd497c5c975eec2f067fb8812 [formerly 988bb90523b267f29aa14c1cae8b3311943e8a6e [formerly f8d93b233f32623864f86edf822b77b68aa5e0a0]]] Former-commit-id: 6b5543501a12badcd497c5c975eec2f067fb8812 Former-commit-id: 14b9d536bae75aa52c4b4574d3c9332befc403b5 [formerly 14ea0393a17fcbddfe45396a8d835b610063db1e] Former-commit-id: 05c2ce9bc32f5db0e354e276fa4755182afeb535 --- .../adhoc/AdhocSubscriptionCleaner.java | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.retrieval/src/com/raytheon/uf/edex/datadelivery/retrieval/adhoc/AdhocSubscriptionCleaner.java b/edexOsgi/com.raytheon.uf.edex.datadelivery.retrieval/src/com/raytheon/uf/edex/datadelivery/retrieval/adhoc/AdhocSubscriptionCleaner.java index 361d628c67..2c173784c7 100644 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.retrieval/src/com/raytheon/uf/edex/datadelivery/retrieval/adhoc/AdhocSubscriptionCleaner.java +++ b/edexOsgi/com.raytheon.uf.edex.datadelivery.retrieval/src/com/raytheon/uf/edex/datadelivery/retrieval/adhoc/AdhocSubscriptionCleaner.java @@ -52,6 +52,7 @@ import com.raytheon.uf.edex.database.purge.PurgeRuleSet; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * Oct 11, 2013 2460 dhladky Initial creation + * Oct 23, 2013 2469 dhladky Refined the time check and accommodation for lack of purge rules. * * * @@ -63,6 +64,8 @@ public class AdhocSubscriptionCleaner { private static final IUFStatusHandler statusHandler = UFStatus .getHandler(AdhocSubscriptionCleaner.class); + + private static final String DEFAULT_RULE = "00-12:00:00"; public AdhocSubscriptionCleaner() { @@ -150,17 +153,29 @@ public class AdhocSubscriptionCleaner { if (purgeRuleSet != null) { List rules = purgeRuleSet.getRules(); + // if no rules exist, create a default, 12 hours + if (rules.isEmpty()) { + rules = new ArrayList(); + PurgeRule rule = new PurgeRule(); + rule.setPeriod(DEFAULT_RULE); + rules.add(rule); + } // Go over all of the purge rules for each sub - for (PurgeRule rule: rules) { - // use current system date/time - long timeCheck = TimeUtil.newDate().getTime(); - Date expireDate = new Date(timeCheck + rule.getPeriodInMillis()); - - // check rule against creation time of this sub - if (adhoc.getTime().getEnd().before(expireDate)) { - if (!subsToDelete.contains(adhoc)) { - subsToDelete.add(adhoc); + for (PurgeRule rule : rules) { + // use a valid rule + if (rule.getPeriodInMillis() != 0) { + // use current system date/time + Date compareTime = TimeUtil.newDate(); + Date expireDate = new Date(adhoc.getTime() + .getStart().getTime() + + rule.getPeriodInMillis()); + + if (expireDate.before(compareTime)) { + if (!subsToDelete.contains(adhoc)) { + subsToDelete.add(adhoc); + break; + } } } }