FLUME-1392. Inactive channels get added to source channels list causing NPE.
(Hari Shreedharan via Will McQueen) git-svn-id: https://svn.apache.org/repos/asf/flume/trunk@1366581 13f79535-47bb-0310-9956-ffa450edef68 Project: http://git-wip-us.apache.org/repos/asf/flume/repo Commit: http://git-wip-us.apache.org/repos/asf/flume/commit/4f8a537e Tree: http://git-wip-us.apache.org/repos/asf/flume/tree/4f8a537e Diff: http://git-wip-us.apache.org/repos/asf/flume/diff/4f8a537e Branch: refs/heads/cdh-1.2.0+24_intuit Commit: 4f8a537e60eb0921360deaca26e0a69e5acfcf25 Parents: 04bd30e Author: Will McQueen <[email protected]> Authored: Sat Jul 28 01:46:01 2012 +0000 Committer: Hari Shreedharan <[email protected]> Committed: Fri Sep 7 13:07:37 2012 -0700 ---------------------------------------------------------------------- .../org/apache/flume/conf/FlumeConfiguration.java | 14 ++++++++++++-- 1 files changed, 12 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flume/blob/4f8a537e/flume-ng-configuration/src/main/java/org/apache/flume/conf/FlumeConfiguration.java ---------------------------------------------------------------------- diff --git a/flume-ng-configuration/src/main/java/org/apache/flume/conf/FlumeConfiguration.java b/flume-ng-configuration/src/main/java/org/apache/flume/conf/FlumeConfiguration.java index 739e12d..9b209e8 100644 --- a/flume-ng-configuration/src/main/java/org/apache/flume/conf/FlumeConfiguration.java +++ b/flume-ng-configuration/src/main/java/org/apache/flume/conf/FlumeConfiguration.java @@ -551,6 +551,12 @@ public class FlumeConfiguration { channels.addAll(srcConf.getChannels()); } channels.retainAll(channelSet); + if(channels.isEmpty()){ + throw new ConfigurationException( + "No Channels configured for " + sourceName); + } + srcContext.put(BasicConfigurationConstants.CONFIG_CHANNELS, + this.getSpaceDelimitedList(channels)); } if ((configSpecified && srcConf.isNotFoundConfigClass()) || !configSpecified) { @@ -655,6 +661,10 @@ public class FlumeConfiguration { sinkConf.configure(sinkContext); } + if(!channelSet.contains(sinkConf.getChannel())){ + throw new ConfigurationException("Channel " + + sinkConf.getChannel() + " not in active set."); + } if ((configSpecified && sinkConf.isNotFoundConfigClass()) || !configSpecified) { newContextMap.put(sinkName, sinkContext); @@ -665,8 +675,8 @@ public class FlumeConfiguration { } catch (ConfigurationException e) { iter.remove(); if (sinkConf != null) errorList.addAll(sinkConf.getErrors()); - logger.warn("Configuration empty for: " + sinkName + ".Removed."); - + logger.warn("Configuration for : " + sinkName + + " has errors, and will be removed: ", e); } } // Filter out any sinks that have invalid channel
