Beispiel #1
0
 @Override
 public void checkFileAccess(FileSystem fs, FileStatus stat, FsAction action)
     throws IOException, AccessControlException, Exception {
   try {
     if (accessMethod == null) {
       // Have to rely on Hive implementation of filesystem permission checks.
       DefaultFileAccess.checkFileAccess(fs, stat, action);
     } else {
       accessMethod.invoke(fs, stat.getPath(), action);
     }
   } catch (Exception err) {
     throw wrapAccessException(err);
   }
 }
Beispiel #2
0
 /**
  * Proxy file system also needs to override the access() method behavior. Cannot add Override
  * annotation since FileSystem.access() may not exist in the version of hadoop used to build
  * Hive.
  */
 @Override
 public void access(Path path, FsAction action)
     throws AccessControlException, FileNotFoundException, IOException {
   Path underlyingFsPath = swizzleParamPath(path);
   FileStatus underlyingFsStatus = fs.getFileStatus(underlyingFsPath);
   try {
     if (accessMethod != null) {
       accessMethod.invoke(fs, underlyingFsPath, action);
     } else {
       // If the FS has no access() method, we can try DefaultFileAccess ..
       DefaultFileAccess.checkFileAccess(fs, underlyingFsStatus, action);
     }
   } catch (AccessControlException err) {
     throw err;
   } catch (FileNotFoundException err) {
     throw err;
   } catch (IOException err) {
     throw err;
   } catch (Exception err) {
     throw new RuntimeException(err.getMessage(), err);
   }
 }