Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 07E66200BAD for ; Tue, 20 Sep 2016 01:17:22 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 06D00160ACC; Mon, 19 Sep 2016 23:17:22 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 41230160AE2 for ; Tue, 20 Sep 2016 01:17:21 +0200 (CEST) Received: (qmail 99345 invoked by uid 500); 19 Sep 2016 23:17:15 -0000 Mailing-List: contact commits-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list commits@hbase.apache.org Received: (qmail 98795 invoked by uid 99); 19 Sep 2016 23:17:15 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Sep 2016 23:17:15 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 4A78DE02D4; Mon, 19 Sep 2016 23:17:15 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: syuanjiang@apache.org To: commits@hbase.apache.org Date: Mon, 19 Sep 2016 23:17:48 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [35/50] [abbrv] hbase git commit: HBASE-16640 TimeoutBlockingQueue#remove() should return whether the entry is removed archived-at: Mon, 19 Sep 2016 23:17:22 -0000 HBASE-16640 TimeoutBlockingQueue#remove() should return whether the entry is removed Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/e782d0bb Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/e782d0bb Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/e782d0bb Branch: refs/heads/hbase-12439 Commit: e782d0bbdf265fddfcce5754cf11112e2dbcc4ea Parents: 8c4b09d Author: tedyu Authored: Thu Sep 15 17:34:23 2016 -0700 Committer: tedyu Committed: Thu Sep 15 17:34:23 2016 -0700 ---------------------------------------------------------------------- .../hadoop/hbase/procedure2/ProcedureExecutor.java | 5 +++-- .../hbase/procedure2/util/TimeoutBlockingQueue.java | 8 +++++--- .../procedure2/util/TestTimeoutBlockingQueue.java | 13 ++++++++----- 3 files changed, 16 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/e782d0bb/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java ---------------------------------------------------------------------- diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java index 5042329..1a9010d 100644 --- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java +++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java @@ -615,9 +615,10 @@ public class ProcedureExecutor { /** * Remove a chore procedure from the executor * @param chore the chore to remove + * @return whether the chore is removed */ - public void removeChore(final ProcedureInMemoryChore chore) { - waitingTimeout.remove(chore); + public boolean removeChore(final ProcedureInMemoryChore chore) { + return waitingTimeout.remove(chore); } /** http://git-wip-us.apache.org/repos/asf/hbase/blob/e782d0bb/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/util/TimeoutBlockingQueue.java ---------------------------------------------------------------------- diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/util/TimeoutBlockingQueue.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/util/TimeoutBlockingQueue.java index fceabb1..2292e63 100644 --- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/util/TimeoutBlockingQueue.java +++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/util/TimeoutBlockingQueue.java @@ -92,15 +92,17 @@ public class TimeoutBlockingQueue { } } - public void remove(E e) { + public boolean remove(E e) { + if (e == null) return false; lock.lock(); try { for (int i = 0; i < objects.length; ++i) { - if (objects[i] == e) { + if (e.equals(objects[i])) { objects[i] = null; - return; + return true; } } + return false; } finally { lock.unlock(); } http://git-wip-us.apache.org/repos/asf/hbase/blob/e782d0bb/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/util/TestTimeoutBlockingQueue.java ---------------------------------------------------------------------- diff --git a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/util/TestTimeoutBlockingQueue.java b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/util/TestTimeoutBlockingQueue.java index 209d1c5..1f901b5 100644 --- a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/util/TestTimeoutBlockingQueue.java +++ b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/util/TestTimeoutBlockingQueue.java @@ -137,18 +137,21 @@ public class TestTimeoutBlockingQueue { TimeoutBlockingQueue queue = new TimeoutBlockingQueue(2, new TestObjectTimeoutRetriever()); - TestObject[] objs = new TestObject[5]; - for (int i = 0; i < objs.length; ++i) { + final int effectiveLen = 5; + TestObject[] objs = new TestObject[6]; + for (int i = 0; i < effectiveLen; ++i) { objs[i] = new TestObject(0, i * 10); queue.add(objs[i]); } + objs[effectiveLen] = new TestObject(0, effectiveLen * 10); queue.dump(); - for (int i = 0; i < objs.length; i += 2) { - queue.remove(objs[i]); + for (int i = 0; i < effectiveLen; i += 2) { + assertTrue(queue.remove(objs[i])); } + assertTrue(!queue.remove(objs[effectiveLen])); - for (int i = 0; i < objs.length; ++i) { + for (int i = 0; i < effectiveLen; ++i) { TestObject x = queue.poll(); assertEquals((i % 2) == 0 ? null : objs[i], x); }