You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flume.apache.org by ar...@apache.org on 2012/04/27 19:02:02 UTC
svn commit: r1331502 -
/incubator/flume/trunk/flume-ng-configuration/src/main/java/org/apache/flume/conf/FlumeConfiguration.java
Author: arvind
Date: Fri Apr 27 17:02:02 2012
New Revision: 1331502
URL: http://svn.apache.org/viewvc?rev=1331502&view=rev
Log:
FLUME-1156. Empty source list causes NPE during configuration.
(Hari Shreedharan via Arvind Prabhakar)
Modified:
incubator/flume/trunk/flume-ng-configuration/src/main/java/org/apache/flume/conf/FlumeConfiguration.java
Modified: incubator/flume/trunk/flume-ng-configuration/src/main/java/org/apache/flume/conf/FlumeConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/flume/trunk/flume-ng-configuration/src/main/java/org/apache/flume/conf/FlumeConfiguration.java?rev=1331502&r1=1331501&r2=1331502&view=diff
==============================================================================
--- incubator/flume/trunk/flume-ng-configuration/src/main/java/org/apache/flume/conf/FlumeConfiguration.java (original)
+++ incubator/flume/trunk/flume-ng-configuration/src/main/java/org/apache/flume/conf/FlumeConfiguration.java Fri Apr 27 17:02:02 2012
@@ -472,6 +472,16 @@ public class FlumeConfiguration {
}
private Set<String> validateSources(Set<String> channelSet) {
+ //Arrays.split() call will throw NPE if the sources string is empty
+ if(sources == null || sources.isEmpty()){
+ logger.warn("Agent configuration for '" + agentName
+ + "' has no sources.");
+ errorList.add(new FlumeConfigurationError(agentName,
+ FlumeConfiguration.SOURCES,
+ FlumeConfigurationErrorType.PROPERTY_VALUE_NULL,
+ ErrorOrWarning.WARNING));
+ return new HashSet<String>();
+ }
Set<String> sourceSet =
new HashSet<String>(Arrays.asList(sources.split("\\s+")));
Map<String, Context> newContextMap = new HashMap<String, Context>();
@@ -564,8 +574,14 @@ public class FlumeConfiguration {
Map<String, Context> newContextMap = new HashMap<String, Context>();
Set<String> sinkSet;
SinkConfiguration sinkConf = null;
- if (sinks == null) {
- sinkSet = new HashSet<String>();
+ if (sinks == null || sinks.isEmpty()) {
+ logger.warn("Agent configuration for '" + agentName
+ + "' has no sinks.");
+ errorList.add(new FlumeConfigurationError(agentName,
+ FlumeConfiguration.SINKS,
+ FlumeConfigurationErrorType.PROPERTY_VALUE_NULL,
+ ErrorOrWarning.WARNING));
+ return new HashSet<String>();
} else {
sinkSet =
new HashSet<String>(Arrays.asList(sinks.split("\\s+")));