ACCUMULO-3865 Throw better exception with miniDFS

* Throw IllegalStateException with informative message when attempting to
  restart mini when using miniDFS, since that feature is not supported.
* Add javadoc to explain the restriction.


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

Branch: refs/heads/master
Commit: 8c0d881c32c107039f29a4f43df230e2a098804f
Parents: b754d12
Author: Christopher Tubbs <ctubb...@apache.org>
Authored: Tue Jun 9 13:12:38 2015 -0400
Committer: Christopher Tubbs <ctubb...@apache.org>
Committed: Tue Jun 9 13:12:38 2015 -0400

----------------------------------------------------------------------
 .../accumulo/minicluster/impl/MiniAccumuloClusterImpl.java    | 4 ++++
 .../accumulo/minicluster/impl/MiniAccumuloConfigImpl.java     | 7 +++++++
 2 files changed, 11 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/8c0d881c/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java
----------------------------------------------------------------------
diff --git 
a/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java
 
b/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java
index 6e67c9f..e512936 100644
--- 
a/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java
+++ 
b/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java
@@ -473,6 +473,10 @@ public class MiniAccumuloClusterImpl implements 
AccumuloCluster {
    */
   @Override
   public synchronized void start() throws IOException, InterruptedException {
+    if (config.useMiniDFS() && miniDFS == null) {
+      throw new IllegalStateException("Cannot restart mini when using 
miniDFS");
+    }
+
     MiniAccumuloClusterControl control = getClusterControl();
 
     if (config.useExistingInstance()) {

http://git-wip-us.apache.org/repos/asf/accumulo/blob/8c0d881c/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloConfigImpl.java
----------------------------------------------------------------------
diff --git 
a/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloConfigImpl.java
 
b/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloConfigImpl.java
index 10d5a9c..8feef61 100644
--- 
a/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloConfigImpl.java
+++ 
b/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloConfigImpl.java
@@ -29,8 +29,10 @@ import 
org.apache.accumulo.core.conf.CredentialProviderFactoryShim;
 import org.apache.accumulo.core.conf.DefaultConfiguration;
 import org.apache.accumulo.core.conf.Property;
 import org.apache.accumulo.minicluster.MemoryUnit;
+import org.apache.accumulo.minicluster.MiniAccumuloCluster;
 import org.apache.accumulo.server.util.PortUtils;
 import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
 import org.apache.log4j.Logger;
 
 /**
@@ -484,6 +486,11 @@ public class MiniAccumuloConfigImpl {
     return useMiniDFS;
   }
 
+  /**
+   * Configures this cluster to use miniDFS instead of the local {@link 
FileSystem}. Using this feature will not allow you to re-start
+   * {@link MiniAccumuloCluster} by calling {@link 
MiniAccumuloCluster#start()} after {@link MiniAccumuloCluster#stop()}, because 
the underlying miniDFS cannot
+   * be restarted.
+   */
   public void useMiniDFS(boolean useMiniDFS) {
     this.useMiniDFS = useMiniDFS;
   }

Reply via email to