Author: rkanter
Date: Fri Feb 15 07:04:27 2013
New Revision: 1446465

URL: http://svn.apache.org/r1446465
Log:
OOZIE-1227 In a coordinator, specifying the <app-path> without a namenode 
causes it to fail (rkanter)

Modified:
    
oozie/trunk/core/src/main/java/org/apache/oozie/service/HadoopAccessorService.java
    
oozie/trunk/core/src/test/java/org/apache/oozie/service/TestHadoopAccessorService.java
    oozie/trunk/release-log.txt

Modified: 
oozie/trunk/core/src/main/java/org/apache/oozie/service/HadoopAccessorService.java
URL: 
http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/service/HadoopAccessorService.java?rev=1446465&r1=1446464&r2=1446465&view=diff
==============================================================================
--- 
oozie/trunk/core/src/main/java/org/apache/oozie/service/HadoopAccessorService.java
 (original)
+++ 
oozie/trunk/core/src/main/java/org/apache/oozie/service/HadoopAccessorService.java
 Fri Feb 15 07:04:27 2013
@@ -528,10 +528,12 @@ public class HadoopAccessorService imple
 
     public void checkSupportedFilesystem(URI uri) throws 
HadoopAccessorException {
         String uriScheme = uri.getScheme();
-        if(!supportedSchemes.isEmpty()) {
-            XLog.getLog(this.getClass()).debug("Checking if filesystem " + 
uriScheme + " is supported");
-            if (!supportedSchemes.contains(uriScheme)) {
-                throw new HadoopAccessorException(ErrorCode.E0904, uriScheme, 
uri.toString());
+        if (uriScheme != null) {    // skip the check if no scheme is given
+            if(!supportedSchemes.isEmpty()) {
+                XLog.getLog(this.getClass()).debug("Checking if filesystem " + 
uriScheme + " is supported");
+                if (!supportedSchemes.contains(uriScheme)) {
+                    throw new HadoopAccessorException(ErrorCode.E0904, 
uriScheme, uri.toString());
+                }
             }
         }
     }

Modified: 
oozie/trunk/core/src/test/java/org/apache/oozie/service/TestHadoopAccessorService.java
URL: 
http://svn.apache.org/viewvc/oozie/trunk/core/src/test/java/org/apache/oozie/service/TestHadoopAccessorService.java?rev=1446465&r1=1446464&r2=1446465&view=diff
==============================================================================
--- 
oozie/trunk/core/src/test/java/org/apache/oozie/service/TestHadoopAccessorService.java
 (original)
+++ 
oozie/trunk/core/src/test/java/org/apache/oozie/service/TestHadoopAccessorService.java
 Fri Feb 15 07:04:27 2013
@@ -29,6 +29,8 @@ import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.URI;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.oozie.ErrorCode;
 
 public class TestHadoopAccessorService extends XTestCase {
 
@@ -133,4 +135,34 @@ public class TestHadoopAccessorService e
                 HadoopAccessorService.getMRTokenRenewerInternal(jobConf));
     }
 
+    public void testCheckSupportedFilesystem() throws Exception {
+        Configuration hConf = Services.get().getConf();
+
+        // Only allow hdfs and foo schemes
+        HadoopAccessorService has = new HadoopAccessorService();
+        hConf.set("oozie.service.HadoopAccessorService.supported.filesystems", 
"hdfs,foo");
+        has.init(hConf);
+        has.checkSupportedFilesystem(new URI("hdfs://localhost:1234/blah"));
+        has.checkSupportedFilesystem(new URI("foo://localhost:1234/blah"));
+        try {
+            has.checkSupportedFilesystem(new 
URI("file://localhost:1234/blah"));
+            fail("Should have thrown an exception because 'file' scheme isn't 
allowed");
+        }
+        catch (HadoopAccessorException hae) {
+            assertEquals(ErrorCode.E0904, hae.getErrorCode());
+        }
+        // giving no scheme should skip the check
+        has.checkSupportedFilesystem(new URI("/blah"));
+
+        // allow all schemes
+        has = new HadoopAccessorService();
+        hConf.set("oozie.service.HadoopAccessorService.supported.filesystems", 
"*");
+        has.init(hConf);
+        has.checkSupportedFilesystem(new URI("hdfs://localhost:1234/blah"));
+        has.checkSupportedFilesystem(new URI("foo://localhost:1234/blah"));
+        has.checkSupportedFilesystem(new URI("file://localhost:1234/blah"));
+        // giving no scheme should skip the check
+        has.checkSupportedFilesystem(new URI("/blah"));
+    }
+
 }

Modified: oozie/trunk/release-log.txt
URL: 
http://svn.apache.org/viewvc/oozie/trunk/release-log.txt?rev=1446465&r1=1446464&r2=1446465&view=diff
==============================================================================
--- oozie/trunk/release-log.txt (original)
+++ oozie/trunk/release-log.txt Fri Feb 15 07:04:27 2013
@@ -13,6 +13,7 @@ OOZIE-944 Implement Workflow Generator U
 
 -- Oozie 3.3.2 (unreleased)
 
+OOZIE-1227 In a coordinator, specifying the <app-path> without a namenode 
causes it to fail (rkanter)
 OOZIE-1226 Workflow lib path not found in classpath for a subworkflow (rkanter)
 OOZIE-1184 Demo example job.properties has an unused parameter (udai via 
rkanter)
 OOZIE-1211 oozie does not support duplicated dataset (jaoki via virag)


Reply via email to