Merged r294 from the hyracks_io_management branch

git-svn-id: https://hyracks.googlecode.com/svn/trunk/hyracks@295 123451ca-8445-de46-9d55-352943316053
diff --git a/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/io/FileHandle.java b/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/io/FileHandle.java
index e0e7681..31e9821 100644
--- a/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/io/FileHandle.java
+++ b/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/io/FileHandle.java
@@ -37,6 +37,7 @@
                 break;
 
             case READ_WRITE:
+                fileRef.getFile().getAbsoluteFile().getParentFile().mkdirs();
                 switch (syncMode) {
                     case METADATA_ASYNC_DATA_ASYNC:
                         mode = "rw";
diff --git a/hyracks-control-nc/src/main/java/edu/uci/ics/hyracks/control/nc/io/IOManager.java b/hyracks-control-nc/src/main/java/edu/uci/ics/hyracks/control/nc/io/IOManager.java
index 57174b5..2275d00 100644
--- a/hyracks-control-nc/src/main/java/edu/uci/ics/hyracks/control/nc/io/IOManager.java
+++ b/hyracks-control-nc/src/main/java/edu/uci/ics/hyracks/control/nc/io/IOManager.java
@@ -45,6 +45,7 @@
         workAreaIODevices = new ArrayList<IODeviceHandle>();
         for (IODeviceHandle d : ioDevices) {
             if (d.getWorkAreaPath() != null) {
+                new File(d.getPath(), d.getWorkAreaPath()).mkdirs();
                 workAreaIODevices.add(d);
             }
         }