You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by kt...@apache.org on 2013/12/20 05:10:04 UTC

[3/4] git commit: ACCUMULO-2051 use new getDefaultReplication(Path) if available

ACCUMULO-2051 use new getDefaultReplication(Path) if available


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/0d344283
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/0d344283
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/0d344283

Branch: refs/heads/1.6.0-SNAPSHOT
Commit: 0d3442831650bd6c70625660e56fc43006ca36e2
Parents: b671fda
Author: Keith Turner <kt...@apache.org>
Authored: Thu Dec 19 21:44:10 2013 -0500
Committer: Keith Turner <kt...@apache.org>
Committed: Thu Dec 19 23:00:02 2013 -0500

----------------------------------------------------------------------
 .../accumulo/server/fs/VolumeManagerImpl.java     | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/0d344283/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java b/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java
index 472b0c0..a89572d 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java
@@ -19,6 +19,7 @@ package org.apache.accumulo.server.fs;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.net.URI;
 import java.util.ArrayList;
@@ -325,8 +326,23 @@ public class VolumeManagerImpl implements VolumeManager {
 
   @Override
   public short getDefaultReplication(Path path) {
+    FileSystem fs = getFileSystemByPath(path);
+    try {
+      // try calling hadoop 2 method
+      Method method = fs.getClass().getMethod("getDefaultReplication", Path.class);
+      return ((Short) method.invoke(fs, path)).shortValue();
+    } catch (NoSuchMethodException e) {
+      // ignore
+    } catch (IllegalArgumentException e) {
+      throw new RuntimeException(e);
+    } catch (IllegalAccessException e) {
+      throw new RuntimeException(e);
+    } catch (InvocationTargetException e) {
+      throw new RuntimeException(e);
+    }
+
     @SuppressWarnings("deprecation")
-    short rep = getFileSystemByPath(path).getDefaultReplication();
+    short rep = fs.getDefaultReplication();
     return rep;
   }