From be438c6fec85d6cc3ace834c1e42da9c4d0410f6 Mon Sep 17 00:00:00 2001 From: Mike Duff Date: Wed, 27 Mar 2013 10:38:59 -0500 Subject: [PATCH] Issue #1834 - Filter config file reads for xml only, wrap unmarshalling and log errors Change-Id: I23829b764e1f52e9dee1a1d9701d219e949eb9fa Former-commit-id: 0e1b566dd120505b74a55fe0575ee109e6f593c9 [formerly 1beb6e4fa5065e4b4daa26f36dcfee355ae53efb] [formerly 1958700112d20f27f73507c7d16ec0b917a72bf3] [formerly 302dbf2cfbf1e6d86acef4a3852cc18b591f7451 [formerly 1958700112d20f27f73507c7d16ec0b917a72bf3 [formerly 5304de6fff49f3db7a3b46427077c7d2d9c0b3f9]]] Former-commit-id: 302dbf2cfbf1e6d86acef4a3852cc18b591f7451 Former-commit-id: 44a7dc0c858099a53c302c46a726f699843c6b9e [formerly 3d1c1b146cf35e8b1273207e4199f4a896d4c717] Former-commit-id: c143b356ef5bd698aecd503044478029c649bfba --- .../uf/edex/stats/util/ConfigLoader.java | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/edexOsgi/com.raytheon.uf.edex.stats/src/com/raytheon/uf/edex/stats/util/ConfigLoader.java b/edexOsgi/com.raytheon.uf.edex.stats/src/com/raytheon/uf/edex/stats/util/ConfigLoader.java index 9f7629b1f0..551610480c 100644 --- a/edexOsgi/com.raytheon.uf.edex.stats/src/com/raytheon/uf/edex/stats/util/ConfigLoader.java +++ b/edexOsgi/com.raytheon.uf.edex.stats/src/com/raytheon/uf/edex/stats/util/ConfigLoader.java @@ -37,6 +37,7 @@ import com.raytheon.uf.common.localization.LocalizationContext; import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType; import com.raytheon.uf.common.localization.LocalizationFile; import com.raytheon.uf.common.localization.PathManagerFactory; +import com.raytheon.uf.common.localization.exception.LocalizationException; import com.raytheon.uf.common.serialization.JAXBManager; import com.raytheon.uf.common.stats.xml.StatisticsAggregate; import com.raytheon.uf.common.stats.xml.StatisticsConfig; @@ -44,6 +45,7 @@ import com.raytheon.uf.common.stats.xml.StatisticsEvent; import com.raytheon.uf.common.stats.xml.StatisticsGroup; import com.raytheon.uf.common.status.IUFStatusHandler; import com.raytheon.uf.common.status.UFStatus; +import com.raytheon.uf.common.status.UFStatus.Priority; import com.raytheon.uf.common.util.ReflectionException; import com.raytheon.uf.common.util.ReflectionUtil; @@ -59,6 +61,8 @@ import com.raytheon.uf.common.util.ReflectionUtil; * Nov 07, 2012 1317 mpduff Update config files. * Nov 29, 2012 1350 rjpeter Updated to static, fixed localization, increased validation. * Jan 15, 2013 1487 djohnson Make validate() static and public, so it can be run independently. + * Mar 27, 2013 1834 mpduff Filter for xml files on localization file read, wrap unmarshall and + * log error if one occurs * * * @author jsanchez @@ -123,11 +127,12 @@ public class ConfigLoader { LocalizationContext[] searchContext = pm .getLocalSearchHierarchy(LocalizationType.COMMON_STATIC); Map statConfs = new HashMap(); + String[] extensions = new String[] { ".xml" }; // grab all stats from contexts, allowing overwrite by name for (LocalizationContext ctx : searchContext) { LocalizationFile[] localizationFiles = pm.listFiles(ctx, STATS_DIR, - null, false, true); + extensions, false, true); for (LocalizationFile lf : localizationFiles) { String name = lf.getName(); if (!statConfs.containsKey(name)) { @@ -142,13 +147,18 @@ public class ConfigLoader { Map myEvents = new HashMap(); for (LocalizationFile lf : statConfs.values()) { - StatisticsConfig config = lf.jaxbUnmarshal( - StatisticsConfig.class, jaxbManager); - if (config != null) { - validate(myEvents, config); - if (!config.getEvents().isEmpty()) { - myConfigurations.add(config); + try { + StatisticsConfig config = lf.jaxbUnmarshal( + StatisticsConfig.class, jaxbManager); + if (config != null) { + validate(myEvents, config); + if (!config.getEvents().isEmpty()) { + myConfigurations.add(config); + } } + } catch (LocalizationException e) { + statusHandler.handle(Priority.PROBLEM, + "Unable to open file [" + lf.getName() + "]", e); } }