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();