X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-persister-feature-adapter%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfigpusherfeature%2Finternal%2FConfigPushingRunnable.java;h=010a27315428f3008f8a794830f9144bf6b21e7b;hp=06c5c920f4ebb4da149e591c14d3c944cd4ccd5b;hb=f43b01b81319959b1907e3e04537f5169e7f33d8;hpb=9b99e3841bb3f703cc72883ef9a5ef00cfa32f04;ds=sidebyside diff --git a/opendaylight/config/config-persister-feature-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/ConfigPushingRunnable.java b/opendaylight/config/config-persister-feature-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/ConfigPushingRunnable.java index 06c5c920f4..010a273154 100644 --- a/opendaylight/config/config-persister-feature-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/ConfigPushingRunnable.java +++ b/opendaylight/config/config-persister-feature-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/ConfigPushingRunnable.java @@ -7,6 +7,8 @@ */ package org.opendaylight.controller.configpusherfeature.internal; +import com.google.common.collect.LinkedHashMultimap; + import java.util.ArrayList; import java.util.List; import java.util.concurrent.BlockingQueue; @@ -20,60 +22,61 @@ import org.opendaylight.controller.config.persist.api.ConfigPusher; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.LinkedHashMultimap; - public class ConfigPushingRunnable implements Runnable { - private static final Logger logger = LoggerFactory.getLogger(ConfigPushingRunnable.class); + private static final Logger LOG = LoggerFactory.getLogger(ConfigPushingRunnable.class); private static final int POLL_TIME = 1; private BlockingQueue queue; private FeatureConfigPusher configPusher; - public ConfigPushingRunnable(ConfigPusher p, FeaturesService f,BlockingQueue q) { - queue = q; - configPusher = new FeatureConfigPusher(p, f); + + public ConfigPushingRunnable(final ConfigPusher configPusher, final FeaturesService featuresService, + final BlockingQueue featureEvents) { + queue = featureEvents; + this.configPusher = new FeatureConfigPusher(configPusher, featuresService); } @Override + @SuppressWarnings("IllegalCatch") public void run() { - List toInstall = new ArrayList(); - FeatureEvent event; - boolean interuppted = false; - while(true) { + List toInstall = new ArrayList<>(); + FeatureEvent event = null; + boolean interrupted = false; + while (true) { try { - if(!interuppted) { - if(toInstall.isEmpty()) { - event = queue.take(); - } else { - event = queue.poll(POLL_TIME, TimeUnit.MILLISECONDS); - } - if(event != null && event.getFeature() !=null) { - processFeatureEvent(event,toInstall); - } - } else if(toInstall.isEmpty()) { - logger.error("ConfigPushingRunnable - exiting"); + if (!interrupted) { + if (toInstall.isEmpty()) { + event = queue.take(); + } else { + event = queue.poll(POLL_TIME, TimeUnit.MILLISECONDS); + } + if (event != null && event.getFeature() != null) { + processFeatureEvent(event, toInstall); + } + } else if (toInstall.isEmpty()) { + LOG.error("ConfigPushingRunnable - exiting"); return; } - } catch (InterruptedException e) { - logger.error("ConfigPushingRunnable - interupted"); - interuppted = true; - } catch (Exception e) { - logger.error("Exception while processing features {}", e); + } catch (final InterruptedException e) { + LOG.error("ConfigPushingRunnable - interrupted"); + interrupted = true; + } catch (final Exception e) { + LOG.error("Exception while processing features {} event {}", toInstall, event, e); } } } - protected void processFeatureEvent(FeatureEvent event, List toInstall) throws InterruptedException, Exception { - if(event.getType() == EventType.FeatureInstalled) { + protected void processFeatureEvent(final FeatureEvent event, final List toInstall) throws Exception { + if (event.getType() == EventType.FeatureInstalled) { toInstall.add(event.getFeature()); - LinkedHashMultimap result = configPusher.pushConfigs(toInstall); + LinkedHashMultimap result = configPusher.pushConfigs(toInstall); toInstall.removeAll(result.keySet()); - } else if(event.getType() == EventType.FeatureUninstalled) { + } else if (event.getType() == EventType.FeatureUninstalled) { toInstall.remove(event.getFeature()); } } - protected void logPushResult(LinkedHashMultimap results) { - for(Feature f:results.keySet()) { - logger.info("Pushed configs for feature {} {}",f,results.get(f)); + protected void logPushResult(final LinkedHashMultimap results) { + for (Feature f : results.keySet()) { + LOG.info("Pushed configs for feature {} {}", f, results.get(f)); } } }