Fix for issue 315 (reviewed by Sattam)

git-svn-id: https://asterixdb.googlecode.com/svn/branches/asterix_lsm_stabilization@1523 eaa15691-b419-025a-1212-ee371bd00084
diff --git a/asterix-app/src/test/resources/runtimets/queries/load/issue315_query/issue315_query.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/load/issue315_query/issue315_query.1.ddl.aql
new file mode 100644
index 0000000..b8dd663
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/load/issue315_query/issue315_query.1.ddl.aql
@@ -0,0 +1,18 @@
+/*
+ * Description  : Create and load a dataset but provide an invalid path argument with a missing ':'
+ * Expected Res : Failure
+ * Date         : 5 Apr 2013
+ */
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type Schema as closed{
+id: int32,
+age: int32,
+name: string
+}
+
+create dataset onektup(Schema)
+primary key id;
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/load/issue315_query/issue315_query.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/load/issue315_query/issue315_query.2.update.aql
new file mode 100644
index 0000000..27d8215
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/load/issue315_query/issue315_query.2.update.aql
@@ -0,0 +1,10 @@
+/*
+ * Description  : Create and load a dataset but provide an invalid path with a missing ':'
+ * Expected Res : Failure
+ * Date         : 5 Apr 2013
+ */
+use dataverse test;
+
+load dataset onektup 
+using localfs(("path"="nc1///tmp/one.adm"));
+
diff --git a/asterix-app/src/test/resources/runtimets/testsuite.xml b/asterix-app/src/test/resources/runtimets/testsuite.xml
index f6b3192..b730b41 100644
--- a/asterix-app/src/test/resources/runtimets/testsuite.xml
+++ b/asterix-app/src/test/resources/runtimets/testsuite.xml
@@ -4052,6 +4052,12 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="load">
+      <compilation-unit name="issue315_query">
+        <output-dir compare="Text">none</output-dir>
+        <expected-error>edu.uci.ics.asterix.common.exceptions.AsterixException</expected-error> 
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="load">
       <compilation-unit name="issue289_query">
         <output-dir compare="Text">issue289_query</output-dir>
       </compilation-unit>
diff --git a/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/dataset/adapter/NCFileSystemAdapter.java b/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/dataset/adapter/NCFileSystemAdapter.java
index ae9b412..ef39d45 100644
--- a/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/dataset/adapter/NCFileSystemAdapter.java
+++ b/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/dataset/adapter/NCFileSystemAdapter.java
@@ -61,7 +61,7 @@
         return AdapterType.READ;
     }
 
-    private void configureFileSplits(String[] splits)  {
+    private void configureFileSplits(String[] splits) throws AsterixException {
         if (fileSplits == null) {
             fileSplits = new FileSplit[splits.length];
             String nodeName;
@@ -70,6 +70,10 @@
             String trimmedValue;
             for (String splitPath : splits) {
                 trimmedValue = splitPath.trim();
+                if (!trimmedValue.contains("://")) {
+                    throw new AsterixException("Invalid path: " + splitPath
+                            + "\nUsage- path=\"Host://Absolute File Path\"");
+                }
                 nodeName = trimmedValue.split(":")[0];
                 nodeLocalPath = trimmedValue.split("://")[1];
                 FileSplit fileSplit = new FileSplit(nodeName, new FileReference(new File(nodeLocalPath)));