You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2018/07/09 23:07:43 UTC
[1/4] hbase git commit: HBASE-20771 PUT operation fail with "No
server address listed in hbase:meta for region xxxxx"
Repository: hbase
Updated Branches:
refs/heads/branch-1 99189f284 -> 0953eb7ed
refs/heads/branch-1.2 9faebd268 -> d54931688
refs/heads/branch-1.3 5eb88aa54 -> 3fb612549
refs/heads/branch-1.4 bae88b4cf -> 89605929a
HBASE-20771 PUT operation fail with "No server address listed in hbase:meta for region xxxxx"
Signed-off-by: Andrew Purtell <ap...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/0953eb7e
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0953eb7e
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0953eb7e
Branch: refs/heads/branch-1
Commit: 0953eb7ed986dbea97ac754ca0e1039f17ba2b4c
Parents: 99189f2
Author: Pankaj <pa...@huawei.com>
Authored: Sat Jun 30 22:35:28 2018 +0530
Committer: Andrew Purtell <ap...@apache.org>
Committed: Mon Jul 9 15:54:54 2018 -0700
----------------------------------------------------------------------
.../apache/hadoop/hbase/client/HBaseAdmin.java | 15 +++++++++---
.../hbase/client/TestProcedureFuture.java | 24 ++++++++++++++++++++
2 files changed, 36 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/0953eb7e/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
index d68add6..fafc9fe 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
@@ -774,7 +774,7 @@ public class HBaseAdmin implements Admin {
public CreateTableFuture(final HBaseAdmin admin, final HTableDescriptor desc,
final byte[][] splitKeys, final CreateTableResponse response) {
- super(admin, (response != null && response.hasProcId()) ? response.getProcId() : null);
+ super(admin, (response != null && response.hasProcId()) ? response.getProcId() : null, true);
this.splitKeys = splitKeys;
this.desc = desc;
}
@@ -1199,7 +1199,7 @@ public class HBaseAdmin implements Admin {
public EnableTableFuture(final HBaseAdmin admin, final TableName tableName,
final EnableTableResponse response) {
- super(admin, (response != null && response.hasProcId()) ? response.getProcId() : null);
+ super(admin, (response != null && response.hasProcId()) ? response.getProcId() : null, true);
this.tableName = tableName;
}
@@ -4616,6 +4616,7 @@ public class HBaseAdmin implements Admin {
private boolean procResultFound = false;
private boolean done = false;
private boolean cancelled = false;
+ private boolean waitForOpResult = false;
private V result = null;
private final HBaseAdmin admin;
@@ -4626,6 +4627,13 @@ public class HBaseAdmin implements Admin {
this.procId = procId;
}
+ public ProcedureFuture(final HBaseAdmin admin, final Long procId,
+ final boolean waitForOpResult) {
+ this.admin = admin;
+ this.procId = procId;
+ this.waitForOpResult = waitForOpResult;
+ }
+
@Override
public boolean cancel(boolean mayInterruptIfRunning) {
AbortProcedureRequest abortProcRequest = AbortProcedureRequest.newBuilder()
@@ -4683,7 +4691,7 @@ public class HBaseAdmin implements Admin {
result = waitProcedureResult(procId, deadlineTs);
}
// if we don't have a proc result, try the compatibility wait
- if (!procResultFound) {
+ if (!procResultFound || waitForOpResult) {
result = waitOperationResult(deadlineTs);
}
result = postOperationResult(result, deadlineTs);
@@ -4740,6 +4748,7 @@ public class HBaseAdmin implements Admin {
// and that is always a valid solution.
LOG.warn("Proc-v2 is unsupported on this master: " + serviceEx.getMessage(), serviceEx);
procResultFound = false;
+ waitForOpResult = false;
return null;
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/0953eb7e/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java
index 4bd6571..5a6e546 100644
--- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java
+++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java
@@ -51,6 +51,10 @@ public class TestProcedureFuture {
super(admin, procId);
}
+ public TestFuture(final HBaseAdmin admin, final Long procId, final boolean waitForOpResult) {
+ super(admin, procId, waitForOpResult);
+ }
+
public boolean wasPostOperationResultCalled() {
return postOperationResultCalled;
}
@@ -182,4 +186,24 @@ public class TestProcedureFuture {
assertTrue("expected waitOperationResult() to be called", f.wasWaitOperationResultCalled());
assertTrue("expected postOperationResult() to be called", f.wasPostOperationResultCalled());
}
+
+ /**
+ * When master return a result by submitting the request asynchronously. we are skipping the
+ * waitOperationResult() call, since we are getting the procedure result.
+ */
+ @Test(timeout = 60000)
+ public void testWaitOperationResult() throws Exception {
+ HBaseAdmin admin = Mockito.mock(HBaseAdmin.class);
+ TestFuture f = new TestFuture(admin, 100L, true) {
+ @Override
+ protected GetProcedureResultResponse
+ getProcedureResult(final GetProcedureResultRequest request) throws IOException {
+ return GetProcedureResultResponse.newBuilder()
+ .setState(GetProcedureResultResponse.State.FINISHED).build();
+ }
+ };
+ f.get(1, TimeUnit.MINUTES);
+
+ assertTrue("expected waitOperationResult() to be called", f.wasWaitOperationResultCalled());
+ }
}
\ No newline at end of file
[2/4] hbase git commit: HBASE-20771 PUT operation fail with "No
server address listed in hbase:meta for region xxxxx"
Posted by ap...@apache.org.
HBASE-20771 PUT operation fail with "No server address listed in hbase:meta for region xxxxx"
Signed-off-by: Andrew Purtell <ap...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/89605929
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/89605929
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/89605929
Branch: refs/heads/branch-1.4
Commit: 89605929a0ba488e88894fa55a9d1f9bc0c71c38
Parents: bae88b4
Author: Pankaj <pa...@huawei.com>
Authored: Sat Jun 30 22:35:28 2018 +0530
Committer: Andrew Purtell <ap...@apache.org>
Committed: Mon Jul 9 15:55:35 2018 -0700
----------------------------------------------------------------------
.../apache/hadoop/hbase/client/HBaseAdmin.java | 15 +++++++++---
.../hbase/client/TestProcedureFuture.java | 24 ++++++++++++++++++++
2 files changed, 36 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/89605929/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
index 507c6fb..76b2584 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
@@ -774,7 +774,7 @@ public class HBaseAdmin implements Admin {
public CreateTableFuture(final HBaseAdmin admin, final HTableDescriptor desc,
final byte[][] splitKeys, final CreateTableResponse response) {
- super(admin, (response != null && response.hasProcId()) ? response.getProcId() : null);
+ super(admin, (response != null && response.hasProcId()) ? response.getProcId() : null, true);
this.splitKeys = splitKeys;
this.desc = desc;
}
@@ -1199,7 +1199,7 @@ public class HBaseAdmin implements Admin {
public EnableTableFuture(final HBaseAdmin admin, final TableName tableName,
final EnableTableResponse response) {
- super(admin, (response != null && response.hasProcId()) ? response.getProcId() : null);
+ super(admin, (response != null && response.hasProcId()) ? response.getProcId() : null, true);
this.tableName = tableName;
}
@@ -4601,6 +4601,7 @@ public class HBaseAdmin implements Admin {
private boolean procResultFound = false;
private boolean done = false;
private boolean cancelled = false;
+ private boolean waitForOpResult = false;
private V result = null;
private final HBaseAdmin admin;
@@ -4611,6 +4612,13 @@ public class HBaseAdmin implements Admin {
this.procId = procId;
}
+ public ProcedureFuture(final HBaseAdmin admin, final Long procId,
+ final boolean waitForOpResult) {
+ this.admin = admin;
+ this.procId = procId;
+ this.waitForOpResult = waitForOpResult;
+ }
+
@Override
public boolean cancel(boolean mayInterruptIfRunning) {
AbortProcedureRequest abortProcRequest = AbortProcedureRequest.newBuilder()
@@ -4668,7 +4676,7 @@ public class HBaseAdmin implements Admin {
result = waitProcedureResult(procId, deadlineTs);
}
// if we don't have a proc result, try the compatibility wait
- if (!procResultFound) {
+ if (!procResultFound || waitForOpResult) {
result = waitOperationResult(deadlineTs);
}
result = postOperationResult(result, deadlineTs);
@@ -4725,6 +4733,7 @@ public class HBaseAdmin implements Admin {
// and that is always a valid solution.
LOG.warn("Proc-v2 is unsupported on this master: " + serviceEx.getMessage(), serviceEx);
procResultFound = false;
+ waitForOpResult = false;
return null;
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/89605929/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java
index 4bd6571..5a6e546 100644
--- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java
+++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java
@@ -51,6 +51,10 @@ public class TestProcedureFuture {
super(admin, procId);
}
+ public TestFuture(final HBaseAdmin admin, final Long procId, final boolean waitForOpResult) {
+ super(admin, procId, waitForOpResult);
+ }
+
public boolean wasPostOperationResultCalled() {
return postOperationResultCalled;
}
@@ -182,4 +186,24 @@ public class TestProcedureFuture {
assertTrue("expected waitOperationResult() to be called", f.wasWaitOperationResultCalled());
assertTrue("expected postOperationResult() to be called", f.wasPostOperationResultCalled());
}
+
+ /**
+ * When master return a result by submitting the request asynchronously. we are skipping the
+ * waitOperationResult() call, since we are getting the procedure result.
+ */
+ @Test(timeout = 60000)
+ public void testWaitOperationResult() throws Exception {
+ HBaseAdmin admin = Mockito.mock(HBaseAdmin.class);
+ TestFuture f = new TestFuture(admin, 100L, true) {
+ @Override
+ protected GetProcedureResultResponse
+ getProcedureResult(final GetProcedureResultRequest request) throws IOException {
+ return GetProcedureResultResponse.newBuilder()
+ .setState(GetProcedureResultResponse.State.FINISHED).build();
+ }
+ };
+ f.get(1, TimeUnit.MINUTES);
+
+ assertTrue("expected waitOperationResult() to be called", f.wasWaitOperationResultCalled());
+ }
}
\ No newline at end of file
[3/4] hbase git commit: HBASE-20771 PUT operation fail with "No
server address listed in hbase:meta for region xxxxx"
Posted by ap...@apache.org.
HBASE-20771 PUT operation fail with "No server address listed in hbase:meta for region xxxxx"
Signed-off-by: Andrew Purtell <ap...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/3fb61254
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/3fb61254
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/3fb61254
Branch: refs/heads/branch-1.3
Commit: 3fb61254957b1d5282f14d2a3f1825d80e46db8c
Parents: 5eb88aa
Author: Pankaj <pa...@huawei.com>
Authored: Sat Jun 30 22:35:28 2018 +0530
Committer: Andrew Purtell <ap...@apache.org>
Committed: Mon Jul 9 15:55:42 2018 -0700
----------------------------------------------------------------------
.../apache/hadoop/hbase/client/HBaseAdmin.java | 15 +++++++++---
.../hbase/client/TestProcedureFuture.java | 24 ++++++++++++++++++++
2 files changed, 36 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/3fb61254/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
index 7074f97..e9c17ef 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
@@ -773,7 +773,7 @@ public class HBaseAdmin implements Admin {
public CreateTableFuture(final HBaseAdmin admin, final HTableDescriptor desc,
final byte[][] splitKeys, final CreateTableResponse response) {
- super(admin, (response != null && response.hasProcId()) ? response.getProcId() : null);
+ super(admin, (response != null && response.hasProcId()) ? response.getProcId() : null, true);
this.splitKeys = splitKeys;
this.desc = desc;
}
@@ -1199,7 +1199,7 @@ public class HBaseAdmin implements Admin {
public EnableTableFuture(final HBaseAdmin admin, final TableName tableName,
final EnableTableResponse response) {
- super(admin, (response != null && response.hasProcId()) ? response.getProcId() : null);
+ super(admin, (response != null && response.hasProcId()) ? response.getProcId() : null, true);
this.tableName = tableName;
}
@@ -4537,6 +4537,7 @@ public class HBaseAdmin implements Admin {
private boolean procResultFound = false;
private boolean done = false;
private boolean cancelled = false;
+ private boolean waitForOpResult = false;
private V result = null;
private final HBaseAdmin admin;
@@ -4547,6 +4548,13 @@ public class HBaseAdmin implements Admin {
this.procId = procId;
}
+ public ProcedureFuture(final HBaseAdmin admin, final Long procId,
+ final boolean waitForOpResult) {
+ this.admin = admin;
+ this.procId = procId;
+ this.waitForOpResult = waitForOpResult;
+ }
+
@Override
public boolean cancel(boolean mayInterruptIfRunning) {
AbortProcedureRequest abortProcRequest = AbortProcedureRequest.newBuilder()
@@ -4604,7 +4612,7 @@ public class HBaseAdmin implements Admin {
result = waitProcedureResult(procId, deadlineTs);
}
// if we don't have a proc result, try the compatibility wait
- if (!procResultFound) {
+ if (!procResultFound || waitForOpResult) {
result = waitOperationResult(deadlineTs);
}
result = postOperationResult(result, deadlineTs);
@@ -4661,6 +4669,7 @@ public class HBaseAdmin implements Admin {
// and that is always a valid solution.
LOG.warn("Proc-v2 is unsupported on this master: " + serviceEx.getMessage(), serviceEx);
procResultFound = false;
+ waitForOpResult = false;
return null;
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/3fb61254/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java
index 4bd6571..5a6e546 100644
--- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java
+++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java
@@ -51,6 +51,10 @@ public class TestProcedureFuture {
super(admin, procId);
}
+ public TestFuture(final HBaseAdmin admin, final Long procId, final boolean waitForOpResult) {
+ super(admin, procId, waitForOpResult);
+ }
+
public boolean wasPostOperationResultCalled() {
return postOperationResultCalled;
}
@@ -182,4 +186,24 @@ public class TestProcedureFuture {
assertTrue("expected waitOperationResult() to be called", f.wasWaitOperationResultCalled());
assertTrue("expected postOperationResult() to be called", f.wasPostOperationResultCalled());
}
+
+ /**
+ * When master return a result by submitting the request asynchronously. we are skipping the
+ * waitOperationResult() call, since we are getting the procedure result.
+ */
+ @Test(timeout = 60000)
+ public void testWaitOperationResult() throws Exception {
+ HBaseAdmin admin = Mockito.mock(HBaseAdmin.class);
+ TestFuture f = new TestFuture(admin, 100L, true) {
+ @Override
+ protected GetProcedureResultResponse
+ getProcedureResult(final GetProcedureResultRequest request) throws IOException {
+ return GetProcedureResultResponse.newBuilder()
+ .setState(GetProcedureResultResponse.State.FINISHED).build();
+ }
+ };
+ f.get(1, TimeUnit.MINUTES);
+
+ assertTrue("expected waitOperationResult() to be called", f.wasWaitOperationResultCalled());
+ }
}
\ No newline at end of file
[4/4] hbase git commit: HBASE-20771 PUT operation fail with "No
server address listed in hbase:meta for region xxxxx"
Posted by ap...@apache.org.
HBASE-20771 PUT operation fail with "No server address listed in hbase:meta for region xxxxx"
Signed-off-by: Andrew Purtell <ap...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/d5493168
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/d5493168
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/d5493168
Branch: refs/heads/branch-1.2
Commit: d54931688d9aa7cccce55ea181f67a4d0cfe44c2
Parents: 9faebd2
Author: Pankaj <pa...@huawei.com>
Authored: Sat Jun 30 22:35:28 2018 +0530
Committer: Andrew Purtell <ap...@apache.org>
Committed: Mon Jul 9 15:55:50 2018 -0700
----------------------------------------------------------------------
.../apache/hadoop/hbase/client/HBaseAdmin.java | 15 +++++++++---
.../hbase/client/TestProcedureFuture.java | 24 ++++++++++++++++++++
2 files changed, 36 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/d5493168/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
index 61714c8..0903608 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
@@ -771,7 +771,7 @@ public class HBaseAdmin implements Admin {
public CreateTableFuture(final HBaseAdmin admin, final HTableDescriptor desc,
final byte[][] splitKeys, final CreateTableResponse response) {
- super(admin, (response != null && response.hasProcId()) ? response.getProcId() : null);
+ super(admin, (response != null && response.hasProcId()) ? response.getProcId() : null, true);
this.splitKeys = splitKeys;
this.desc = desc;
}
@@ -1197,7 +1197,7 @@ public class HBaseAdmin implements Admin {
public EnableTableFuture(final HBaseAdmin admin, final TableName tableName,
final EnableTableResponse response) {
- super(admin, (response != null && response.hasProcId()) ? response.getProcId() : null);
+ super(admin, (response != null && response.hasProcId()) ? response.getProcId() : null, true);
this.tableName = tableName;
}
@@ -4445,6 +4445,7 @@ public class HBaseAdmin implements Admin {
private boolean procResultFound = false;
private boolean done = false;
private boolean cancelled = false;
+ private boolean waitForOpResult = false;
private V result = null;
private final HBaseAdmin admin;
@@ -4455,6 +4456,13 @@ public class HBaseAdmin implements Admin {
this.procId = procId;
}
+ public ProcedureFuture(final HBaseAdmin admin, final Long procId,
+ final boolean waitForOpResult) {
+ this.admin = admin;
+ this.procId = procId;
+ this.waitForOpResult = waitForOpResult;
+ }
+
@Override
public boolean cancel(boolean mayInterruptIfRunning) {
AbortProcedureRequest abortProcRequest = AbortProcedureRequest.newBuilder()
@@ -4512,7 +4520,7 @@ public class HBaseAdmin implements Admin {
result = waitProcedureResult(procId, deadlineTs);
}
// if we don't have a proc result, try the compatibility wait
- if (!procResultFound) {
+ if (!procResultFound || waitForOpResult) {
result = waitOperationResult(deadlineTs);
}
result = postOperationResult(result, deadlineTs);
@@ -4569,6 +4577,7 @@ public class HBaseAdmin implements Admin {
// and that is always a valid solution.
LOG.warn("Proc-v2 is unsupported on this master: " + serviceEx.getMessage(), serviceEx);
procResultFound = false;
+ waitForOpResult = false;
return null;
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/d5493168/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java
index 4bd6571..5a6e546 100644
--- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java
+++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestProcedureFuture.java
@@ -51,6 +51,10 @@ public class TestProcedureFuture {
super(admin, procId);
}
+ public TestFuture(final HBaseAdmin admin, final Long procId, final boolean waitForOpResult) {
+ super(admin, procId, waitForOpResult);
+ }
+
public boolean wasPostOperationResultCalled() {
return postOperationResultCalled;
}
@@ -182,4 +186,24 @@ public class TestProcedureFuture {
assertTrue("expected waitOperationResult() to be called", f.wasWaitOperationResultCalled());
assertTrue("expected postOperationResult() to be called", f.wasPostOperationResultCalled());
}
+
+ /**
+ * When master return a result by submitting the request asynchronously. we are skipping the
+ * waitOperationResult() call, since we are getting the procedure result.
+ */
+ @Test(timeout = 60000)
+ public void testWaitOperationResult() throws Exception {
+ HBaseAdmin admin = Mockito.mock(HBaseAdmin.class);
+ TestFuture f = new TestFuture(admin, 100L, true) {
+ @Override
+ protected GetProcedureResultResponse
+ getProcedureResult(final GetProcedureResultRequest request) throws IOException {
+ return GetProcedureResultResponse.newBuilder()
+ .setState(GetProcedureResultResponse.State.FINISHED).build();
+ }
+ };
+ f.get(1, TimeUnit.MINUTES);
+
+ assertTrue("expected waitOperationResult() to be called", f.wasWaitOperationResultCalled());
+ }
}
\ No newline at end of file