[SYSTEMML-1518] Fix corrupted input file names in old/new mlcontext

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

Branch: refs/heads/master
Commit: 55e46e7cbeb46073d5d2f19fc4c3b59bdc01c7cb
Parents: b70ee45
Author: Matthias Boehm <[email protected]>
Authored: Fri Apr 14 01:04:22 2017 -0700
Committer: Matthias Boehm <[email protected]>
Committed: Fri Apr 14 12:46:39 2017 -0700

----------------------------------------------------------------------
 src/main/java/org/apache/sysml/api/MLContext.java       | 6 +++---
 src/main/java/org/apache/sysml/hops/OptimizerUtils.java | 6 +++++-
 src/main/java/org/apache/sysml/lops/compile/Dag.java    | 6 +++++-
 3 files changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/55e46e7c/src/main/java/org/apache/sysml/api/MLContext.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/MLContext.java 
b/src/main/java/org/apache/sysml/api/MLContext.java
index 85827da..809776a 100644
--- a/src/main/java/org/apache/sysml/api/MLContext.java
+++ b/src/main/java/org/apache/sysml/api/MLContext.java
@@ -518,7 +518,7 @@ public class MLContext {
                if( format.equals("csv") ) {
                        int blksz = ConfigurationManager.getBlocksize();
                        MatrixCharacteristics mc = new 
MatrixCharacteristics(rlen, clen, blksz, blksz, nnz);
-                       mo = new MatrixObject(ValueType.DOUBLE, null, new 
MatrixFormatMetaData(mc, OutputInfo.CSVOutputInfo, InputInfo.CSVInputInfo));
+                       mo = new MatrixObject(ValueType.DOUBLE, 
OptimizerUtils.getUniqueTempFileName(), new MatrixFormatMetaData(mc, 
OutputInfo.CSVOutputInfo, InputInfo.CSVInputInfo));
                }
                else if( format.equals("text") ) {
                        if(rlen == -1 || clen == -1) {
@@ -526,7 +526,7 @@ public class MLContext {
                        }
                        int blksz = ConfigurationManager.getBlocksize();
                        MatrixCharacteristics mc = new 
MatrixCharacteristics(rlen, clen, blksz, blksz, nnz);
-                       mo = new MatrixObject(ValueType.DOUBLE, null, new 
MatrixFormatMetaData(mc, OutputInfo.TextCellOutputInfo, 
InputInfo.TextCellInputInfo));
+                       mo = new MatrixObject(ValueType.DOUBLE, 
OptimizerUtils.getUniqueTempFileName(), new MatrixFormatMetaData(mc, 
OutputInfo.TextCellOutputInfo, InputInfo.TextCellInputInfo));
                }
                else if( format.equals("mm") ) {
                        // TODO: Handle matrix market
@@ -588,7 +588,7 @@ public class MLContext {
                        if(rlen == -1 || clen == -1) {
                                throw new DMLRuntimeException("The metadata is 
required in registerInput for format:" + format);
                        }
-                       fo = new FrameObject(null, new MatrixFormatMetaData(mc, 
OutputInfo.TextCellOutputInfo, InputInfo.TextCellInputInfo));
+                       fo = new 
FrameObject(OptimizerUtils.getUniqueTempFileName(), new 
MatrixFormatMetaData(mc, OutputInfo.TextCellOutputInfo, 
InputInfo.TextCellInputInfo));
                }
                else {
                        

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/55e46e7c/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 1a959b6..3691897 100644
--- a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
+++ b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
@@ -41,6 +41,7 @@ import org.apache.sysml.parser.Expression.ValueType;
 import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.LocalVariableMap;
 import org.apache.sysml.runtime.controlprogram.context.SparkExecutionContext;
+import org.apache.sysml.runtime.controlprogram.parfor.ProgramConverter;
 import 
org.apache.sysml.runtime.controlprogram.parfor.stat.InfrastructureAnalyzer;
 import org.apache.sysml.runtime.functionobjects.IntegerDivide;
 import org.apache.sysml.runtime.functionobjects.Modulus;
@@ -885,7 +886,10 @@ public class OptimizerUtils
         * @return unique temp file name
         */
        public static String getUniqueTempFileName() {
-               return new Dag<Lop>().getNextUniqueFilename();
+               return ConfigurationManager.getScratchSpace()
+                       + Lop.FILE_SEPARATOR + Lop.PROCESS_PREFIX + 
DMLScript.getUUID()
+                       + Lop.FILE_SEPARATOR + 
ProgramConverter.CP_ROOT_THREAD_ID + Lop.FILE_SEPARATOR 
+                       + Dag.getNextUniqueFilenameSuffix();
        }
 
        public static boolean allowsToFilterEmptyBlockOutputs( Hop hop ) 

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/55e46e7c/src/main/java/org/apache/sysml/lops/compile/Dag.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/compile/Dag.java 
b/src/main/java/org/apache/sysml/lops/compile/Dag.java
index 71171d0..5816f3f 100644
--- a/src/main/java/org/apache/sysml/lops/compile/Dag.java
+++ b/src/main/java/org/apache/sysml/lops/compile/Dag.java
@@ -205,8 +205,12 @@ public class Dag<N extends Lop>
                return scratchFilePath;
        }
 
+       public static String getNextUniqueFilenameSuffix() {
+               return "temp" + job_id.getNextID();
+       }
+       
        public String getNextUniqueFilename() {
-               return getFilePath() + "temp" + job_id.getNextID();
+               return getFilePath() + getNextUniqueFilenameSuffix();
        }
        
        public static String getNextUniqueVarname(DataType dt) {

Reply via email to