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+")));