Fixing event log dir to fall back on storm.local.dir if storm.home is null

Project: http://git-wip-us.apache.org/repos/asf/storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/f3baed0d
Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/f3baed0d
Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/f3baed0d

Branch: refs/heads/1.x-branch
Commit: f3baed0d4bb9c415657dfa97f33519994e991e17
Parents: 8d60961
Author: Arun Mahadevan <[email protected]>
Authored: Mon Feb 22 00:03:29 2016 +0530
Committer: Arun Mahadevan <[email protected]>
Committed: Mon Feb 22 00:04:52 2016 +0530

----------------------------------------------------------------------
 .../storm/metric/FileBasedEventLogger.java      | 22 ++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/f3baed0d/storm-core/src/jvm/org/apache/storm/metric/FileBasedEventLogger.java
----------------------------------------------------------------------
diff --git 
a/storm-core/src/jvm/org/apache/storm/metric/FileBasedEventLogger.java 
b/storm-core/src/jvm/org/apache/storm/metric/FileBasedEventLogger.java
index 076a68c..6a07c0e 100644
--- a/storm-core/src/jvm/org/apache/storm/metric/FileBasedEventLogger.java
+++ b/storm-core/src/jvm/org/apache/storm/metric/FileBasedEventLogger.java
@@ -17,6 +17,7 @@
  */
 package org.apache.storm.metric;
 
+import org.apache.commons.lang.StringUtils;
 import org.apache.storm.Config;
 import org.apache.storm.task.TopologyContext;
 import org.slf4j.Logger;
@@ -77,11 +78,24 @@ public class FileBasedEventLogger implements IEventLogger {
         scheduler.scheduleAtFixedRate(task, FLUSH_INTERVAL_MILLIS, 
FLUSH_INTERVAL_MILLIS, TimeUnit.MILLISECONDS);
     }
 
+    private String getFirstNonNull(String... strings) {
+        for (String str : strings) {
+            if (str != null) {
+                return str;
+            }
+        }
+        return null;
+    }
+
     private String getLogDir(Map stormConf) {
-        String logDir;
-        if ((logDir = System.getProperty("storm.log.dir")) == null
-                && (logDir = (String) stormConf.get("storm.log.dir")) == null) 
{
-            logDir = Paths.get(System.getProperty("storm.home"), 
"logs").toString();
+        String logDir = getFirstNonNull(System.getProperty("storm.log.dir"),
+                                        (String) 
stormConf.get("storm.log.dir"));
+        if (logDir == null) {
+            logDir = 
Paths.get(getFirstNonNull(System.getProperty("storm.home"),
+                                               
System.getProperty("storm.local.dir"),
+                                               (String) 
stormConf.get("storm.local.dir"),
+                                               StringUtils.EMPTY),
+                               "logs").toString();
         }
         return logDir;
     }

Reply via email to