You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by mb...@apache.org on 2017/08/15 19:49:43 UTC

[2/3] systemml git commit: [SYSTEMML-1839] Fix NPE on parfor initialization w/o log4j config

[SYSTEMML-1839] Fix NPE on parfor initialization w/o log4j config

This patch fixes a null pointer exception on parfor static
initialization which expected a set log level. We now properly probe the
log level and assign a default of INFO if nothing was setup.


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

Branch: refs/heads/master
Commit: 89632b5ea8063d8959dcab3ec3a774f8883f2b62
Parents: 9a275ac
Author: Matthias Boehm <mb...@gmail.com>
Authored: Mon Aug 14 20:15:32 2017 -0700
Committer: Matthias Boehm <mb...@gmail.com>
Committed: Tue Aug 15 12:48:27 2017 -0700

----------------------------------------------------------------------
 .../org/apache/sysml/hops/OptimizerUtils.java   |  7 +++++++
 .../sysml/parser/ParForStatementBlock.java      | 20 ++++++++++----------
 2 files changed, 17 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/systemml/blob/89632b5e/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
index a0a36d5..3b98a34 100644
--- a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
+++ b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
@@ -24,6 +24,8 @@ import java.util.HashMap;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
 import org.apache.sysml.api.DMLScript;
 import org.apache.sysml.api.DMLScript.RUNTIME_PLATFORM;
 import org.apache.sysml.conf.CompilerConfig;
@@ -933,6 +935,11 @@ public class OptimizerUtils
 		return ret;
 	}
 	
+	public static Level getDefaultLogLevel() {
+		Level log = Logger.getRootLogger().getLevel();
+		return (log != null) ? log : Level.INFO;
+	}
+	
 	////////////////////////
 	// Sparsity Estimates //
 	////////////////////////

http://git-wip-us.apache.org/repos/asf/systemml/blob/89632b5e/src/main/java/org/apache/sysml/parser/ParForStatementBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/ParForStatementBlock.java b/src/main/java/org/apache/sysml/parser/ParForStatementBlock.java
index 4dc06bd..8efbc9f 100644
--- a/src/main/java/org/apache/sysml/parser/ParForStatementBlock.java
+++ b/src/main/java/org/apache/sysml/parser/ParForStatementBlock.java
@@ -128,18 +128,18 @@ public class ParForStatementBlock extends ForStatementBlock
 		_paramDefaults.put( EXEC_MODE,         String.valueOf(PExecMode.LOCAL) );
 		_paramDefaults.put( OPT_MODE,          String.valueOf(POptMode.RULEBASED) );
 		_paramDefaults.put( PROFILE,           "0" );
-		_paramDefaults.put( OPT_LOG,           Logger.getRootLogger().getLevel().toString() );
+		_paramDefaults.put( OPT_LOG,           OptimizerUtils.getDefaultLogLevel().toString() );
 		
 		_paramDefaults2 = new HashMap<String, String>(); //OPT_MODE always specified
-		_paramDefaults2.put( CHECK,             "1" );
-		_paramDefaults2.put( PAR,               "-1" );
-		_paramDefaults2.put( TASK_PARTITIONER,  String.valueOf(PTaskPartitioner.UNSPECIFIED) );
-		_paramDefaults2.put( TASK_SIZE,         "-1" );
-		_paramDefaults2.put( DATA_PARTITIONER,  String.valueOf(PDataPartitioner.UNSPECIFIED) );
-		_paramDefaults2.put( RESULT_MERGE,      String.valueOf(PResultMerge.UNSPECIFIED) );
-		_paramDefaults2.put( EXEC_MODE,         String.valueOf(PExecMode.UNSPECIFIED) );
-		_paramDefaults2.put( PROFILE,           "0" );
-		_paramDefaults2.put( OPT_LOG,           Logger.getRootLogger().getLevel().toString() );
+		_paramDefaults2.put( CHECK,            "1" );
+		_paramDefaults2.put( PAR,              "-1" );
+		_paramDefaults2.put( TASK_PARTITIONER, String.valueOf(PTaskPartitioner.UNSPECIFIED) );
+		_paramDefaults2.put( TASK_SIZE,        "-1" );
+		_paramDefaults2.put( DATA_PARTITIONER, String.valueOf(PDataPartitioner.UNSPECIFIED) );
+		_paramDefaults2.put( RESULT_MERGE,     String.valueOf(PResultMerge.UNSPECIFIED) );
+		_paramDefaults2.put( EXEC_MODE,        String.valueOf(PExecMode.UNSPECIFIED) );
+		_paramDefaults2.put( PROFILE,          "0" );
+		_paramDefaults2.put( OPT_LOG,          OptimizerUtils.getDefaultLogLevel().toString() );
 		
 		_idSeq = new IDSequence();
 		_idSeqfn = new IDSequence();