From 3055830ae1d34181cb55e9173a0dec85a06d8f0d Mon Sep 17 00:00:00 2001 From: Brian Clements Date: Thu, 15 May 2014 15:17:33 -0500 Subject: [PATCH] Omaha #2536 fix TAF period clone issue taf period values may be null, copy must account for that Former-commit-id: 6587ea9f4c01d592996fddd5bbfd0c029071d48f [formerly 51fec9906d4221595995c4b54a6affad420f6739] Former-commit-id: 2a362cd0e1aad43e0f50d4b76d3f4265d4ef02a5 --- .../raytheon/edex/plugin/taf/common/TafPeriod.java | 9 +++++---- .../plugin/taf/decoder/TAFChangeGroupFactory.java | 7 ++++--- .../edex/plugin/taf/decoder/TAFParser.java | 12 ++++++------ .../ncep/common/dataplugin/nctaf/NcTafPeriod.java | 7 +++---- .../nctaf/decoder/NcTafChangeGroupFactory.java | 14 ++++++++------ 5 files changed, 26 insertions(+), 23 deletions(-) diff --git a/edexOsgi/com.raytheon.edex.plugin.taf/src/com/raytheon/edex/plugin/taf/common/TafPeriod.java b/edexOsgi/com.raytheon.edex.plugin.taf/src/com/raytheon/edex/plugin/taf/common/TafPeriod.java index 44b0457599..bd315aef7f 100644 --- a/edexOsgi/com.raytheon.edex.plugin.taf/src/com/raytheon/edex/plugin/taf/common/TafPeriod.java +++ b/edexOsgi/com.raytheon.edex.plugin.taf/src/com/raytheon/edex/plugin/taf/common/TafPeriod.java @@ -115,10 +115,11 @@ public class TafPeriod implements Serializable { */ public static TafPeriod copy(TafPeriod period) { TafPeriod periodCopy = new TafPeriod(); - periodCopy.startDate = (Calendar) period.startDate.clone(); - periodCopy.transitionEndDate = (Calendar) period.transitionEndDate - .clone(); - periodCopy.endDate = (Calendar) period.endDate.clone(); + /* these may be null */ + periodCopy.startDate = TimeUtil.newCalendar(period.startDate); + periodCopy.transitionEndDate = TimeUtil + .newCalendar(period.transitionEndDate); + periodCopy.endDate = TimeUtil.newCalendar(period.endDate); return periodCopy; } diff --git a/edexOsgi/com.raytheon.edex.plugin.taf/src/com/raytheon/edex/plugin/taf/decoder/TAFChangeGroupFactory.java b/edexOsgi/com.raytheon.edex.plugin.taf/src/com/raytheon/edex/plugin/taf/decoder/TAFChangeGroupFactory.java index 8db9ea60d4..27ca98f5b9 100644 --- a/edexOsgi/com.raytheon.edex.plugin.taf/src/com/raytheon/edex/plugin/taf/decoder/TAFChangeGroupFactory.java +++ b/edexOsgi/com.raytheon.edex.plugin.taf/src/com/raytheon/edex/plugin/taf/decoder/TAFChangeGroupFactory.java @@ -583,12 +583,13 @@ public class TAFChangeGroupFactory { period1 = group1.getTafChangePeriod(); period2 = group2.getTafChangePeriod(); - period1.setEndDate((Calendar) period2.getStartDate() - .clone()); + period1.setEndDate(TimeUtil.newCalendar(period2 + .getStartDate())); } // The last group gets the TAF end datetime. - period2.setEndDate((Calendar) validPeriod.getEndDate().clone()); + period2.setEndDate(TimeUtil.newCalendar(validPeriod + .getEndDate())); } record.setIssue_time(issueTime.getTime()); diff --git a/edexOsgi/com.raytheon.edex.plugin.taf/src/com/raytheon/edex/plugin/taf/decoder/TAFParser.java b/edexOsgi/com.raytheon.edex.plugin.taf/src/com/raytheon/edex/plugin/taf/decoder/TAFParser.java index 0f4c555b90..57749f03c7 100644 --- a/edexOsgi/com.raytheon.edex.plugin.taf/src/com/raytheon/edex/plugin/taf/decoder/TAFParser.java +++ b/edexOsgi/com.raytheon.edex.plugin.taf/src/com/raytheon/edex/plugin/taf/decoder/TAFParser.java @@ -152,10 +152,10 @@ public class TAFParser { int currGroup = 0; for (String grp : tafGroups) { - Calendar cStart = (Calendar) validPeriod.getStartDate() - .clone(); - Calendar cStop = (Calendar) validPeriod.getEndDate() - .clone(); + Calendar cStart = TimeUtil.newCalendar(validPeriod + .getStartDate()); + Calendar cStop = TimeUtil.newCalendar(validPeriod + .getEndDate()); TafPeriod tPeriod = new TafPeriod(cStart, cStop); ChangeGroup group = new ChangeGroup(grp, tPeriod); @@ -194,8 +194,8 @@ public class TAFParser { period1 = group1.getTafChangePeriod(); period2 = group2.getTafChangePeriod(); - period1.setEndDate((Calendar) period2 - .getStartDate().clone()); + period1.setEndDate(TimeUtil.newCalendar(period2 + .getStartDate())); } period2.setEndDate((Calendar) validPeriod.getEndDate() diff --git a/ncep/gov.noaa.nws.ncep.common.dataplugin.nctaf/src/gov/noaa/nws/ncep/common/dataplugin/nctaf/NcTafPeriod.java b/ncep/gov.noaa.nws.ncep.common.dataplugin.nctaf/src/gov/noaa/nws/ncep/common/dataplugin/nctaf/NcTafPeriod.java index 2e20987196..eaff257907 100644 --- a/ncep/gov.noaa.nws.ncep.common.dataplugin.nctaf/src/gov/noaa/nws/ncep/common/dataplugin/nctaf/NcTafPeriod.java +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.nctaf/src/gov/noaa/nws/ncep/common/dataplugin/nctaf/NcTafPeriod.java @@ -102,10 +102,9 @@ public class NcTafPeriod implements Serializable { */ public static NcTafPeriod copy(NcTafPeriod period) { NcTafPeriod periodCopy = new NcTafPeriod(); - periodCopy.startDate = (Calendar) period.startDate.clone(); - periodCopy.transitionEndDate = (Calendar) period.transitionEndDate - .clone(); - periodCopy.endDate = (Calendar) period.endDate.clone(); + periodCopy.startDate = TimeUtil.newCalendar(period.startDate); + periodCopy.transitionEndDate = TimeUtil.newCalendar(period.transitionEndDate); + periodCopy.endDate = TimeUtil.newCalendar(period.endDate); return periodCopy; } diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.nctaf/src/gov/noaa/nws/ncep/edex/plugin/nctaf/decoder/NcTafChangeGroupFactory.java b/ncep/gov.noaa.nws.ncep.edex.plugin.nctaf/src/gov/noaa/nws/ncep/edex/plugin/nctaf/decoder/NcTafChangeGroupFactory.java index 9f37797663..b9ecb63945 100644 --- a/ncep/gov.noaa.nws.ncep.edex.plugin.nctaf/src/gov/noaa/nws/ncep/edex/plugin/nctaf/decoder/NcTafChangeGroupFactory.java +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.nctaf/src/gov/noaa/nws/ncep/edex/plugin/nctaf/decoder/NcTafChangeGroupFactory.java @@ -527,12 +527,13 @@ public class NcTafChangeGroupFactory { period1 = group1.getTafChangePeriod(); period2 = group2.getTafChangePeriod(); - period1.setEndDate((Calendar) period2.getStartDate() - .clone()); + period1.setEndDate(TimeUtil.newCalendar(period2 + .getStartDate())); } // The last group gets the TAF end datetime. - period2.setEndDate((Calendar) validPeriod.getEndDate().clone()); + period2.setEndDate(TimeUtil.newCalendar(validPeriod + .getEndDate())); } record.setIssue_time(issueTime.getTime()); @@ -642,12 +643,13 @@ public class NcTafChangeGroupFactory { period1 = group1.getTafChangePeriod(); period2 = group2.getTafChangePeriod(); - period1.setEndDate((Calendar) period2.getStartDate() - .clone()); + period1.setEndDate(TimeUtil.newCalendar(period2 + .getStartDate())); } // The last group gets the TAF end datetime. - period2.setEndDate((Calendar) validPeriod.getEndDate().clone()); + period2.setEndDate(TimeUtil.newCalendar(validPeriod + .getEndDate())); } record.setIssue_time(issueTime.getTime());