This is an automated email from the ASF dual-hosted git repository.
janh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/master by this push:
new 5b01e61 HBASE-19763 Fixed Checkstyle errors in hbase-procedure
5b01e61 is described below
commit 5b01e613fbbb92e243e99a1d199b4ffbb21ed2d9
Author: Jan Hentschel <[email protected]>
AuthorDate: Fri Apr 19 12:13:53 2019 +0200
HBASE-19763 Fixed Checkstyle errors in hbase-procedure
---
hbase-procedure/pom.xml | 7 +++
.../procedure2/AbstractProcedureScheduler.java | 4 +-
.../hbase/procedure2/BadProcedureException.java | 3 +-
.../hadoop/hbase/procedure2/LockedResource.java | 2 -
.../apache/hadoop/hbase/procedure2/Procedure.java | 16 +++---
.../hadoop/hbase/procedure2/ProcedureDeque.java | 6 +-
.../hbase/procedure2/ProcedureException.java | 3 +-
.../hadoop/hbase/procedure2/ProcedureExecutor.java | 66 +++++++++++-----------
.../hbase/procedure2/ProcedureScheduler.java | 4 +-
.../hadoop/hbase/procedure2/ProcedureUtil.java | 4 +-
.../procedure2/RemoteProcedureDispatcher.java | 9 ++-
.../hbase/procedure2/RemoteProcedureException.java | 12 ++--
.../hbase/procedure2/RootProcedureState.java | 6 +-
.../hbase/procedure2/StateMachineProcedure.java | 25 +++++---
.../hbase/procedure2/store/ProcedureStore.java | 5 +-
.../hbase/procedure2/store/ProcedureStoreBase.java | 3 +-
.../procedure2/store/ProcedureStoreTracker.java | 10 ++--
.../procedure2/store/wal/ProcedureWALFile.java | 15 ++++-
.../procedure2/store/wal/WALProcedureStore.java | 11 +++-
.../hadoop/hbase/procedure2/util/DelayedUtil.java | 13 +++--
.../hadoop/hbase/procedure2/util/StringUtils.java | 21 +++++--
.../hbase/procedure2/ProcedureTestingUtility.java | 12 ++--
.../hbase/procedure2/TestProcedureExecution.java | 5 +-
.../hbase/procedure2/TestProcedureMetrics.java | 7 +--
.../hbase/procedure2/TestProcedureNonce.java | 19 +++++--
.../hbase/procedure2/TestProcedureRecovery.java | 5 +-
.../hbase/procedure2/TestProcedureReplayOrder.java | 5 +-
.../TestProcedureSchedulerConcurrency.java | 9 +--
.../hbase/procedure2/TestProcedureSuspended.java | 23 ++++++--
.../hbase/procedure2/TestProcedureToString.java | 11 ++--
.../procedure2/TestStateMachineProcedure.java | 11 +++-
.../hbase/procedure2/TestYieldProcedures.java | 15 +++--
.../store/TestProcedureStoreTracker.java | 5 +-
.../ProcedureWALLoaderPerformanceEvaluation.java | 17 +++---
.../wal/ProcedureWALPerformanceEvaluation.java | 10 ++--
.../store/wal/TestStressWALProcedureStore.java | 4 +-
.../store/wal/TestWALProcedureStore.java | 25 ++++----
37 files changed, 254 insertions(+), 174 deletions(-)
diff --git a/hbase-procedure/pom.xml b/hbase-procedure/pom.xml
index b89acdb..4235587 100644
--- a/hbase-procedure/pom.xml
+++ b/hbase-procedure/pom.xml
@@ -50,6 +50,13 @@
<groupId>net.revelc.code</groupId>
<artifactId>warbucks-maven-plugin</artifactId>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <configuration>
+ <failOnViolation>true</failOnViolation>
+ </configuration>
+ </plugin>
</plugins>
</build>
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.java
index d5a0260..6b44614 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.java
@@ -15,13 +15,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.hadoop.hbase.procedure2;
import java.util.Iterator;
+import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.ReentrantLock;
-import java.util.concurrent.TimeUnit;
import org.apache.yetus.audience.InterfaceAudience;
import org.slf4j.Logger;
@@ -279,7 +278,6 @@ public abstract class AbstractProcedureScheduler implements
ProcedureScheduler {
push(procedure, /* addFront= */ true, /* notify= */false);
}
-
// ==========================================================================
// Internal helpers
// ==========================================================================
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/BadProcedureException.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/BadProcedureException.java
index 035b5a1..bb78e36 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/BadProcedureException.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/BadProcedureException.java
@@ -15,12 +15,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.hadoop.hbase.procedure2;
+import org.apache.hadoop.hbase.HBaseIOException;
import org.apache.yetus.audience.InterfaceAudience;
import org.apache.yetus.audience.InterfaceStability;
-import org.apache.hadoop.hbase.HBaseIOException;
@InterfaceAudience.Private
@InterfaceStability.Stable
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/LockedResource.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/LockedResource.java
index 3e84306..81d1e72 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/LockedResource.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/LockedResource.java
@@ -15,13 +15,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.hadoop.hbase.procedure2;
import java.util.List;
import org.apache.yetus.audience.InterfaceAudience;
-import org.apache.hadoop.hbase.procedure2.LockedResourceType;
@InterfaceAudience.Private
public class LockedResource {
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/Procedure.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/Procedure.java
index 9934dc3..46dd9e2 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/Procedure.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/Procedure.java
@@ -15,7 +15,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.hadoop.hbase.procedure2;
import java.io.IOException;
@@ -209,11 +208,12 @@ public abstract class Procedure<TEnvironment> implements
Comparable<Procedure<TE
* of the execution.
* @param env the environment passed to the ProcedureExecutor
* @return a set of sub-procedures to run or ourselves if there is more work
to do or null if the
- * procedure is done.
- * @throws ProcedureYieldException the procedure will be added back to the
queue and retried later.
+ * procedure is done.
+ * @throws ProcedureYieldException the procedure will be added back to the
queue and retried
+ * later.
* @throws InterruptedException the procedure will be added back to the
queue and retried later.
- * @throws ProcedureSuspendedException Signal to the executor that Procedure
has suspended itself and
- * has set itself up waiting for an external event to wake it back up again.
+ * @throws ProcedureSuspendedException Signal to the executor that Procedure
has suspended itself
+ * and has set itself up waiting for an external event to wake it
back up again.
*/
protected abstract Procedure<TEnvironment>[] execute(TEnvironment env)
throws ProcedureYieldException, ProcedureSuspendedException,
InterruptedException;
@@ -468,7 +468,7 @@ public abstract class Procedure<TEnvironment> implements
Comparable<Procedure<TE
sb.append(getParentProcId());
}
- /**
+ /*
* TODO
* Enable later when this is being used.
* Currently owner not used.
@@ -710,7 +710,7 @@ public abstract class Procedure<TEnvironment> implements
Comparable<Procedure<TE
/**
* Will only be called when loading procedures from procedure store, where
we need to record
* whether the procedure has already held a lock. Later we will call
- * {@link #restoreLock(Object, ProcedureStore)} to actually acquire the lock.
+ * {@link #restoreLock(Object)} to actually acquire the lock.
*/
final void lockedWhenLoading() {
this.lockedWhenLoading = true;
@@ -764,7 +764,7 @@ public abstract class Procedure<TEnvironment> implements
Comparable<Procedure<TE
/**
* @return true if the procedure is finished. The Procedure may be completed
successfully or
- * rolledback.
+ * rolledback.
*/
public synchronized boolean isFinished() {
return isSuccess() || state == ProcedureState.ROLLEDBACK;
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureDeque.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureDeque.java
index 617e384..c5f02e9 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureDeque.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureDeque.java
@@ -16,14 +16,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.hadoop.hbase.procedure2;
-import org.apache.yetus.audience.InterfaceAudience;
-import org.apache.hadoop.hbase.procedure2.Procedure;
-
import java.util.ArrayDeque;
+import org.apache.yetus.audience.InterfaceAudience;
+
/**
* Type class.
* For conceptual purpose only. Seeing ProcedureDeque as type instead of just
ArrayDeque gives
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureException.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureException.java
index a18cd42..93cd355 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureException.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureException.java
@@ -15,12 +15,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.hadoop.hbase.procedure2;
+import org.apache.hadoop.hbase.exceptions.HBaseException;
import org.apache.yetus.audience.InterfaceAudience;
import org.apache.yetus.audience.InterfaceStability;
-import org.apache.hadoop.hbase.exceptions.HBaseException;
@InterfaceAudience.Private
@InterfaceStability.Stable
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 cbdb9b8..6d1ffb4 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
@@ -433,23 +433,21 @@ public class ProcedureExecutor<TEnvironment> {
}
}
- // add the nonce to the map
if (nonceKey != null) {
- nonceKeysToProcIdsMap.put(nonceKey, procId);
+ nonceKeysToProcIdsMap.put(nonceKey, procId); // add the nonce to the
map
}
}
- // 2. Initialize the stacks
- // In the old implementation, for procedures in FAILED state, we will push
it into the
- // ProcedureScheduler directly to execute the rollback. But this does not
work after we
- // introduce the restore lock stage.
- // For now, when we acquire a xlock, we will remove the queue from
runQueue in scheduler, and
- // then when a procedure which has lock access, for example, a sub
procedure of the procedure
- // which has the xlock, is pushed into the scheduler, we will add the
queue back to let the
- // workers poll from it. The assumption here is that, the procedure which
has the xlock should
- // have been polled out already, so when loading we can not add the
procedure to scheduler first
- // and then call acquireLock, since the procedure is still in the queue,
and since we will
- // remove the queue from runQueue, then no one can poll it out, then there
is a dead lock
+ // 2. Initialize the stacks: In the old implementation, for procedures in
FAILED state, we will
+ // push it into the ProcedureScheduler directly to execute the rollback.
But this does not work
+ // after we introduce the restore lock stage. For now, when we acquire a
xlock, we will remove
+ // the queue from runQueue in scheduler, and then when a procedure which
has lock access, for
+ // example, a sub procedure of the procedure which has the xlock, is
pushed into the scheduler,
+ // we will add the queue back to let the workers poll from it. The
assumption here is that, the
+ // procedure which has the xlock should have been polled out already, so
when loading we can not
+ // add the procedure to scheduler first and then call acquireLock, since
the procedure is still
+ // in the queue, and since we will remove the queue from runQueue, then no
one can poll it out,
+ // then there is a dead lock
List<Procedure<TEnvironment>> runnableList = new
ArrayList<>(runnableCount);
List<Procedure<TEnvironment>> failedList = new ArrayList<>(failedCount);
List<Procedure<TEnvironment>> waitingList = new ArrayList<>(waitingCount);
@@ -464,9 +462,7 @@ public class ProcedureExecutor<TEnvironment> {
@SuppressWarnings("unchecked")
Procedure<TEnvironment> proc = procIter.next();
assert !(proc.isFinished() && !proc.hasParent()) : "unexpected completed
proc=" + proc;
-
LOG.debug("Loading {}", proc);
-
Long rootProcId = getRootProcedureId(proc);
// The orphan procedures will be passed to handleCorrupted, so add an
assert here
assert rootProcId != null;
@@ -508,14 +504,12 @@ public class ProcedureExecutor<TEnvironment> {
// 3. Check the waiting procedures to see if some of them can be added to
runnable.
waitingList.forEach(proc -> {
if (!proc.hasChildren()) {
- // Normally, WAITING procedures should be waken by its children.
- // But, there is a case that, all the children are successful and
before
- // they can wake up their parent procedure, the master was killed.
- // So, during recovering the procedures from ProcedureWal, its children
- // are not loaded because of their SUCCESS state.
- // So we need to continue to run this WAITING procedure. But before
- // executing, we need to set its state to RUNNABLE, otherwise, a
exception
- // will throw:
+ // Normally, WAITING procedures should be waken by its children. But,
there is a case that,
+ // all the children are successful and before they can wake up their
parent procedure, the
+ // master was killed. So, during recovering the procedures from
ProcedureWal, its children
+ // are not loaded because of their SUCCESS state. So we need to
continue to run this WAITING
+ // procedure. But before executing, we need to set its state to
RUNNABLE, otherwise, a
+ // exception will throw:
// Preconditions.checkArgument(procedure.getState() ==
ProcedureState.RUNNABLE,
// "NOT RUNNABLE! " + procedure.toString());
proc.setState(ProcedureState.RUNNABLE);
@@ -743,9 +737,9 @@ public class ProcedureExecutor<TEnvironment> {
// Nonce Procedure helpers
// ==========================================================================
/**
- * Create a NoneKey from the specified nonceGroup and nonce.
- * @param nonceGroup
- * @param nonce
+ * Create a NonceKey from the specified nonceGroup and nonce.
+ * @param nonceGroup the group to use for the {@link NonceKey}
+ * @param nonce the nonce to use in the {@link NonceKey}
* @return the generated NonceKey
*/
public NonceKey createNonceKey(final long nonceGroup, final long nonce) {
@@ -764,7 +758,9 @@ public class ProcedureExecutor<TEnvironment> {
* @return the procId associated with the nonce, if any otherwise an invalid
procId.
*/
public long registerNonce(final NonceKey nonceKey) {
- if (nonceKey == null) return -1;
+ if (nonceKey == null) {
+ return -1;
+ }
// check if we have already a Reserved ID for the nonce
Long oldProcId = nonceKeysToProcIdsMap.get(nonceKey);
@@ -773,7 +769,9 @@ public class ProcedureExecutor<TEnvironment> {
// and the procedure submitted with the specified nonce will use this ID.
final long newProcId = nextProcId();
oldProcId = nonceKeysToProcIdsMap.putIfAbsent(nonceKey, newProcId);
- if (oldProcId == null) return -1;
+ if (oldProcId == null) {
+ return -1;
+ }
}
// we found a registered nonce, but the procedure may not have been
submitted yet.
@@ -795,10 +793,14 @@ public class ProcedureExecutor<TEnvironment> {
* @param nonceKey A unique identifier for this operation from the client or
process.
*/
public void unregisterNonceIfProcedureWasNotSubmitted(final NonceKey
nonceKey) {
- if (nonceKey == null) return;
+ if (nonceKey == null) {
+ return;
+ }
final Long procId = nonceKeysToProcIdsMap.get(nonceKey);
- if (procId == null) return;
+ if (procId == null) {
+ return;
+ }
// if the procedure was not submitted, remove the nonce
if (!(procedures.containsKey(procId) || completed.containsKey(procId))) {
@@ -1295,8 +1297,9 @@ public class ProcedureExecutor<TEnvironment> {
if (procId < 0) {
while (!lastProcId.compareAndSet(procId, 0)) {
procId = lastProcId.get();
- if (procId >= 0)
+ if (procId >= 0) {
break;
+ }
}
while (procedures.containsKey(procId)) {
procId = lastProcId.incrementAndGet();
@@ -2003,7 +2006,6 @@ public class ProcedureExecutor<TEnvironment> {
// A worker thread which can be added when core workers are stuck. Will
timeout after
// keepAliveTime if there is no procedure to run.
private final class KeepAliveWorkerThread extends WorkerThread {
-
public KeepAliveWorkerThread(ThreadGroup group) {
super(group, "KeepAlivePEWorker-");
}
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureScheduler.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureScheduler.java
index 9489f52..d787cc0 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureScheduler.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureScheduler.java
@@ -15,7 +15,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.hadoop.hbase.procedure2;
import java.util.Iterator;
@@ -117,7 +116,8 @@ public interface ProcedureScheduler {
List<LockedResource> getLocks();
/**
- * @return {@link LockedResource} for resource of specified type & name.
null if resource is not locked.
+ * @return {@link LockedResource} for resource of specified type & name.
null if resource is not
+ * locked.
*/
LockedResource getLockResource(LockedResourceType resourceType, String
resourceName);
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureUtil.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureUtil.java
index b736220..f25f268 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureUtil.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureUtil.java
@@ -23,7 +23,9 @@ import java.lang.reflect.Constructor;
import java.lang.reflect.Modifier;
import java.util.concurrent.ThreadLocalRandom;
import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.util.NonceKey;
import org.apache.yetus.audience.InterfaceAudience;
+
import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;
import org.apache.hbase.thirdparty.com.google.protobuf.Any;
import org.apache.hbase.thirdparty.com.google.protobuf.Internal;
@@ -31,9 +33,9 @@ import
org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferExce
import org.apache.hbase.thirdparty.com.google.protobuf.Message;
import org.apache.hbase.thirdparty.com.google.protobuf.Parser;
import org.apache.hbase.thirdparty.com.google.protobuf.UnsafeByteOperations;
+
import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos;
import org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos;
-import org.apache.hadoop.hbase.util.NonceKey;
/**
* Helper to convert to/from ProcedureProtos
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RemoteProcedureDispatcher.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RemoteProcedureDispatcher.java
index da9d08c..1b8ba0e 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RemoteProcedureDispatcher.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RemoteProcedureDispatcher.java
@@ -155,7 +155,8 @@ public abstract class RemoteProcedureDispatcher<TEnv,
TRemote extends Comparable
* @param key the node identifier
*/
public void addOperationToNode(final TRemote key, RemoteProcedure rp)
- throws NullTargetServerDispatchException, NoServerDispatchException,
NoNodeDispatchException {
+ throws NullTargetServerDispatchException, NoServerDispatchException,
+ NoNodeDispatchException {
if (key == null) {
throw new NullTargetServerDispatchException(rp.toString());
}
@@ -188,7 +189,10 @@ public abstract class RemoteProcedureDispatcher<TEnv,
TRemote extends Comparable
*/
public boolean removeNode(final TRemote key) {
final BufferNode node = nodeMap.remove(key);
- if (node == null) return false;
+ if (node == null) {
+ return false;
+ }
+
node.abortOperationsInQueue();
return true;
}
@@ -256,7 +260,6 @@ public abstract class RemoteProcedureDispatcher<TEnv,
TRemote extends Comparable
default boolean storeInDispatchedQueue() {
return true;
}
-
}
/**
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RemoteProcedureException.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RemoteProcedureException.java
index f2ad17f..91ad920 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RemoteProcedureException.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RemoteProcedureException.java
@@ -19,11 +19,12 @@ package org.apache.hadoop.hbase.procedure2;
import java.io.IOException;
+import org.apache.hadoop.hbase.util.ForeignExceptionUtil;
import org.apache.hadoop.ipc.RemoteException;
import org.apache.yetus.audience.InterfaceAudience;
import org.apache.yetus.audience.InterfaceStability;
+
import
org.apache.hadoop.hbase.shaded.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage;
-import org.apache.hadoop.hbase.util.ForeignExceptionUtil;
/**
* A RemoteProcedureException is an exception from another thread or process.
@@ -40,7 +41,6 @@ import org.apache.hadoop.hbase.util.ForeignExceptionUtil;
@InterfaceStability.Evolving
@SuppressWarnings("serial")
public class RemoteProcedureException extends ProcedureException {
-
/**
* Name of the throwable's source such as a host or thread name. Must be
non-null.
*/
@@ -49,8 +49,8 @@ public class RemoteProcedureException extends
ProcedureException {
/**
* Create a new RemoteProcedureException that can be serialized.
* It is assumed that this came form a local source.
- * @param source
- * @param cause
+ * @param source the host or thread name of the source
+ * @param cause the actual cause of the exception
*/
public RemoteProcedureException(String source, Throwable cause) {
super(cause);
@@ -104,9 +104,9 @@ public class RemoteProcedureException extends
ProcedureException {
/**
* Takes a series of bytes and tries to generate an RemoteProcedureException
instance for it.
- * @param bytes
+ * @param bytes the bytes to generate the {@link RemoteProcedureException}
from
* @return the ForeignExcpetion instance
- * @throws InvalidProtocolBufferException if there was deserialization
problem this is thrown.
+ * @throws IOException if there was deserialization problem this is thrown.
*/
public static RemoteProcedureException deserialize(byte[] bytes) throws
IOException {
return fromProto(ForeignExceptionMessage.parseFrom(bytes));
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RootProcedureState.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RootProcedureState.java
index a7cdaab..0dde806 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RootProcedureState.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RootProcedureState.java
@@ -15,7 +15,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.hadoop.hbase.procedure2;
import java.util.ArrayList;
@@ -43,7 +42,6 @@ import
org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.Procedu
@InterfaceAudience.Private
@InterfaceStability.Evolving
class RootProcedureState<TEnvironment> {
-
private static final Logger LOG =
LoggerFactory.getLogger(RootProcedureState.class);
private enum State {
@@ -181,7 +179,9 @@ class RootProcedureState<TEnvironment> {
int diff = (1 + stackIndexes[stackIndexes.length - 1]) -
subprocStack.size();
if (diff > 0) {
subprocStack.ensureCapacity(1 + stackIndexes[stackIndexes.length - 1]);
- while (diff-- > 0) subprocStack.add(null);
+ while (diff-- > 0) {
+ subprocStack.add(null);
+ }
}
for (int i = 0; i < stackIndexes.length; ++i) {
subprocStack.set(stackIndexes[i], proc);
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.java
index 0a087a6..46c4c5e 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.java
@@ -15,7 +15,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.hadoop.hbase.procedure2;
import java.io.IOException;
@@ -87,7 +86,7 @@ public abstract class StateMachineProcedure<TEnvironment,
TState>
* Flow.HAS_MORE_STATE if there is another step.
*/
protected abstract Flow executeFromState(TEnvironment env, TState state)
- throws ProcedureSuspendedException, ProcedureYieldException,
InterruptedException;
+ throws ProcedureSuspendedException, ProcedureYieldException,
InterruptedException;
/**
* called to perform the rollback of the specified state
@@ -156,19 +155,25 @@ public abstract class StateMachineProcedure<TEnvironment,
TState>
}
for (int i = 0; i < len; ++i) {
Procedure<TEnvironment> proc = subProcedure[i];
- if (!proc.hasOwner()) proc.setOwner(getOwner());
+ if (!proc.hasOwner()) {
+ proc.setOwner(getOwner());
+ }
+
subProcList.add(proc);
}
}
@Override
protected Procedure[] execute(final TEnvironment env)
- throws ProcedureSuspendedException, ProcedureYieldException,
InterruptedException {
+ throws ProcedureSuspendedException, ProcedureYieldException,
InterruptedException {
updateTimestamp();
try {
failIfAborted();
- if (!hasMoreState() || isFailed()) return null;
+ if (!hasMoreState() || isFailed()) {
+ return null;
+ }
+
TState state = getCurrentState();
if (stateCount == 0) {
setNextState(getStateId(state));
@@ -187,7 +192,10 @@ public abstract class StateMachineProcedure<TEnvironment,
TState>
LOG.trace("{}", this);
stateFlow = executeFromState(env, state);
- if (!hasMoreState()) setNextState(EOF_STATE);
+ if (!hasMoreState()) {
+ setNextState(EOF_STATE);
+ }
+
if (subProcList != null && !subProcList.isEmpty()) {
Procedure[] subProcedures = subProcList.toArray(new
Procedure[subProcList.size()]);
subProcList = null;
@@ -202,7 +210,10 @@ public abstract class StateMachineProcedure<TEnvironment,
TState>
@Override
protected void rollback(final TEnvironment env)
throws IOException, InterruptedException {
- if (isEofState()) stateCount--;
+ if (isEofState()) {
+ stateCount--;
+ }
+
try {
updateTimestamp();
rollbackState(env, getCurrentState());
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.java
index 7a77a20..4398888 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.java
@@ -15,14 +15,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.hadoop.hbase.procedure2.store;
import java.io.IOException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
import org.apache.yetus.audience.InterfaceAudience;
import org.apache.yetus.audience.InterfaceStability;
-import org.apache.hadoop.hbase.procedure2.Procedure;
/**
* The ProcedureStore is used by the executor to persist the state of each
procedure execution.
@@ -149,7 +148,7 @@ public interface ProcedureStore {
/**
* Start/Open the procedure store
- * @param numThreads
+ * @param numThreads number of threads to be used by the procedure store
*/
void start(int numThreads) throws IOException;
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreBase.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreBase.java
index b1a8d3d..a5c04fa 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreBase.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreBase.java
@@ -26,7 +26,8 @@ import org.apache.yetus.audience.InterfaceAudience;
*/
@InterfaceAudience.Private
public abstract class ProcedureStoreBase implements ProcedureStore {
- private final CopyOnWriteArrayList<ProcedureStoreListener> listeners = new
CopyOnWriteArrayList<>();
+ private final CopyOnWriteArrayList<ProcedureStoreListener> listeners =
+ new CopyOnWriteArrayList<>();
private final AtomicBoolean running = new AtomicBoolean(false);
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java
index 7d430d6..9edd871 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java
@@ -15,7 +15,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.hadoop.hbase.procedure2.store;
import java.io.IOException;
@@ -40,7 +39,6 @@ import
org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos;
*/
@InterfaceAudience.Private
public class ProcedureStoreTracker {
-
private static final Logger LOG =
LoggerFactory.getLogger(ProcedureStoreTracker.class);
// Key is procedure id corresponding to first bit of the bitmap.
@@ -68,7 +66,8 @@ public class ProcedureStoreTracker {
public void resetToProto(ProcedureProtos.ProcedureStoreTracker
trackerProtoBuf) {
reset();
- for (ProcedureProtos.ProcedureStoreTracker.TrackerNode protoNode:
trackerProtoBuf.getNodeList()) {
+ for (ProcedureProtos.ProcedureStoreTracker.TrackerNode protoNode :
+ trackerProtoBuf.getNodeList()) {
final BitSetNode node = new BitSetNode(protoNode);
map.put(node.getStart(), node);
}
@@ -252,7 +251,10 @@ public class ProcedureStoreTracker {
* @return the node that may contains the procId or null
*/
private BitSetNode lookupClosestNode(final BitSetNode node, final long
procId) {
- if (node != null && node.contains(procId)) return node;
+ if (node != null && node.contains(procId)) {
+ return node;
+ }
+
final Map.Entry<Long, BitSetNode> entry = map.floorEntry(procId);
return entry != null ? entry.getValue() : null;
}
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java
index 1676744..aeae900 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java
@@ -111,7 +111,10 @@ public class ProcedureWALFile implements
Comparable<ProcedureWALFile> {
}
public void close() {
- if (stream == null) return;
+ if (stream == null) {
+ return;
+ }
+
try {
stream.close();
} catch (IOException e) {
@@ -192,8 +195,14 @@ public class ProcedureWALFile implements
Comparable<ProcedureWALFile> {
@Override
public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof ProcedureWALFile)) return false;
+ if (this == o) {
+ return true;
+ }
+
+ if (!(o instanceof ProcedureWALFile)) {
+ return false;
+ }
+
return compareTo((ProcedureWALFile)o) == 0;
}
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java
index 82dc9df..a865a09 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java
@@ -659,7 +659,10 @@ public class WALProcedureStore extends ProcedureStoreBase {
@Override
public void delete(final long[] procIds, final int offset, final int count) {
- if (count == 0) return;
+ if (count == 0) {
+ return;
+ }
+
if (offset == 0 && count == procIds.length) {
delete(procIds);
} else if (count == 1) {
@@ -946,7 +949,9 @@ public class WALProcedureStore extends ProcedureStoreBase {
private boolean rollWriterWithRetries() {
for (int i = 0; i < rollRetries && isRunning(); ++i) {
- if (i > 0) Threads.sleepWithoutInterrupt(waitBeforeRoll * i);
+ if (i > 0) {
+ Threads.sleepWithoutInterrupt(waitBeforeRoll * i);
+ }
try {
if (rollWriter()) {
@@ -1084,7 +1089,7 @@ public class WALProcedureStore extends ProcedureStoreBase
{
// to provide.
final String durability = useHsync ? "hsync" : "hflush";
if (enforceStreamCapability && !(CommonFSUtils.hasCapability(newStream,
durability))) {
- throw new IllegalStateException("The procedure WAL relies on the
ability to " + durability +
+ throw new IllegalStateException("The procedure WAL relies on the ability
to " + durability +
" for proper operation during component failures, but the underlying
filesystem does " +
"not support doing so. Please check the config value of '" +
USE_HSYNC_CONF_KEY +
"' to set the desired level of robustness and ensure the config
value of '" +
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/util/DelayedUtil.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/util/DelayedUtil.java
index 471e056..4d3ebd9 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/util/DelayedUtil.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/util/DelayedUtil.java
@@ -15,7 +15,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.hadoop.hbase.procedure2.util;
import java.util.Objects;
@@ -23,9 +22,9 @@ import java.util.concurrent.DelayQueue;
import java.util.concurrent.Delayed;
import java.util.concurrent.TimeUnit;
+import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
import org.apache.yetus.audience.InterfaceAudience;
import org.apache.yetus.audience.InterfaceStability;
-import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
// FIX namings. TODO.
@InterfaceAudience.Private
@@ -138,8 +137,14 @@ public final class DelayedUtil {
@Override
public boolean equals(final Object other) {
- if (other == this) return true;
- if (!(other instanceof DelayedContainer)) return false;
+ if (other == this) {
+ return true;
+ }
+
+ if (!(other instanceof DelayedContainer)) {
+ return false;
+ }
+
return Objects.equals(getObject(),
((DelayedContainer)other).getObject());
}
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/util/StringUtils.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/util/StringUtils.java
index 73d8e16..98f05fa 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/util/StringUtils.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/util/StringUtils.java
@@ -15,7 +15,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.hadoop.hbase.procedure2.util;
import org.apache.yetus.audience.InterfaceAudience;
@@ -56,10 +55,22 @@ public final class StringUtils {
}
public static String humanSize(double size) {
- if (size >= (1L << 40)) return String.format("%.1fT", size / (1L << 40));
- if (size >= (1L << 30)) return String.format("%.1fG", size / (1L << 30));
- if (size >= (1L << 20)) return String.format("%.1fM", size / (1L << 20));
- if (size >= (1L << 10)) return String.format("%.1fK", size / (1L << 10));
+ if (size >= (1L << 40)) {
+ return String.format("%.1fT", size / (1L << 40));
+ }
+
+ if (size >= (1L << 30)) {
+ return String.format("%.1fG", size / (1L << 30));
+ }
+
+ if (size >= (1L << 20)) {
+ return String.format("%.1fM", size / (1L << 20));
+ }
+
+ if (size >= (1L << 10)) {
+ return String.format("%.1fK", size / (1L << 10));
+ }
+
return String.format("%.0f", size);
}
diff --git
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.java
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.java
index 452e08b..b885ba5 100644
---
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.java
+++
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.java
@@ -15,7 +15,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.hadoop.hbase.procedure2;
import static org.junit.Assert.assertEquals;
@@ -46,7 +45,7 @@ import
org.apache.hbase.thirdparty.com.google.protobuf.BytesValue;
import
org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState;
-public class ProcedureTestingUtility {
+public final class ProcedureTestingUtility {
private static final Logger LOG =
LoggerFactory.getLogger(ProcedureTestingUtility.class);
private ProcedureTestingUtility() {
@@ -219,7 +218,10 @@ public class ProcedureTestingUtility {
private static <TEnv> void assertSingleExecutorForKillTests(
final ProcedureExecutor<TEnv> procExecutor) {
- if (procExecutor.testing == null) return;
+ if (procExecutor.testing == null) {
+ return;
+ }
+
if (procExecutor.testing.killBeforeStoreUpdate ||
procExecutor.testing.toggleKillBeforeStoreUpdate) {
assertEquals("expected only one executor running during test with
kill/restart",
@@ -412,7 +414,9 @@ public class ProcedureTestingUtility {
}
@Override
- protected boolean abort(TEnv env) { return false; }
+ protected boolean abort(TEnv env) {
+ return false;
+ }
@Override
protected void serializeStateData(ProcedureStateSerializer serializer)
diff --git
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.java
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.java
index e734bcb..bbe3778 100644
---
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.java
+++
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.java
@@ -44,7 +44,6 @@ import
org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.Procedu
@Category({MasterTests.class, SmallTests.class})
public class TestProcedureExecution {
-
@ClassRule
public static final HBaseClassTestRule CLASS_RULE =
HBaseClassTestRule.forClass(TestProcedureExecution.class);
@@ -223,7 +222,9 @@ public class TestProcedureExecution {
}
@Override
- protected boolean abort(Void env) { return false; }
+ protected boolean abort(Void env) {
+ return false;
+ }
}
@Test
diff --git
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.java
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.java
index 2acb7dd..4d9df1a 100644
---
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.java
+++
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.java
@@ -39,7 +39,6 @@ import org.slf4j.LoggerFactory;
@Category({MasterTests.class, SmallTests.class})
public class TestProcedureMetrics {
-
@ClassRule
public static final HBaseClassTestRule CLASS_RULE =
HBaseClassTestRule.forClass(TestProcedureMetrics.class);
@@ -61,7 +60,6 @@ public class TestProcedureMetrics {
private static int successCount = 0;
private static int failedCount = 0;
-
@Before
public void setUp() throws IOException {
htu = new HBaseCommonTestingUtility();
@@ -237,7 +235,6 @@ public class TestProcedureMetrics {
@Override
protected void rollback(TestProcEnv env) throws IOException,
InterruptedException {
-
}
@Override
@@ -246,14 +243,12 @@ public class TestProcedureMetrics {
}
@Override
- protected void updateMetricsOnFinish(final TestProcEnv env, final long
time,
- boolean success) {
+ protected void updateMetricsOnFinish(final TestProcEnv env, final long
time, boolean success) {
if (success) {
successCount++;
} else {
failedCount++;
}
}
-
}
}
diff --git
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.java
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.java
index 2bf11fb..e4d0390 100644
---
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.java
+++
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.java
@@ -45,7 +45,6 @@ import org.slf4j.LoggerFactory;
@Category({MasterTests.class, SmallTests.class})
public class TestProcedureNonce {
-
@ClassRule
public static final HBaseClassTestRule CLASS_RULE =
HBaseClassTestRule.forClass(TestProcedureNonce.class);
@@ -125,7 +124,9 @@ public class TestProcedureNonce {
TestSingleStepProcedure proc = new TestSingleStepProcedure();
procEnv.setWaitLatch(latch);
long procId = procExecutor.submitProcedure(proc, nonceKey);
- while (proc.step != 1) Threads.sleep(25);
+ while (proc.step != 1) {
+ Threads.sleep(25);
+ }
// try to register a procedure with the same nonce
// we should get back the old procId
@@ -239,8 +240,14 @@ public class TestProcedureNonce {
}
};
- for (int i = 0; i < threads.length; ++i) threads[i].start();
- for (int i = 0; i < threads.length; ++i) Threads.shutdown(threads[i]);
+ for (int i = 0; i < threads.length; ++i) {
+ threads[i].start();
+ }
+
+ for (int i = 0; i < threads.length; ++i) {
+ Threads.shutdown(threads[i]);
+ }
+
ProcedureTestingUtility.waitNoProcedureRunning(procExecutor);
assertEquals(null, t1Exception.get());
assertEquals(null, t2Exception.get());
@@ -265,7 +272,9 @@ public class TestProcedureNonce {
protected void rollback(TestProcEnv env) { }
@Override
- protected boolean abort(TestProcEnv env) { return true; }
+ protected boolean abort(TestProcEnv env) {
+ return true;
+ }
}
private static class TestProcEnv {
diff --git
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.java
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.java
index 532fcf3..2827634 100644
---
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.java
+++
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.java
@@ -47,7 +47,6 @@ import
org.apache.hbase.thirdparty.com.google.protobuf.Int32Value;
@Category({MasterTests.class, SmallTests.class})
public class TestProcedureRecovery {
-
@ClassRule
public static final HBaseClassTestRule CLASS_RULE =
HBaseClassTestRule.forClass(TestProcedureRecovery.class);
@@ -114,7 +113,9 @@ public class TestProcedureRecovery {
protected void rollback(TestProcEnv env) { }
@Override
- protected boolean abort(TestProcEnv env) { return true; }
+ protected boolean abort(TestProcEnv env) {
+ return true;
+ }
}
public static class BaseTestStepProcedure extends
SequentialProcedure<TestProcEnv> {
diff --git
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.java
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.java
index 2bbd53d..ad4061c 100644
---
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.java
+++
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.java
@@ -50,7 +50,6 @@ import
org.apache.hbase.thirdparty.com.google.protobuf.Int64Value;
@Ignore
@Category({ MasterTests.class, LargeTests.class })
public class TestProcedureReplayOrder {
-
@ClassRule
public static final HBaseClassTestRule CLASS_RULE =
HBaseClassTestRule.forClass(TestProcedureReplayOrder.class);
@@ -202,7 +201,9 @@ public class TestProcedureReplayOrder {
protected void rollback(TestProcedureEnv env) { }
@Override
- protected boolean abort(TestProcedureEnv env) { return true; }
+ protected boolean abort(TestProcedureEnv env) {
+ return true;
+ }
@Override
protected void serializeStateData(ProcedureStateSerializer serializer)
diff --git
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureSchedulerConcurrency.java
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureSchedulerConcurrency.java
index d3c0ed4..0316bec 100644
---
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureSchedulerConcurrency.java
+++
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureSchedulerConcurrency.java
@@ -17,10 +17,6 @@
*/
package org.apache.hadoop.hbase.procedure2;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
import java.io.IOException;
import java.util.concurrent.ConcurrentSkipListSet;
import java.util.concurrent.atomic.AtomicInteger;
@@ -39,7 +35,6 @@ import org.slf4j.LoggerFactory;
@Category({MasterTests.class, MediumTests.class})
public class TestProcedureSchedulerConcurrency {
-
@ClassRule
public static final HBaseClassTestRule CLASS_RULE =
HBaseClassTestRule.forClass(TestProcedureSchedulerConcurrency.class);
@@ -124,7 +119,9 @@ public class TestProcedureSchedulerConcurrency {
public void run() {
while (true) {
TestProcedureWithEvent proc = (TestProcedureWithEvent)sched.poll();
- if (proc == null) continue;
+ if (proc == null) {
+ continue;
+ }
proc.getEvent().suspend();
waitQueue.add(proc);
diff --git
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureSuspended.java
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureSuspended.java
index c1c9187..d17c00c 100644
---
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureSuspended.java
+++
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureSuspended.java
@@ -40,7 +40,6 @@ import org.slf4j.LoggerFactory;
@Category({MasterTests.class, SmallTests.class})
public class TestProcedureSuspended {
-
@ClassRule
public static final HBaseClassTestRule CLASS_RULE =
HBaseClassTestRule.forClass(TestProcedureSuspended.class);
@@ -136,7 +135,10 @@ public class TestProcedureSuspended {
procExecutor.submitProcedure(p2);
// try to execute a bunch of yield on p1, p2 should be blocked
- while (p1.getTimestamps().size() < 100) Threads.sleep(10);
+ while (p1.getTimestamps().size() < 100) {
+ Threads.sleep(10);
+ }
+
assertEquals(0, p2.getTimestamps().size());
// wait until p1 is completed
@@ -144,7 +146,10 @@ public class TestProcedureSuspended {
ProcedureTestingUtility.waitProcedure(procExecutor, p1);
// try to execute a bunch of yield on p2
- while (p2.getTimestamps().size() < 100) Threads.sleep(10);
+ while (p2.getTimestamps().size() < 100) {
+ Threads.sleep(10);
+ }
+
assertEquals(p1.getTimestamps().get(p1.getTimestamps().size() -
1).longValue() + 1,
p2.getTimestamps().get(0).longValue());
@@ -155,7 +160,10 @@ public class TestProcedureSuspended {
private void waitAndAssertTimestamp(TestLockProcedure proc, int size, int
lastTs) {
final ArrayList<Long> timestamps = proc.getTimestamps();
- while (timestamps.size() < size) Threads.sleep(10);
+ while (timestamps.size() < size) {
+ Threads.sleep(10);
+ }
+
LOG.info(proc + " -> " + timestamps);
assertEquals(size, timestamps.size());
if (size > 0) {
@@ -216,7 +224,8 @@ public class TestProcedureSuspended {
@Override
protected LockState acquireLock(final TestProcEnv env) {
- if ((hasLock = lock.compareAndSet(false, true))) {
+ hasLock = lock.compareAndSet(false, true);
+ if (hasLock) {
LOG.info("ACQUIRE LOCK " + this + " " + (hasLock));
return LockState.LOCK_ACQUIRED;
}
@@ -245,7 +254,9 @@ public class TestProcedureSuspended {
}
@Override
- protected boolean abort(TestProcEnv env) { return false; }
+ protected boolean abort(TestProcEnv env) {
+ return false;
+ }
@Override
protected void serializeStateData(ProcedureStateSerializer serializer)
diff --git
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureToString.java
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureToString.java
index b220ca7..07eacfe 100644
---
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureToString.java
+++
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureToString.java
@@ -87,11 +87,9 @@ public class TestProcedureToString {
/**
* Test that I can override the toString for its state value.
- * @throws ProcedureYieldException
- * @throws InterruptedException
*/
@Test
- public void testBasicToString() throws ProcedureYieldException,
InterruptedException {
+ public void testBasicToString() {
BasicProcedure p = new BasicProcedure();
ProcedureState state = ProcedureState.RUNNABLE;
p.setState(state);
@@ -108,10 +106,11 @@ public class TestProcedureToString {
* Do-nothing SimpleMachineProcedure for checking its toString.
*/
static class SimpleStateMachineProcedure
- extends StateMachineProcedure<BasicProcedureEnv, ServerCrashState> {
+ extends StateMachineProcedure<BasicProcedureEnv, ServerCrashState> {
@Override
- protected org.apache.hadoop.hbase.procedure2.StateMachineProcedure.Flow
executeFromState(BasicProcedureEnv env,
- ServerCrashState state) throws ProcedureYieldException,
InterruptedException {
+ protected org.apache.hadoop.hbase.procedure2.StateMachineProcedure.Flow
executeFromState(
+ BasicProcedureEnv env, ServerCrashState state)
+ throws ProcedureYieldException, InterruptedException {
return null;
}
diff --git
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.java
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.java
index a2c3857..78404bd 100644
---
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.java
+++
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.java
@@ -40,7 +40,6 @@ import org.slf4j.LoggerFactory;
@Category({MasterTests.class, SmallTests.class})
public class TestStateMachineProcedure {
-
@ClassRule
public static final HBaseClassTestRule CLASS_RULE =
HBaseClassTestRule.forClass(TestStateMachineProcedure.class);
@@ -53,8 +52,14 @@ public class TestStateMachineProcedure {
@Override
public boolean equals(final Object other) {
- if (this == other) return true;
- if (!(other instanceof Exception)) return false;
+ if (this == other) {
+ return true;
+ }
+
+ if (!(other instanceof Exception)) {
+ return false;
+ }
+
// we are going to serialize the exception in the test,
// so the instance comparison will not match
return getMessage().equals(((Exception)other).getMessage());
diff --git
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.java
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.java
index b5137b0..e359e5c 100644
---
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.java
+++
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.java
@@ -42,7 +42,6 @@ import org.slf4j.LoggerFactory;
@Category({MasterTests.class, SmallTests.class})
public class TestYieldProcedures {
-
@ClassRule
public static final HBaseClassTestRule CLASS_RULE =
HBaseClassTestRule.forClass(TestYieldProcedures.class);
@@ -203,9 +202,17 @@ public class TestYieldProcedures {
this.rollback = isRollback;
}
- public State getStep() { return step; }
- public long getTimestamp() { return timestamp; }
- public boolean isRollback() { return rollback; }
+ public State getStep() {
+ return step;
+ }
+
+ public long getTimestamp() {
+ return timestamp;
+ }
+
+ public boolean isRollback() {
+ return rollback;
+ }
}
private final ArrayList<ExecutionInfo> executionInfo = new ArrayList<>();
diff --git
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/TestProcedureStoreTracker.java
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/TestProcedureStoreTracker.java
index ab448be..24c4ad0 100644
---
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/TestProcedureStoreTracker.java
+++
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/TestProcedureStoreTracker.java
@@ -34,7 +34,6 @@ import org.slf4j.LoggerFactory;
@Category({MasterTests.class, MediumTests.class})
public class TestProcedureStoreTracker {
-
@ClassRule
public static final HBaseClassTestRule CLASS_RULE =
HBaseClassTestRule.forClass(TestProcedureStoreTracker.class);
@@ -161,7 +160,9 @@ public class TestProcedureStoreTracker {
int count = 0;
while (count < NPROCEDURES) {
long procId = rand.nextLong();
- if (procId < 1) continue;
+ if (procId < 1) {
+ continue;
+ }
tracker.setDeleted(procId, i % 2 == 0);
count++;
diff --git
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALLoaderPerformanceEvaluation.java
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALLoaderPerformanceEvaluation.java
index 2372879..1d681e9 100644
---
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALLoaderPerformanceEvaluation.java
+++
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALLoaderPerformanceEvaluation.java
@@ -15,9 +15,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.hadoop.hbase.procedure2.store.wal;
+import static java.lang.System.currentTimeMillis;
+
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
@@ -39,8 +40,6 @@ import org.apache.hadoop.hbase.util.AbstractHBaseTool;
import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;
import org.apache.hbase.thirdparty.org.apache.commons.cli.Option;
-import static java.lang.System.currentTimeMillis;
-
public class ProcedureWALLoaderPerformanceEvaluation extends AbstractHBaseTool
{
protected static final HBaseCommonTestingUtility UTIL = new
HBaseCommonTestingUtility();
@@ -135,8 +134,8 @@ public class ProcedureWALLoaderPerformanceEvaluation
extends AbstractHBaseTool {
/**
* @return a list of shuffled integers which represent state of proc id.
First occurrence of a
- * number denotes insert state, consecutive occurrences denote update
states, and -ve value
- * denotes delete state.
+ * number denotes insert state, consecutive occurrences denote
update states, and -ve
+ * value denotes delete state.
*/
private List<Integer> shuffleProcWriteSequence() {
Random rand = new Random();
@@ -207,11 +206,11 @@ public class ProcedureWALLoaderPerformanceEvaluation
extends AbstractHBaseTool {
System.out.println("Load time : " + (timeTaken / 1000.0f) + "sec");
System.out.println("******************************************");
System.out.println("Raw format for scripts");
- System.out.println(String.format("RESULT [%s=%s, %s=%s, %s=%s, %s=%s,
%s=%s, "
+ System.out.println(String.format("RESULT [%s=%s, %s=%s, %s=%s, %s=%s,
%s=%s, "
+ "total_time_ms=%s]",
- NUM_PROCS_OPTION.getOpt(), numProcs, STATE_SIZE_OPTION.getOpt(),
serializedState.length,
- UPDATES_PER_PROC_OPTION.getOpt(), updatesPerProc,
DELETE_PROCS_FRACTION_OPTION.getOpt(),
- deleteProcsFraction, NUM_WALS_OPTION.getOpt(), numWals, timeTaken));
+ NUM_PROCS_OPTION.getOpt(), numProcs, STATE_SIZE_OPTION.getOpt(),
serializedState.length,
+ UPDATES_PER_PROC_OPTION.getOpt(), updatesPerProc,
DELETE_PROCS_FRACTION_OPTION.getOpt(),
+ deleteProcsFraction, NUM_WALS_OPTION.getOpt(), numWals, timeTaken));
}
public void tearDownProcedureStore() {
diff --git
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALPerformanceEvaluation.java
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALPerformanceEvaluation.java
index f37ccb3..2f37f0c 100644
---
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALPerformanceEvaluation.java
+++
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALPerformanceEvaluation.java
@@ -15,7 +15,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.hadoop.hbase.procedure2.store.wal;
import java.io.IOException;
@@ -27,12 +26,13 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
-import org.apache.hadoop.fs.*;
-import org.apache.hadoop.conf.*;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FSDataOutputStream;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseCommonTestingUtility;
import org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility;
-import org.apache.hadoop.hbase.procedure2.util.*;
-
+import org.apache.hadoop.hbase.procedure2.util.StringUtils;
import org.apache.hadoop.hbase.util.AbstractHBaseTool;
import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;
diff --git
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/TestStressWALProcedureStore.java
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/TestStressWALProcedureStore.java
index da53fa5..38f4e2c 100644
---
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/TestStressWALProcedureStore.java
+++
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/TestStressWALProcedureStore.java
@@ -113,7 +113,9 @@ public class TestStressWALProcedureStore {
procStore.insert(proc, null);
// Update
for (int i = 0, nupdates = rand.nextInt(10); i <= nupdates; ++i) {
- try { Thread.sleep(0, rand.nextInt(15)); } catch
(InterruptedException e) {}
+ try {
+ Thread.sleep(0, rand.nextInt(15));
+ } catch (InterruptedException e) {}
procStore.update(proc);
}
// Delete
diff --git
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.java
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.java
index 0f598b0..5c7f532 100644
---
a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.java
+++
b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.java
@@ -62,7 +62,6 @@ import
org.apache.hbase.thirdparty.com.google.protobuf.Int64Value;
@Category({MasterTests.class, SmallTests.class})
public class TestWALProcedureStore {
-
@ClassRule
public static final HBaseClassTestRule CLASS_RULE =
HBaseClassTestRule.forClass(TestWALProcedureStore.class);
@@ -628,19 +627,19 @@ public class TestWALProcedureStore {
// simulate another active master removing the wals
procStore = new WALProcedureStore(htu.getConfiguration(), logDir, null,
- new WALProcedureStore.LeaseRecovery() {
- private int count = 0;
-
- @Override
- public void recoverFileLease(FileSystem fs, Path path) throws
IOException {
- if (++count <= 2) {
- fs.delete(path, false);
- LOG.debug("Simulate FileNotFound at count=" + count + " for " +
path);
- throw new FileNotFoundException("test file not found " + path);
+ new WALProcedureStore.LeaseRecovery() {
+ private int count = 0;
+
+ @Override
+ public void recoverFileLease(FileSystem fs, Path path) throws
IOException {
+ if (++count <= 2) {
+ fs.delete(path, false);
+ LOG.debug("Simulate FileNotFound at count=" + count + " for " +
path);
+ throw new FileNotFoundException("test file not found " + path);
+ }
+ LOG.debug("Simulate recoverFileLease() at count=" + count + " for "
+ path);
}
- LOG.debug("Simulate recoverFileLease() at count=" + count + " for " +
path);
- }
- });
+ });
final LoadCounter loader = new LoadCounter();
procStore.start(PROCEDURE_STORE_SLOTS);