http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RandomRowFilter.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RandomRowFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RandomRowFilter.java index 1a1248e..7fea6e5 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RandomRowFilter.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RandomRowFilter.java @@ -87,7 +87,8 @@ public class RandomRowFilter extends FilterBase { public boolean filterRow() { return filterOutRow; } - + + @Override public boolean hasFilterRow() { return true; } @@ -115,6 +116,7 @@ public class RandomRowFilter extends FilterBase { /** * @return The filter serialized using pb */ + @Override public byte [] toByteArray() { FilterProtos.RandomRowFilter.Builder builder = FilterProtos.RandomRowFilter.newBuilder(); @@ -144,6 +146,7 @@ public class RandomRowFilter extends FilterBase { * @return true if and only if the fields of the filter that are serialized * are equal to the corresponding fields in other. Used for testing. */ + @Override boolean areSerializedFieldsEqual(Filter o) { if (o == this) return true; if (!(o instanceof RandomRowFilter)) return false;
http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RowFilter.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RowFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RowFilter.java index bfd88b9..88ff6c1 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RowFilter.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RowFilter.java @@ -114,6 +114,7 @@ public class RowFilter extends CompareFilter { /** * @return The filter serialized using pb */ + @Override public byte [] toByteArray() { FilterProtos.RowFilter.Builder builder = FilterProtos.RowFilter.newBuilder(); @@ -152,6 +153,7 @@ public class RowFilter extends CompareFilter { * @return true if and only if the fields of the filter that are serialized * are equal to the corresponding fields in other. Used for testing. */ + @Override boolean areSerializedFieldsEqual(Filter o) { if (o == this) return true; if (!(o instanceof RowFilter)) return false; http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SingleColumnValueExcludeFilter.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SingleColumnValueExcludeFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SingleColumnValueExcludeFilter.java index 677cff9..f39834a 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SingleColumnValueExcludeFilter.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SingleColumnValueExcludeFilter.java @@ -156,6 +156,7 @@ public class SingleColumnValueExcludeFilter extends SingleColumnValueFilter { } // We cleaned result row in FilterRow to be consistent with scanning process. + @Override public boolean hasFilterRow() { return true; } @@ -190,6 +191,7 @@ public class SingleColumnValueExcludeFilter extends SingleColumnValueFilter { /** * @return The filter serialized using pb */ + @Override public byte [] toByteArray() { FilterProtos.SingleColumnValueExcludeFilter.Builder builder = FilterProtos.SingleColumnValueExcludeFilter.newBuilder(); @@ -232,6 +234,7 @@ public class SingleColumnValueExcludeFilter extends SingleColumnValueFilter { * @return true if and only if the fields of the filter that are serialized * are equal to the corresponding fields in other. Used for testing. */ + @Override boolean areSerializedFieldsEqual(Filter o) { if (o == this) return true; if (!(o instanceof SingleColumnValueExcludeFilter)) return false; http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SingleColumnValueFilter.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SingleColumnValueFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SingleColumnValueFilter.java index 498b58f..d95320a 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SingleColumnValueFilter.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SingleColumnValueFilter.java @@ -278,16 +278,19 @@ public class SingleColumnValueFilter extends FilterBase { return CompareFilter.compare(this.op, compareResult); } + @Override public boolean filterRow() { // If column was found, return false if it was matched, true if it was not // If column not found, return true if we filter if missing, false if not return this.foundColumn? !this.matchedColumn: this.filterIfMissing; } + @Override public boolean hasFilterRow() { return true; } + @Override public void reset() { foundColumn = false; matchedColumn = false; @@ -387,6 +390,7 @@ public class SingleColumnValueFilter extends FilterBase { /** * @return The filter serialized using pb */ + @Override public byte [] toByteArray() { return convert().toByteArray(); } @@ -425,6 +429,7 @@ public class SingleColumnValueFilter extends FilterBase { * @return true if and only if the fields of the filter that are serialized * are equal to the corresponding fields in other. Used for testing. */ + @Override boolean areSerializedFieldsEqual(Filter o) { if (o == this) return true; if (!(o instanceof SingleColumnValueFilter)) return false; @@ -443,6 +448,7 @@ public class SingleColumnValueFilter extends FilterBase { * column in whole scan. If filterIfMissing == false, all families are essential, * because of possibility of skipping the rows without any data in filtered CF. */ + @Override public boolean isFamilyEssential(byte[] name) { return !this.filterIfMissing || Bytes.equals(name, this.columnFamily); } http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SkipFilter.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SkipFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SkipFilter.java index adfe1c1..d099e32 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SkipFilter.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SkipFilter.java @@ -96,10 +96,12 @@ public class SkipFilter extends FilterBase { return filter.transformCell(v); } + @Override public boolean filterRow() { return filterRow; } + @Override public boolean hasFilterRow() { return true; } @@ -107,6 +109,7 @@ public class SkipFilter extends FilterBase { /** * @return The filter serialized using pb */ + @Override public byte[] toByteArray() throws IOException { FilterProtos.SkipFilter.Builder builder = FilterProtos.SkipFilter.newBuilder(); @@ -140,6 +143,7 @@ public class SkipFilter extends FilterBase { * @return true if and only if the fields of the filter that are serialized * are equal to the corresponding fields in other. Used for testing. */ + @Override boolean areSerializedFieldsEqual(Filter o) { if (o == this) return true; if (!(o instanceof SkipFilter)) return false; @@ -148,6 +152,7 @@ public class SkipFilter extends FilterBase { return getFilter().areSerializedFieldsEqual(other.getFilter()); } + @Override public boolean isFamilyEssential(byte[] name) throws IOException { return filter.isFamilyEssential(name); } http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SubstringComparator.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SubstringComparator.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SubstringComparator.java index 69d933f..3a33116 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SubstringComparator.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SubstringComparator.java @@ -70,6 +70,7 @@ public class SubstringComparator extends ByteArrayComparable { /** * @return The comparator serialized using pb */ + @Override public byte [] toByteArray() { ComparatorProtos.SubstringComparator.Builder builder = ComparatorProtos.SubstringComparator.newBuilder(); @@ -99,6 +100,7 @@ public class SubstringComparator extends ByteArrayComparable { * @return true if and only if the fields of the comparator that are serialized * are equal to the corresponding fields in other. Used for testing. */ + @Override boolean areSerializedFieldsEqual(ByteArrayComparable other) { if (other == this) return true; if (!(other instanceof SubstringComparator)) return false; http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/TimestampsFilter.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/TimestampsFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/TimestampsFilter.java index 2742c7f..e0ec83a 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/TimestampsFilter.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/TimestampsFilter.java @@ -135,6 +135,7 @@ public class TimestampsFilter extends FilterBase { * * @throws IOException This will never happen. */ + @Override public Cell getNextCellHint(Cell currentCell) throws IOException { if (!canHint) { return null; @@ -172,6 +173,7 @@ public class TimestampsFilter extends FilterBase { /** * @return The filter serialized using pb */ + @Override public byte[] toByteArray() { FilterProtos.TimestampsFilter.Builder builder = FilterProtos.TimestampsFilter.newBuilder(); @@ -203,6 +205,7 @@ public class TimestampsFilter extends FilterBase { * @return true if and only if the fields of the filter that are serialized * are equal to the corresponding fields in other. Used for testing. */ + @Override boolean areSerializedFieldsEqual(Filter o) { if (o == this) return true; if (!(o instanceof TimestampsFilter)) return false; http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ValueFilter.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ValueFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ValueFilter.java index 17de4ff..805d7db 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ValueFilter.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ValueFilter.java @@ -93,6 +93,7 @@ public class ValueFilter extends CompareFilter { /** * @return The filter serialized using pb */ + @Override public byte [] toByteArray() { FilterProtos.ValueFilter.Builder builder = FilterProtos.ValueFilter.newBuilder(); @@ -128,10 +129,10 @@ public class ValueFilter extends CompareFilter { } /** - * @return true if and only if the fields of the filter that are serialized * are equal to the corresponding fields in other. Used for testing. */ + @Override boolean areSerializedFieldsEqual(Filter o) { if (o == this) return true; if (!(o instanceof ValueFilter)) return false; http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/WhileMatchFilter.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/WhileMatchFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/WhileMatchFilter.java index ab6200f..a6fa27a 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/WhileMatchFilter.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/WhileMatchFilter.java @@ -49,6 +49,7 @@ public class WhileMatchFilter extends FilterBase { return filter; } + @Override public void reset() throws IOException { this.filter.reset(); } @@ -110,6 +111,7 @@ public class WhileMatchFilter extends FilterBase { /** * @return The filter serialized using pb */ + @Override public byte[] toByteArray() throws IOException { FilterProtos.WhileMatchFilter.Builder builder = FilterProtos.WhileMatchFilter.newBuilder(); @@ -143,6 +145,7 @@ public class WhileMatchFilter extends FilterBase { * @return true if and only if the fields of the filter that are serialized * are equal to the corresponding fields in other. Used for testing. */ + @Override boolean areSerializedFieldsEqual(Filter o) { if (o == this) return true; if (!(o instanceof WhileMatchFilter)) return false; @@ -151,6 +154,7 @@ public class WhileMatchFilter extends FilterBase { return getFilter().areSerializedFieldsEqual(other.getFilter()); } + @Override public boolean isFamilyEssential(byte[] name) throws IOException { return filter.isFamilyEssential(name); } http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/AbstractRpcClient.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/AbstractRpcClient.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/AbstractRpcClient.java index 22da05a..0e7f376 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/AbstractRpcClient.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/AbstractRpcClient.java @@ -243,7 +243,7 @@ public abstract class AbstractRpcClient<T extends RpcConnection> implements RpcC return null; } try { - return (Codec) Class.forName(className).newInstance(); + return (Codec) Class.forName(className).getDeclaredConstructor().newInstance(); } catch (Exception e) { throw new RuntimeException("Failed getting codec " + className, e); } @@ -271,7 +271,7 @@ public abstract class AbstractRpcClient<T extends RpcConnection> implements RpcC return null; } try { - return (CompressionCodec) Class.forName(className).newInstance(); + return (CompressionCodec) Class.forName(className).getDeclaredConstructor().newInstance(); } catch (Exception e) { throw new RuntimeException("Failed getting compressor " + className, e); } http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/BlockingRpcClient.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/BlockingRpcClient.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/BlockingRpcClient.java index 2512d7b..8ab20ff 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/BlockingRpcClient.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/BlockingRpcClient.java @@ -67,6 +67,7 @@ public class BlockingRpcClient extends AbstractRpcClient<BlockingRpcConnection> * Creates a connection. Can be overridden by a subclass for testing. * @param remoteId - the ConnectionId to use for the connection creation. */ + @Override protected BlockingRpcConnection createConnection(ConnectionId remoteId) throws IOException { return new BlockingRpcConnection(this, remoteId); } http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/ConnectionId.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/ConnectionId.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/ConnectionId.java index b50d423..1396f1e 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/ConnectionId.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/ConnectionId.java @@ -1,4 +1,4 @@ -/** +/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -18,9 +18,10 @@ package org.apache.hadoop.hbase.ipc; import java.net.InetSocketAddress; +import java.util.Objects; -import org.apache.yetus.audience.InterfaceAudience; import org.apache.hadoop.hbase.security.User; +import org.apache.yetus.audience.InterfaceAudience; /** * This class holds the address and the user ticket, etc. The client connections @@ -62,8 +63,7 @@ class ConnectionId { ConnectionId id = (ConnectionId) obj; return address.equals(id.address) && ((ticket != null && ticket.equals(id.ticket)) || - (ticket == id.ticket)) && - this.serviceName == id.serviceName; + (ticket == id.ticket)) && Objects.equals(this.serviceName, id.serviceName); } return false; } @@ -73,7 +73,7 @@ class ConnectionId { return hashCode(ticket,serviceName,address); } - public static int hashCode(User ticket, String serviceName, InetSocketAddress address){ + public static int hashCode(User ticket, String serviceName, InetSocketAddress address) { return (address.hashCode() + PRIME * (PRIME * serviceName.hashCode() ^ (ticket == null ? 0 : ticket.hashCode()))); http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/QuotaRetriever.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/QuotaRetriever.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/QuotaRetriever.java index 3cd0b4c..5d1634a 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/QuotaRetriever.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/QuotaRetriever.java @@ -85,6 +85,7 @@ public class QuotaRetriever implements Closeable, Iterable<QuotaSettings> { } } + @Override public void close() throws IOException { if (this.table != null) { this.table.close(); http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerRunningException.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerRunningException.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerRunningException.java index b3a4cd3..6ff3e0d 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerRunningException.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerRunningException.java @@ -28,7 +28,7 @@ import org.apache.yetus.audience.InterfaceAudience; */ @InterfaceAudience.Public public class RegionServerRunningException extends IOException { - private static final long serialVersionUID = 1L << 31 - 1L; + private static final long serialVersionUID = (1L << 31) - 1L; /** Default Constructor */ public RegionServerRunningException() { http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/security/SaslUtil.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/security/SaslUtil.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/security/SaslUtil.java index b367874..b30715a 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/security/SaslUtil.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/security/SaslUtil.java @@ -18,6 +18,7 @@ */ package org.apache.hadoop.hbase.security; +import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.TreeMap; @@ -68,15 +69,15 @@ public class SaslUtil { } static String encodeIdentifier(byte[] identifier) { - return new String(Base64.encodeBase64(identifier)); + return new String(Base64.encodeBase64(identifier), StandardCharsets.UTF_8); } static byte[] decodeIdentifier(String identifier) { - return Base64.decodeBase64(identifier.getBytes()); + return Base64.decodeBase64(identifier.getBytes(StandardCharsets.UTF_8)); } static char[] encodePassword(byte[] password) { - return new String(Base64.encodeBase64(password)).toCharArray(); + return new String(Base64.encodeBase64(password), StandardCharsets.UTF_8).toCharArray(); } /** http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/security/access/Permission.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/security/access/Permission.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/security/access/Permission.java index c9c587e..7ff311e 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/security/access/Permission.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/security/access/Permission.java @@ -46,7 +46,7 @@ public class Permission extends VersionedWritable { public enum Action { READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A'); - private byte code; + private final byte code; Action(char code) { this.code = (byte)code; } http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityClient.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityClient.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityClient.java index ba1f1f2..35564d6 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityClient.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityClient.java @@ -19,13 +19,15 @@ package org.apache.hadoop.hbase.security.visibility; import static org.apache.hadoop.hbase.security.visibility.VisibilityConstants.LABELS_TABLE_NAME; +import com.google.protobuf.ByteString; +import com.google.protobuf.ServiceException; + import java.io.IOException; import java.util.Map; import java.util.regex.Pattern; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HConstants; -import org.apache.yetus.audience.InterfaceAudience; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.Table; @@ -44,9 +46,8 @@ import org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.Visibil import org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsService; import org.apache.hadoop.hbase.util.ByteStringer; import org.apache.hadoop.hbase.util.Bytes; +import org.apache.yetus.audience.InterfaceAudience; -import com.google.protobuf.ByteString; -import com.google.protobuf.ServiceException; /** * Utility client for doing visibility labels admin operations. @@ -122,35 +123,34 @@ public class VisibilityClient { */ public static VisibilityLabelsResponse addLabels(Connection connection, final String[] labels) throws Throwable { - try (Table table = connection.getTable(LABELS_TABLE_NAME)) { Batch.Call<VisibilityLabelsService, VisibilityLabelsResponse> callable = new Batch.Call<VisibilityLabelsService, VisibilityLabelsResponse>() { - ServerRpcController controller = new ServerRpcController(); - CoprocessorRpcUtils.BlockingRpcCallback<VisibilityLabelsResponse> rpcCallback = - new CoprocessorRpcUtils.BlockingRpcCallback<>(); + ServerRpcController controller = new ServerRpcController(); + CoprocessorRpcUtils.BlockingRpcCallback<VisibilityLabelsResponse> rpcCallback = + new CoprocessorRpcUtils.BlockingRpcCallback<>(); - public VisibilityLabelsResponse call(VisibilityLabelsService service) - throws IOException { - VisibilityLabelsRequest.Builder builder = VisibilityLabelsRequest.newBuilder(); - for (String label : labels) { - if (label.length() > 0) { - VisibilityLabel.Builder newBuilder = VisibilityLabel.newBuilder(); - newBuilder.setLabel(ByteStringer.wrap(Bytes.toBytes(label))); - builder.addVisLabel(newBuilder.build()); - } - } - service.addLabels(controller, builder.build(), rpcCallback); - VisibilityLabelsResponse response = rpcCallback.get(); - if (controller.failedOnException()) { - throw controller.getFailedOn(); - } - return response; + @Override + public VisibilityLabelsResponse call(VisibilityLabelsService service) throws IOException { + VisibilityLabelsRequest.Builder builder = VisibilityLabelsRequest.newBuilder(); + for (String label : labels) { + if (label.length() > 0) { + VisibilityLabel.Builder newBuilder = VisibilityLabel.newBuilder(); + newBuilder.setLabel(ByteStringer.wrap(Bytes.toBytes(label))); + builder.addVisLabel(newBuilder.build()); } - }; + } + service.addLabels(controller, builder.build(), rpcCallback); + VisibilityLabelsResponse response = rpcCallback.get(); + if (controller.failedOnException()) { + throw controller.getFailedOn(); + } + return response; + } + }; Map<byte[], VisibilityLabelsResponse> result = table.coprocessorService(VisibilityLabelsService.class, HConstants.EMPTY_BYTE_ARRAY, - HConstants.EMPTY_BYTE_ARRAY, callable); + HConstants.EMPTY_BYTE_ARRAY, callable); return result.values().iterator().next(); // There will be exactly one region for labels // table and so one entry in result Map. } @@ -208,30 +208,31 @@ public class VisibilityClient { */ public static GetAuthsResponse getAuths(Connection connection, final String user) throws Throwable { - try (Table table = connection.getTable(LABELS_TABLE_NAME)) { - Batch.Call<VisibilityLabelsService, GetAuthsResponse> callable = - new Batch.Call<VisibilityLabelsService, GetAuthsResponse>() { - ServerRpcController controller = new ServerRpcController(); - CoprocessorRpcUtils.BlockingRpcCallback<GetAuthsResponse> rpcCallback = - new CoprocessorRpcUtils.BlockingRpcCallback<>(); + try (Table table = connection.getTable(LABELS_TABLE_NAME)) { + Batch.Call<VisibilityLabelsService, GetAuthsResponse> callable = + new Batch.Call<VisibilityLabelsService, GetAuthsResponse>() { + ServerRpcController controller = new ServerRpcController(); + CoprocessorRpcUtils.BlockingRpcCallback<GetAuthsResponse> rpcCallback = + new CoprocessorRpcUtils.BlockingRpcCallback<>(); - public GetAuthsResponse call(VisibilityLabelsService service) throws IOException { - GetAuthsRequest.Builder getAuthReqBuilder = GetAuthsRequest.newBuilder(); - getAuthReqBuilder.setUser(ByteStringer.wrap(Bytes.toBytes(user))); - service.getAuths(controller, getAuthReqBuilder.build(), rpcCallback); - GetAuthsResponse response = rpcCallback.get(); - if (controller.failedOnException()) { - throw controller.getFailedOn(); - } - return response; + @Override + public GetAuthsResponse call(VisibilityLabelsService service) throws IOException { + GetAuthsRequest.Builder getAuthReqBuilder = GetAuthsRequest.newBuilder(); + getAuthReqBuilder.setUser(ByteStringer.wrap(Bytes.toBytes(user))); + service.getAuths(controller, getAuthReqBuilder.build(), rpcCallback); + GetAuthsResponse response = rpcCallback.get(); + if (controller.failedOnException()) { + throw controller.getFailedOn(); } - }; - Map<byte[], GetAuthsResponse> result = - table.coprocessorService(VisibilityLabelsService.class, - HConstants.EMPTY_BYTE_ARRAY, HConstants.EMPTY_BYTE_ARRAY, callable); - return result.values().iterator().next(); // There will be exactly one region for labels - // table and so one entry in result Map. - } + return response; + } + }; + Map<byte[], GetAuthsResponse> result = + table.coprocessorService(VisibilityLabelsService.class, HConstants.EMPTY_BYTE_ARRAY, + HConstants.EMPTY_BYTE_ARRAY, callable); + return result.values().iterator().next(); // There will be exactly one region for labels + // table and so one entry in result Map. + } } /** @@ -262,28 +263,29 @@ public class VisibilityClient { try (Table table = connection.getTable(LABELS_TABLE_NAME)) { Batch.Call<VisibilityLabelsService, ListLabelsResponse> callable = new Batch.Call<VisibilityLabelsService, ListLabelsResponse>() { - ServerRpcController controller = new ServerRpcController(); - CoprocessorRpcUtils.BlockingRpcCallback<ListLabelsResponse> rpcCallback = - new CoprocessorRpcUtils.BlockingRpcCallback<>(); + ServerRpcController controller = new ServerRpcController(); + CoprocessorRpcUtils.BlockingRpcCallback<ListLabelsResponse> rpcCallback = + new CoprocessorRpcUtils.BlockingRpcCallback<>(); - public ListLabelsResponse call(VisibilityLabelsService service) throws IOException { - ListLabelsRequest.Builder listAuthLabelsReqBuilder = ListLabelsRequest.newBuilder(); - if (regex != null) { - // Compile the regex here to catch any regex exception earlier. - Pattern pattern = Pattern.compile(regex); - listAuthLabelsReqBuilder.setRegex(pattern.toString()); - } - service.listLabels(controller, listAuthLabelsReqBuilder.build(), rpcCallback); - ListLabelsResponse response = rpcCallback.get(); - if (controller.failedOnException()) { - throw controller.getFailedOn(); - } - return response; - } - }; + @Override + public ListLabelsResponse call(VisibilityLabelsService service) throws IOException { + ListLabelsRequest.Builder listAuthLabelsReqBuilder = ListLabelsRequest.newBuilder(); + if (regex != null) { + // Compile the regex here to catch any regex exception earlier. + Pattern pattern = Pattern.compile(regex); + listAuthLabelsReqBuilder.setRegex(pattern.toString()); + } + service.listLabels(controller, listAuthLabelsReqBuilder.build(), rpcCallback); + ListLabelsResponse response = rpcCallback.get(); + if (controller.failedOnException()) { + throw controller.getFailedOn(); + } + return response; + } + }; Map<byte[], ListLabelsResponse> result = table.coprocessorService(VisibilityLabelsService.class, HConstants.EMPTY_BYTE_ARRAY, - HConstants.EMPTY_BYTE_ARRAY, callable); + HConstants.EMPTY_BYTE_ARRAY, callable); return result.values().iterator().next(); // There will be exactly one region for labels // table and so one entry in result Map. } @@ -321,40 +323,41 @@ public class VisibilityClient { private static VisibilityLabelsResponse setOrClearAuths(Connection connection, final String[] auths, final String user, final boolean setOrClear) - throws IOException, ServiceException, Throwable { + throws IOException, ServiceException, Throwable { - try (Table table = connection.getTable(LABELS_TABLE_NAME)) { - Batch.Call<VisibilityLabelsService, VisibilityLabelsResponse> callable = - new Batch.Call<VisibilityLabelsService, VisibilityLabelsResponse>() { - ServerRpcController controller = new ServerRpcController(); - CoprocessorRpcUtils.BlockingRpcCallback<VisibilityLabelsResponse> rpcCallback = - new CoprocessorRpcUtils.BlockingRpcCallback<>(); + try (Table table = connection.getTable(LABELS_TABLE_NAME)) { + Batch.Call<VisibilityLabelsService, VisibilityLabelsResponse> callable = + new Batch.Call<VisibilityLabelsService, VisibilityLabelsResponse>() { + ServerRpcController controller = new ServerRpcController(); + CoprocessorRpcUtils.BlockingRpcCallback<VisibilityLabelsResponse> rpcCallback = + new CoprocessorRpcUtils.BlockingRpcCallback<>(); - public VisibilityLabelsResponse call(VisibilityLabelsService service) throws IOException { - SetAuthsRequest.Builder setAuthReqBuilder = SetAuthsRequest.newBuilder(); - setAuthReqBuilder.setUser(ByteStringer.wrap(Bytes.toBytes(user))); - for (String auth : auths) { - if (auth.length() > 0) { - setAuthReqBuilder.addAuth((ByteString.copyFromUtf8(auth))); - } + @Override + public VisibilityLabelsResponse call(VisibilityLabelsService service) throws IOException { + SetAuthsRequest.Builder setAuthReqBuilder = SetAuthsRequest.newBuilder(); + setAuthReqBuilder.setUser(ByteStringer.wrap(Bytes.toBytes(user))); + for (String auth : auths) { + if (auth.length() > 0) { + setAuthReqBuilder.addAuth((ByteString.copyFromUtf8(auth))); } - if (setOrClear) { - service.setAuths(controller, setAuthReqBuilder.build(), rpcCallback); - } else { - service.clearAuths(controller, setAuthReqBuilder.build(), rpcCallback); - } - VisibilityLabelsResponse response = rpcCallback.get(); - if (controller.failedOnException()) { - throw controller.getFailedOn(); - } - return response; } - }; - Map<byte[], VisibilityLabelsResponse> result = table.coprocessorService( - VisibilityLabelsService.class, HConstants.EMPTY_BYTE_ARRAY, HConstants.EMPTY_BYTE_ARRAY, - callable); - return result.values().iterator().next(); // There will be exactly one region for labels - // table and so one entry in result Map. - } + if (setOrClear) { + service.setAuths(controller, setAuthReqBuilder.build(), rpcCallback); + } else { + service.clearAuths(controller, setAuthReqBuilder.build(), rpcCallback); + } + VisibilityLabelsResponse response = rpcCallback.get(); + if (controller.failedOnException()) { + throw controller.getFailedOn(); + } + return response; + } + }; + Map<byte[], VisibilityLabelsResponse> result = table.coprocessorService( + VisibilityLabelsService.class, HConstants.EMPTY_BYTE_ARRAY, HConstants.EMPTY_BYTE_ARRAY, + callable); + return result.values().iterator().next(); // There will be exactly one region for labels + // table and so one entry in result Map. + } } } http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ResponseConverter.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ResponseConverter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ResponseConverter.java index 1d938c2..305ec4d 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ResponseConverter.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ResponseConverter.java @@ -417,7 +417,7 @@ public final class ResponseConverter { public static Map<String, Long> getScanMetrics(ScanResponse response) { Map<String, Long> metricMap = new HashMap<>(); - if (response == null || !response.hasScanMetrics() || response.getScanMetrics() == null) { + if (response == null || !response.hasScanMetrics()) { return metricMap; } http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/main/java/org/apache/hadoop/hbase/util/PoolMap.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/util/PoolMap.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/util/PoolMap.java index d7eb2bc..f174c96 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/util/PoolMap.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/util/PoolMap.java @@ -298,7 +298,7 @@ public class PoolMap<K, V> implements Map<K, V> { * the type of the resource */ @SuppressWarnings("serial") - public class ReusablePool<R> extends ConcurrentLinkedQueue<R> implements Pool<R> { + public static class ReusablePool<R> extends ConcurrentLinkedQueue<R> implements Pool<R> { private int maxSize; public ReusablePool(int maxSize) { @@ -342,7 +342,7 @@ public class PoolMap<K, V> implements Map<K, V> { * */ @SuppressWarnings("serial") - class RoundRobinPool<R> extends CopyOnWriteArrayList<R> implements Pool<R> { + static class RoundRobinPool<R> extends CopyOnWriteArrayList<R> implements Pool<R> { private int maxSize; private int nextResource = 0; http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/test/java/org/apache/hadoop/hbase/TestHColumnDescriptor.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/TestHColumnDescriptor.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/TestHColumnDescriptor.java index cfbfccb..976dfad 100644 --- a/hbase-client/src/test/java/org/apache/hadoop/hbase/TestHColumnDescriptor.java +++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/TestHColumnDescriptor.java @@ -20,6 +20,8 @@ package org.apache.hadoop.hbase; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import java.nio.charset.StandardCharsets; + import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.exceptions.HBaseException; import org.apache.hadoop.hbase.io.compress.Compression; @@ -32,13 +34,17 @@ import org.apache.hadoop.hbase.testclassification.MiscTests; import org.apache.hadoop.hbase.testclassification.SmallTests; import org.apache.hadoop.hbase.util.BuilderStyleTest; import org.junit.Assert; +import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; +import org.junit.rules.ExpectedException; /** Tests the HColumnDescriptor with appropriate arguments */ @Category({MiscTests.class, SmallTests.class}) @Deprecated public class TestHColumnDescriptor { + @Rule + public ExpectedException expectedEx = ExpectedException.none(); @Test public void testPb() throws DeserializationException { HColumnDescriptor hcd = new HColumnDescriptor( @@ -87,15 +93,14 @@ public class TestHColumnDescriptor { assertEquals(v, deserializedHcd.getDFSReplication()); } + /** + * Tests HColumnDescriptor with empty familyName + */ @Test - /** Tests HColumnDescriptor with empty familyName*/ - public void testHColumnDescriptorShouldThrowIAEWhenFamiliyNameEmpty() - throws Exception { - try { - new HColumnDescriptor("".getBytes()); - } catch (IllegalArgumentException e) { - assertEquals("Column Family name can not be empty", e.getLocalizedMessage()); - } + public void testHColumnDescriptorShouldThrowIAEWhenFamilyNameEmpty() throws Exception { + expectedEx.expect(IllegalArgumentException.class); + expectedEx.expectMessage("Column Family name can not be empty"); + new HColumnDescriptor("".getBytes(StandardCharsets.UTF_8)); } /** http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/test/java/org/apache/hadoop/hbase/TestHTableDescriptor.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/TestHTableDescriptor.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/TestHTableDescriptor.java index 9bbdf50..c8a3957 100644 --- a/hbase-client/src/test/java/org/apache/hadoop/hbase/TestHTableDescriptor.java +++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/TestHTableDescriptor.java @@ -108,7 +108,7 @@ public class TestHTableDescriptor { assertEquals(v, deserializedHtd.getMaxFileSize()); assertTrue(deserializedHtd.isReadOnly()); assertEquals(Durability.ASYNC_WAL, deserializedHtd.getDurability()); - assertEquals(deserializedHtd.getRegionReplication(), 2); + assertEquals(2, deserializedHtd.getRegionReplication()); } /** http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/test/java/org/apache/hadoop/hbase/TestInterfaceAudienceAnnotations.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/TestInterfaceAudienceAnnotations.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/TestInterfaceAudienceAnnotations.java index 4d92404..7b5aa5c 100644 --- a/hbase-client/src/test/java/org/apache/hadoop/hbase/TestInterfaceAudienceAnnotations.java +++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/TestInterfaceAudienceAnnotations.java @@ -75,14 +75,14 @@ public class TestInterfaceAudienceAnnotations { private static final Log LOG = LogFactory.getLog(TestInterfaceAudienceAnnotations.class); /** Selects classes with generated in their package name */ - class GeneratedClassFilter implements ClassFinder.ClassFilter { + static class GeneratedClassFilter implements ClassFinder.ClassFilter { @Override public boolean isCandidateClass(Class<?> c) { return c.getPackage().getName().contains("generated"); } } - class ShadedProtobufClassFilter implements ClassFinder.ClassFilter { + static class ShadedProtobufClassFilter implements ClassFinder.ClassFilter { @Override public boolean isCandidateClass(Class<?> c) { return c.getPackage().getName(). @@ -242,7 +242,7 @@ public class TestInterfaceAudienceAnnotations { } /** Selects classes that are declared public */ - class PublicClassFilter implements ClassFinder.ClassFilter { + static class PublicClassFilter implements ClassFinder.ClassFilter { @Override public boolean isCandidateClass(Class<?> c) { int mod = c.getModifiers(); @@ -251,7 +251,7 @@ public class TestInterfaceAudienceAnnotations { } /** Selects paths (jars and class dirs) only from the main code, not test classes */ - class MainCodeResourcePathFilter implements ClassFinder.ResourcePathFilter { + static class MainCodeResourcePathFilter implements ClassFinder.ResourcePathFilter { @Override public boolean isCandidatePath(String resourcePath, boolean isJar) { return !resourcePath.contains("test-classes") && @@ -268,7 +268,7 @@ public class TestInterfaceAudienceAnnotations { * - enclosing class is not an interface * - name starts with "__CLR" */ - class CloverInstrumentationFilter implements ClassFinder.ClassFilter { + static class CloverInstrumentationFilter implements ClassFinder.ClassFilter { @Override public boolean isCandidateClass(Class<?> clazz) { boolean clover = false; http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncProcess.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncProcess.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncProcess.java index f9fbe85..ea75ac8 100644 --- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncProcess.java +++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncProcess.java @@ -1,5 +1,4 @@ /* - * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -25,6 +24,7 @@ import static org.junit.Assert.assertTrue; import java.io.IOException; import java.io.InterruptedIOException; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -88,12 +88,13 @@ public class TestAsyncProcess { private static final Log LOG = LogFactory.getLog(TestAsyncProcess.class); private static final TableName DUMMY_TABLE = TableName.valueOf("DUMMY_TABLE"); - private static final byte[] DUMMY_BYTES_1 = "DUMMY_BYTES_1".getBytes(); - private static final byte[] DUMMY_BYTES_2 = "DUMMY_BYTES_2".getBytes(); - private static final byte[] DUMMY_BYTES_3 = "DUMMY_BYTES_3".getBytes(); - private static final byte[] FAILS = "FAILS".getBytes(); + private static final byte[] DUMMY_BYTES_1 = "DUMMY_BYTES_1".getBytes(StandardCharsets.UTF_8); + private static final byte[] DUMMY_BYTES_2 = "DUMMY_BYTES_2".getBytes(StandardCharsets.UTF_8); + private static final byte[] DUMMY_BYTES_3 = "DUMMY_BYTES_3".getBytes(StandardCharsets.UTF_8); + private static final byte[] FAILS = "FAILS".getBytes(StandardCharsets.UTF_8); private static final Configuration CONF = new Configuration(); - private static final ConnectionConfiguration CONNECTION_CONFIG = new ConnectionConfiguration(CONF); + private static final ConnectionConfiguration CONNECTION_CONFIG = + new ConnectionConfiguration(CONF); private static final ServerName sn = ServerName.valueOf("s1,1,1"); private static final ServerName sn2 = ServerName.valueOf("s2,2,2"); private static final ServerName sn3 = ServerName.valueOf("s3,3,3"); @@ -115,7 +116,8 @@ public class TestAsyncProcess { new HRegionLocation(hri1r1, sn2), new HRegionLocation(hri1r2, sn3)); private static final RegionLocations hrls2 = new RegionLocations(new HRegionLocation(hri2, sn2), new HRegionLocation(hri2r1, sn3)); - private static final RegionLocations hrls3 = new RegionLocations(new HRegionLocation(hri3, sn3), null); + private static final RegionLocations hrls3 = + new RegionLocations(new HRegionLocation(hri3, sn3), null); private static final String success = "success"; private static Exception failure = new Exception("failure"); @@ -325,7 +327,7 @@ public class TestAsyncProcess { public AsyncProcessWithFailure(ClusterConnection hc, Configuration conf, IOException ioe) { super(hc, conf, true); this.ioe = ioe; - serverTrackerTimeout = 1; + serverTrackerTimeout = 1L; } @Override @@ -351,7 +353,8 @@ public class TestAsyncProcess { return inc.getAndIncrement(); } } - class MyAsyncProcessWithReplicas extends MyAsyncProcess { + + static class MyAsyncProcessWithReplicas extends MyAsyncProcess { private Set<byte[]> failures = new TreeSet<>(new Bytes.ByteArrayComparator()); private long primarySleepMs = 0, replicaSleepMs = 0; private Map<ServerName, Long> customPrimarySleepMs = new HashMap<>(); @@ -589,7 +592,13 @@ public class TestAsyncProcess { Random rn = new Random(); final long limit = 10 * 1024 * 1024; final int requestCount = 1 + (int) (rn.nextDouble() * 3); - long putsHeapSize = Math.abs(rn.nextLong()) % limit; + long n = rn.nextLong(); + if (n < 0) { + n = -n; + } else if (n == 0) { + n = 1; + } + long putsHeapSize = n % limit; long maxHeapSizePerRequest = putsHeapSize / requestCount; LOG.info("[testSubmitRandomSizeRequest] maxHeapSizePerRequest=" + maxHeapSizePerRequest + ", putsHeapSize=" + putsHeapSize); @@ -612,13 +621,15 @@ public class TestAsyncProcess { private void doSubmitRequest(long maxHeapSizePerRequest, long putsHeapSize) throws Exception { ClusterConnection conn = createHConnection(); - final String defaultClazz = conn.getConfiguration().get(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY); + final String defaultClazz = + conn.getConfiguration().get(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY); final long defaultHeapSizePerRequest = conn.getConfiguration().getLong( SimpleRequestController.HBASE_CLIENT_MAX_PERREQUEST_HEAPSIZE, SimpleRequestController.DEFAULT_HBASE_CLIENT_MAX_PERREQUEST_HEAPSIZE); conn.getConfiguration().set(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY, SimpleRequestController.class.getName()); - conn.getConfiguration().setLong(SimpleRequestController.HBASE_CLIENT_MAX_PERREQUEST_HEAPSIZE, maxHeapSizePerRequest); + conn.getConfiguration().setLong(SimpleRequestController.HBASE_CLIENT_MAX_PERREQUEST_HEAPSIZE, + maxHeapSizePerRequest); // sn has two regions long putSizeSN = 0; @@ -640,10 +651,11 @@ public class TestAsyncProcess { int minCountSnRequest = (int) calculateRequestCount(putSizeSN, maxHeapSizePerRequest); int minCountSn2Request = (int) calculateRequestCount(putSizeSN2, maxHeapSizePerRequest); - LOG.info("Total put count:" + puts.size() + ", putSizeSN:"+ putSizeSN + ", putSizeSN2:" + putSizeSN2 - + ", maxHeapSizePerRequest:" + maxHeapSizePerRequest - + ", minCountSnRequest:" + minCountSnRequest - + ", minCountSn2Request:" + minCountSn2Request); + LOG.info("Total put count:" + puts.size() + ", putSizeSN:"+ putSizeSN + + ", putSizeSN2:" + putSizeSN2 + + ", maxHeapSizePerRequest:" + maxHeapSizePerRequest + + ", minCountSnRequest:" + minCountSnRequest + + ", minCountSn2Request:" + minCountSn2Request); MyAsyncProcess ap = new MyAsyncProcess(conn, CONF, true); BufferedMutatorParams bufferParam = createBufferedMutatorParams(ap, DUMMY_TABLE); @@ -683,7 +695,7 @@ public class TestAsyncProcess { sum += size; } assertEquals(true, sum <= maxHeapSizePerRequest); - long value = sizePerServers.containsKey(entry.getKey()) ? sizePerServers.get(entry.getKey()) : 0L; + long value = sizePerServers.getOrDefault(entry.getKey(), 0L); sizePerServers.put(entry.getKey(), value + sum); } } @@ -694,7 +706,8 @@ public class TestAsyncProcess { assertEquals(putSizeSN2, (long) sizePerServers.get(sn2)); } // restore config. - conn.getConfiguration().setLong(SimpleRequestController.HBASE_CLIENT_MAX_PERREQUEST_HEAPSIZE, defaultHeapSizePerRequest); + conn.getConfiguration().setLong(SimpleRequestController.HBASE_CLIENT_MAX_PERREQUEST_HEAPSIZE, + defaultHeapSizePerRequest); if (defaultClazz != null) { conn.getConfiguration().set(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY, defaultClazz); @@ -731,13 +744,14 @@ public class TestAsyncProcess { final AsyncRequestFuture ars = ap.submit(null, DUMMY_TABLE, puts, false, cb, false); Assert.assertTrue(puts.isEmpty()); ars.waitUntilDone(); - Assert.assertEquals(updateCalled.get(), 1); + Assert.assertEquals(1, updateCalled.get()); } @Test public void testSubmitBusyRegion() throws Exception { ClusterConnection conn = createHConnection(); - final String defaultClazz = conn.getConfiguration().get(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY); + final String defaultClazz = + conn.getConfiguration().get(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY); conn.getConfiguration().set(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY, SimpleRequestController.class.getName()); MyAsyncProcess ap = new MyAsyncProcess(conn, CONF); @@ -765,11 +779,13 @@ public class TestAsyncProcess { public void testSubmitBusyRegionServer() throws Exception { ClusterConnection conn = createHConnection(); MyAsyncProcess ap = new MyAsyncProcess(conn, CONF); - final String defaultClazz = conn.getConfiguration().get(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY); + final String defaultClazz = + conn.getConfiguration().get(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY); conn.getConfiguration().set(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY, SimpleRequestController.class.getName()); SimpleRequestController controller = (SimpleRequestController) ap.requestController; - controller.taskCounterPerServer.put(sn2, new AtomicInteger(controller.maxConcurrentTasksPerServer)); + controller.taskCounterPerServer.put(sn2, + new AtomicInteger(controller.maxConcurrentTasksPerServer)); List<Put> puts = new ArrayList<>(4); puts.add(createPut(1, true)); @@ -780,7 +796,8 @@ public class TestAsyncProcess { ap.submit(null, DUMMY_TABLE, puts, false, null, false); Assert.assertEquals(" puts=" + puts, 1, puts.size()); - controller.taskCounterPerServer.put(sn2, new AtomicInteger(controller.maxConcurrentTasksPerServer - 1)); + controller.taskCounterPerServer.put(sn2, + new AtomicInteger(controller.maxConcurrentTasksPerServer - 1)); ap.submit(null, DUMMY_TABLE, puts, false, null, false); Assert.assertTrue(puts.isEmpty()); if (defaultClazz != null) { @@ -819,7 +836,8 @@ public class TestAsyncProcess { public void testSubmitTrue() throws IOException { ClusterConnection conn = createHConnection(); final MyAsyncProcess ap = new MyAsyncProcess(conn, CONF, false); - final String defaultClazz = conn.getConfiguration().get(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY); + final String defaultClazz = + conn.getConfiguration().get(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY); conn.getConfiguration().set(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY, SimpleRequestController.class.getName()); SimpleRequestController controller = (SimpleRequestController) ap.requestController; @@ -923,7 +941,8 @@ public class TestAsyncProcess { Mockito.when(conn.getConfiguration()).thenReturn(copyConf); Mockito.when(conn.getStatisticsTracker()).thenReturn(ServerStatisticTracker.create(copyConf)); Mockito.when(conn.getBackoffPolicy()).thenReturn(bp); - final String defaultClazz = conn.getConfiguration().get(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY); + final String defaultClazz = + conn.getConfiguration().get(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY); conn.getConfiguration().set(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY, SimpleRequestController.class.getName()); MyAsyncProcess ap = new MyAsyncProcess(conn, copyConf, false); @@ -934,7 +953,8 @@ public class TestAsyncProcess { } } - private void testTaskCount(MyAsyncProcess ap) throws InterruptedIOException, InterruptedException { + private void testTaskCount(MyAsyncProcess ap) + throws InterruptedIOException, InterruptedException { SimpleRequestController controller = (SimpleRequestController) ap.requestController; List<Put> puts = new ArrayList<>(); for (int i = 0; i != 3; ++i) { @@ -958,7 +978,8 @@ public class TestAsyncProcess { @Test public void testMaxTask() throws Exception { ClusterConnection conn = createHConnection(); - final String defaultClazz = conn.getConfiguration().get(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY); + final String defaultClazz = + conn.getConfiguration().get(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY); conn.getConfiguration().set(RequestControllerFactory.REQUEST_CONTROLLER_IMPL_CONF_KEY, SimpleRequestController.class.getName()); final MyAsyncProcess ap = new MyAsyncProcess(conn, CONF, false); @@ -966,7 +987,7 @@ public class TestAsyncProcess { for (int i = 0; i < 1000; i++) { - ap.incTaskCounters(Collections.singleton("dummy".getBytes()), sn); + ap.incTaskCounters(Collections.singleton("dummy".getBytes(StandardCharsets.UTF_8)), sn); } final Thread myThread = Thread.currentThread(); @@ -997,7 +1018,7 @@ public class TestAsyncProcess { public void run() { Threads.sleep(sleepTime); while (controller.tasksInProgress.get() > 0) { - ap.decTaskCounters(Collections.singleton("dummy".getBytes()), sn); + ap.decTaskCounters(Collections.singleton("dummy".getBytes(StandardCharsets.UTF_8)), sn); } } }; @@ -1020,8 +1041,8 @@ public class TestAsyncProcess { setMockLocation(hc, DUMMY_BYTES_1, new RegionLocations(loc1)); setMockLocation(hc, DUMMY_BYTES_2, new RegionLocations(loc2)); setMockLocation(hc, DUMMY_BYTES_3, new RegionLocations(loc3)); - Mockito.when(hc.locateRegions(Mockito.eq(DUMMY_TABLE), Mockito.anyBoolean(), Mockito.anyBoolean())) - .thenReturn(Arrays.asList(loc1, loc2, loc3)); + Mockito.when(hc.locateRegions(Mockito.eq(DUMMY_TABLE), Mockito.anyBoolean(), + Mockito.anyBoolean())).thenReturn(Arrays.asList(loc1, loc2, loc3)); setMockLocation(hc, FAILS, new RegionLocations(loc2)); return hc; } @@ -1041,8 +1062,8 @@ public class TestAsyncProcess { for (HRegionLocation loc : hrls3.getRegionLocations()) { locations.add(loc); } - Mockito.when(hc.locateRegions(Mockito.eq(DUMMY_TABLE), Mockito.anyBoolean(), Mockito.anyBoolean())) - .thenReturn(locations); + Mockito.when(hc.locateRegions(Mockito.eq(DUMMY_TABLE), Mockito.anyBoolean(), + Mockito.anyBoolean())).thenReturn(locations); return hc; } @@ -1073,7 +1094,8 @@ public class TestAsyncProcess { Put put = createPut(1, true); - Assert.assertEquals(conn.getConnectionConfiguration().getWriteBufferSize(), ht.getWriteBufferSize()); + Assert.assertEquals(conn.getConnectionConfiguration().getWriteBufferSize(), + ht.getWriteBufferSize()); Assert.assertEquals(0, ht.getCurrentWriteBufferSize()); ht.mutate(put); ht.flush(); @@ -1161,13 +1183,13 @@ public class TestAsyncProcess { } catch (RetriesExhaustedException expected) { } - Assert.assertEquals(res[0], success); - Assert.assertEquals(res[1], success); - Assert.assertEquals(res[2], success); - Assert.assertEquals(res[3], success); - Assert.assertEquals(res[4], failure); - Assert.assertEquals(res[5], success); - Assert.assertEquals(res[6], failure); + Assert.assertEquals(success, res[0]); + Assert.assertEquals(success, res[1]); + Assert.assertEquals(success, res[2]); + Assert.assertEquals(success, res[3]); + Assert.assertEquals(failure, res[4]); + Assert.assertEquals(success, res[5]); + Assert.assertEquals(failure, res[6]); } @Test public void testErrorsServers() throws IOException { @@ -1179,8 +1201,8 @@ public class TestAsyncProcess { configuration.setBoolean(ConnectionImplementation.RETRIES_BY_SERVER_KEY, true); Assert.assertNotNull(ap.createServerErrorTracker()); - Assert.assertTrue(ap.serverTrackerTimeout > 200); - ap.serverTrackerTimeout = 1; + Assert.assertTrue(ap.serverTrackerTimeout > 200L); + ap.serverTrackerTimeout = 1L; Put p = createPut(1, false); mutator.mutate(p); @@ -1258,7 +1280,8 @@ public class TestAsyncProcess { @Test public void testCallQueueTooLarge() throws IOException { ClusterConnection conn = new MyConnectionImpl(CONF); - AsyncProcessWithFailure ap = new AsyncProcessWithFailure(conn, CONF, new CallQueueTooBigException()); + AsyncProcessWithFailure ap = + new AsyncProcessWithFailure(conn, CONF, new CallQueueTooBigException()); BufferedMutatorParams bufferParam = createBufferedMutatorParams(ap, DUMMY_TABLE); BufferedMutatorImpl mutator = new BufferedMutatorImpl(conn, bufferParam, ap); Assert.assertNotNull(ap.createServerErrorTracker()); @@ -1298,7 +1321,7 @@ public class TestAsyncProcess { ht.multiAp = ap; ht.batch(gets, null); - Assert.assertEquals(ap.nbActions.get(), NB_REGS); + Assert.assertEquals(NB_REGS, ap.nbActions.get()); Assert.assertEquals("1 multi response per server", 2, ap.nbMultiResponse.get()); Assert.assertEquals("1 thread per server", 2, con.nbThreads.get()); @@ -1306,7 +1329,7 @@ public class TestAsyncProcess { for (int i =0; i<NB_REGS; i++){ if (con.usedRegions[i]) nbReg++; } - Assert.assertEquals("nbReg=" + nbReg, nbReg, NB_REGS); + Assert.assertEquals("nbReg=" + nbReg, NB_REGS, nbReg); } @Test @@ -1479,7 +1502,8 @@ public class TestAsyncProcess { return ap; } - private static BufferedMutatorParams createBufferedMutatorParams(MyAsyncProcess ap, TableName name) { + private static BufferedMutatorParams createBufferedMutatorParams(MyAsyncProcess ap, + TableName name) { return new BufferedMutatorParams(name) .pool(ap.service) .rpcTimeout(RPC_TIMEOUT) http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestBufferedMutatorParams.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestBufferedMutatorParams.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestBufferedMutatorParams.java index 6fdde25..0646f41 100644 --- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestBufferedMutatorParams.java +++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestBufferedMutatorParams.java @@ -49,57 +49,69 @@ public class TestBufferedMutatorParams { */ private class MockExecutorService implements ExecutorService { + @Override public void execute(Runnable command) { } + @Override public void shutdown() { } + @Override public List<Runnable> shutdownNow() { return null; } + @Override public boolean isShutdown() { return false; } + @Override public boolean isTerminated() { return false; } - public boolean awaitTermination(long timeout, TimeUnit unit) - throws InterruptedException { + @Override + public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException { return false; } + @Override public <T> Future<T> submit(Callable<T> task) { return null; } + @Override public <T> Future<T> submit(Runnable task, T result) { return null; } + @Override public Future<?> submit(Runnable task) { return null; } + @Override public <T> List<Future<T>> invokeAll( Collection<? extends Callable<T>> tasks) throws InterruptedException { return null; } + @Override public <T> List<Future<T>> invokeAll( Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException { return null; } + @Override public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException { return null; } + @Override public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { @@ -110,8 +122,8 @@ public class TestBufferedMutatorParams { /** * Just to create an instance, this doesn't actually function. */ - private class MockExceptionListener - implements BufferedMutator.ExceptionListener { + private static class MockExceptionListener implements BufferedMutator.ExceptionListener { + @Override public void onException(RetriesExhaustedWithDetailsException exception, BufferedMutator mutator) throws RetriesExhaustedWithDetailsException { } http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestClientExponentialBackoff.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestClientExponentialBackoff.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestClientExponentialBackoff.java index dcd2230..dc0459d 100644 --- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestClientExponentialBackoff.java +++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestClientExponentialBackoff.java @@ -126,8 +126,8 @@ public class TestClientExponentialBackoff { update(stats, 0, 98, 0); backoffTime = backoff.getBackoffTime(server, regionname, stats); - assertEquals("We should be using max backoff when at high watermark", backoffTime, - ExponentialClientBackoffPolicy.DEFAULT_MAX_BACKOFF); + assertEquals("We should be using max backoff when at high watermark", + ExponentialClientBackoffPolicy.DEFAULT_MAX_BACKOFF, backoffTime); } @Test @@ -150,8 +150,8 @@ public class TestClientExponentialBackoff { update(stats, 0, 0, 100); backoffTime = backoff.getBackoffTime(server, regionname, stats); - assertEquals("under heavy compaction pressure", backoffTime, - ExponentialClientBackoffPolicy.DEFAULT_MAX_BACKOFF); + assertEquals("under heavy compaction pressure", + ExponentialClientBackoffPolicy.DEFAULT_MAX_BACKOFF, backoffTime); } private void update(ServerStatistics stats, int load) { http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestClientScanner.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestClientScanner.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestClientScanner.java index 3f0c869..eb158cb 100644 --- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestClientScanner.java +++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestClientScanner.java @@ -30,6 +30,7 @@ import static org.mockito.Matchers.anyInt; import static org.mockito.Mockito.when; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.util.Iterator; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -131,7 +132,8 @@ public class TestClientScanner { @SuppressWarnings("unchecked") public void testNoResultsHint() throws IOException { final Result[] results = new Result[1]; - KeyValue kv1 = new KeyValue("row".getBytes(), "cf".getBytes(), "cq".getBytes(), 1, + KeyValue kv1 = new KeyValue("row".getBytes(StandardCharsets.UTF_8), + "cf".getBytes(StandardCharsets.UTF_8), "cq".getBytes(StandardCharsets.UTF_8), 1, Type.Maximum); results[0] = Result.create(new Cell[] {kv1}); @@ -191,7 +193,8 @@ public class TestClientScanner { @SuppressWarnings("unchecked") public void testSizeLimit() throws IOException { final Result[] results = new Result[1]; - KeyValue kv1 = new KeyValue("row".getBytes(), "cf".getBytes(), "cq".getBytes(), 1, + KeyValue kv1 = new KeyValue("row".getBytes(StandardCharsets.UTF_8), + "cf".getBytes(StandardCharsets.UTF_8), "cq".getBytes(StandardCharsets.UTF_8), 1, Type.Maximum); results[0] = Result.create(new Cell[] {kv1}); @@ -248,9 +251,14 @@ public class TestClientScanner { @Test @SuppressWarnings("unchecked") public void testCacheLimit() throws IOException { - KeyValue kv1 = new KeyValue("row1".getBytes(), "cf".getBytes(), "cq".getBytes(), 1, - Type.Maximum), kv2 = new KeyValue("row2".getBytes(), "cf".getBytes(), "cq".getBytes(), 1, - Type.Maximum), kv3 = new KeyValue("row3".getBytes(), "cf".getBytes(), "cq".getBytes(), 1, + KeyValue kv1 = new KeyValue("row1".getBytes(StandardCharsets.UTF_8), + "cf".getBytes(StandardCharsets.UTF_8), "cq".getBytes(StandardCharsets.UTF_8), 1, + Type.Maximum); + KeyValue kv2 = new KeyValue("row2".getBytes(StandardCharsets.UTF_8), + "cf".getBytes(StandardCharsets.UTF_8), "cq".getBytes(StandardCharsets.UTF_8), 1, + Type.Maximum); + KeyValue kv3 = new KeyValue("row3".getBytes(StandardCharsets.UTF_8), + "cf".getBytes(StandardCharsets.UTF_8), "cq".getBytes(StandardCharsets.UTF_8), 1, Type.Maximum); final Result[] results = new Result[] {Result.create(new Cell[] {kv1}), Result.create(new Cell[] {kv2}), Result.create(new Cell[] {kv3})}; @@ -323,7 +331,8 @@ public class TestClientScanner { @SuppressWarnings("unchecked") public void testNoMoreResults() throws IOException { final Result[] results = new Result[1]; - KeyValue kv1 = new KeyValue("row".getBytes(), "cf".getBytes(), "cq".getBytes(), 1, + KeyValue kv1 = new KeyValue("row".getBytes(StandardCharsets.UTF_8), + "cf".getBytes(StandardCharsets.UTF_8), "cq".getBytes(StandardCharsets.UTF_8), 1, Type.Maximum); results[0] = Result.create(new Cell[] {kv1}); @@ -381,12 +390,14 @@ public class TestClientScanner { @SuppressWarnings("unchecked") public void testMoreResults() throws IOException { final Result[] results1 = new Result[1]; - KeyValue kv1 = new KeyValue("row".getBytes(), "cf".getBytes(), "cq".getBytes(), 1, + KeyValue kv1 = new KeyValue("row".getBytes(StandardCharsets.UTF_8), + "cf".getBytes(StandardCharsets.UTF_8), "cq".getBytes(StandardCharsets.UTF_8), 1, Type.Maximum); results1[0] = Result.create(new Cell[] {kv1}); final Result[] results2 = new Result[1]; - KeyValue kv2 = new KeyValue("row2".getBytes(), "cf".getBytes(), "cq".getBytes(), 1, + KeyValue kv2 = new KeyValue("row2".getBytes(StandardCharsets.UTF_8), + "cf".getBytes(StandardCharsets.UTF_8), "cq".getBytes(StandardCharsets.UTF_8), 1, Type.Maximum); results2[0] = Result.create(new Cell[] {kv2}); http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.java index 4254139..1022ee2 100644 --- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.java +++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.java @@ -17,6 +17,9 @@ */ package org.apache.hadoop.hbase.client; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.KeepDeletedCells; @@ -32,13 +35,17 @@ import org.apache.hadoop.hbase.util.BuilderStyleTest; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.PrettyPrinter; import org.junit.Assert; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; +import org.junit.rules.ExpectedException; @Category({MiscTests.class, SmallTests.class}) public class TestColumnFamilyDescriptorBuilder { + + @Rule + public ExpectedException expectedEx = ExpectedException.none(); + @Test public void testBuilder() throws DeserializationException { ColumnFamilyDescriptorBuilder builder @@ -86,15 +93,14 @@ public class TestColumnFamilyDescriptorBuilder { assertEquals(v, deserializedHcd.getDFSReplication()); } + /** + * Tests HColumnDescriptor with empty familyName + */ @Test - /** Tests HColumnDescriptor with empty familyName*/ - public void testHColumnDescriptorShouldThrowIAEWhenFamiliyNameEmpty() - throws Exception { - try { - ColumnFamilyDescriptorBuilder.of(""); - } catch (IllegalArgumentException e) { - assertEquals("Column Family name can not be empty", e.getLocalizedMessage()); - } + public void testHColumnDescriptorShouldThrowIAEWhenFamilyNameEmpty() throws Exception { + expectedEx.expect(IllegalArgumentException.class); + expectedEx.expectMessage("Column Family name can not be empty"); + ColumnFamilyDescriptorBuilder.of(""); } /** http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestDelayingRunner.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestDelayingRunner.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestDelayingRunner.java index fb9dc21..15b7b02 100644 --- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestDelayingRunner.java +++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestDelayingRunner.java @@ -19,6 +19,7 @@ package org.apache.hadoop.hbase.client; import static org.junit.Assert.*; +import java.nio.charset.StandardCharsets; import java.util.concurrent.atomic.AtomicLong; import org.apache.hadoop.hbase.HRegionInfo; @@ -33,8 +34,8 @@ public class TestDelayingRunner { private static final TableName DUMMY_TABLE = TableName.valueOf("DUMMY_TABLE"); - private static final byte[] DUMMY_BYTES_1 = "DUMMY_BYTES_1".getBytes(); - private static final byte[] DUMMY_BYTES_2 = "DUMMY_BYTES_2".getBytes(); + private static final byte[] DUMMY_BYTES_1 = "DUMMY_BYTES_1".getBytes(StandardCharsets.UTF_8); + private static final byte[] DUMMY_BYTES_2 = "DUMMY_BYTES_2".getBytes(StandardCharsets.UTF_8); private static HRegionInfo hri1 = new HRegionInfo(DUMMY_TABLE, DUMMY_BYTES_1, DUMMY_BYTES_2, false, 1); http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestOperation.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestOperation.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestOperation.java index 61c9f3f..98bc74b 100644 --- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestOperation.java +++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestOperation.java @@ -23,6 +23,7 @@ import static org.junit.Assert.assertNotNull; import java.io.IOException; import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -94,13 +95,14 @@ public class TestOperation { private static String COL_NAME_1 = "col1"; private static ColumnPrefixFilter COL_PRE_FILTER = - new ColumnPrefixFilter(COL_NAME_1.getBytes()); + new ColumnPrefixFilter(COL_NAME_1.getBytes(StandardCharsets.UTF_8)); private static String STR_COL_PRE_FILTER = COL_PRE_FILTER.getClass().getSimpleName() + " " + COL_NAME_1; private static String COL_NAME_2 = "col2"; private static ColumnRangeFilter CR_FILTER = new ColumnRangeFilter( - COL_NAME_1.getBytes(), true, COL_NAME_2.getBytes(), false); + COL_NAME_1.getBytes(StandardCharsets.UTF_8), true, + COL_NAME_2.getBytes(StandardCharsets.UTF_8), false); private static String STR_CR_FILTER = CR_FILTER.getClass().getSimpleName() + " [" + COL_NAME_1 + ", " + COL_NAME_2 + ")"; @@ -119,25 +121,28 @@ public class TestOperation { private static String STOP_ROW_KEY = "stop"; private static InclusiveStopFilter IS_FILTER = - new InclusiveStopFilter(STOP_ROW_KEY.getBytes()); + new InclusiveStopFilter(STOP_ROW_KEY.getBytes(StandardCharsets.UTF_8)); private static String STR_IS_FILTER = IS_FILTER.getClass().getSimpleName() + " " + STOP_ROW_KEY; private static String PREFIX = "prefix"; private static PrefixFilter PREFIX_FILTER = - new PrefixFilter(PREFIX.getBytes()); + new PrefixFilter(PREFIX.getBytes(StandardCharsets.UTF_8)); private static String STR_PREFIX_FILTER = "PrefixFilter " + PREFIX; private static byte[][] PREFIXES = { - "0".getBytes(), "1".getBytes(), "2".getBytes()}; + "0".getBytes(StandardCharsets.UTF_8), "1".getBytes(StandardCharsets.UTF_8), + "2".getBytes(StandardCharsets.UTF_8)}; private static MultipleColumnPrefixFilter MCP_FILTER = new MultipleColumnPrefixFilter(PREFIXES); private static String STR_MCP_FILTER = MCP_FILTER.getClass().getSimpleName() + " (3/3): [0, 1, 2]"; private static byte[][] L_PREFIXES = { - "0".getBytes(), "1".getBytes(), "2".getBytes(), "3".getBytes(), - "4".getBytes(), "5".getBytes(), "6".getBytes(), "7".getBytes()}; + "0".getBytes(StandardCharsets.UTF_8), "1".getBytes(StandardCharsets.UTF_8), + "2".getBytes(StandardCharsets.UTF_8), "3".getBytes(StandardCharsets.UTF_8), + "4".getBytes(StandardCharsets.UTF_8), "5".getBytes(StandardCharsets.UTF_8), + "6".getBytes(StandardCharsets.UTF_8), "7".getBytes(StandardCharsets.UTF_8)}; private static MultipleColumnPrefixFilter L_MCP_FILTER = new MultipleColumnPrefixFilter(L_PREFIXES); private static String STR_L_MCP_FILTER = @@ -167,7 +172,7 @@ public class TestOperation { FIRST_KEY_ONLY_FILTER.getClass().getSimpleName(); private static CompareOp CMP_OP = CompareOp.EQUAL; - private static byte[] CMP_VALUE = "value".getBytes(); + private static byte[] CMP_VALUE = "value".getBytes(StandardCharsets.UTF_8); private static BinaryComparator BC = new BinaryComparator(CMP_VALUE); private static DependentColumnFilter DC_FILTER = new DependentColumnFilter(FAMILY, QUALIFIER, true, CMP_OP, BC); @@ -451,4 +456,3 @@ public class TestOperation { } } - http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestRegionInfoDisplay.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestRegionInfoDisplay.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestRegionInfoDisplay.java index 6d8c84c..a201285 100644 --- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestRegionInfoDisplay.java +++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestRegionInfoDisplay.java @@ -17,6 +17,9 @@ */ package org.apache.hadoop.hbase.client; +import java.io.IOException; +import java.nio.charset.StandardCharsets; + import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.CategoryBasedTimeout; import org.apache.hadoop.hbase.HRegionInfo; @@ -32,13 +35,11 @@ import org.junit.experimental.categories.Category; import org.junit.rules.TestName; import org.junit.rules.TestRule; -import java.io.IOException; - @Category({MasterTests.class, SmallTests.class}) public class TestRegionInfoDisplay { @Rule - public final TestRule timeout = CategoryBasedTimeout.builder().withTimeout(this.getClass()). - withLookingForStuckThread(true).build(); + public final TestRule timeout = CategoryBasedTimeout.builder() + .withTimeout(this.getClass()).withLookingForStuckThread(true).build(); @Rule public TestName name = new TestName(); @Test @@ -59,35 +60,36 @@ public class TestRegionInfoDisplay { .setReplicaId(1).build(); checkEquality(ri, conf); Assert.assertArrayEquals(RegionInfoDisplay.HIDDEN_END_KEY, - RegionInfoDisplay.getEndKeyForDisplay(ri, conf)); + RegionInfoDisplay.getEndKeyForDisplay(ri, conf)); Assert.assertArrayEquals(RegionInfoDisplay.HIDDEN_START_KEY, - RegionInfoDisplay.getStartKeyForDisplay(ri, conf)); + RegionInfoDisplay.getStartKeyForDisplay(ri, conf)); RegionState state = RegionState.createForTesting(convert(ri), RegionState.State.OPEN); String descriptiveNameForDisplay = - RegionInfoDisplay.getDescriptiveNameFromRegionStateForDisplay(state, conf); + RegionInfoDisplay.getDescriptiveNameFromRegionStateForDisplay(state, conf); checkDescriptiveNameEquality(descriptiveNameForDisplay,state.toDescriptiveString(), startKey); conf.setBoolean("hbase.display.keys", true); Assert.assertArrayEquals(endKey, RegionInfoDisplay.getEndKeyForDisplay(ri, conf)); Assert.assertArrayEquals(startKey, RegionInfoDisplay.getStartKeyForDisplay(ri, conf)); Assert.assertEquals(state.toDescriptiveString(), - RegionInfoDisplay.getDescriptiveNameFromRegionStateForDisplay(state, conf)); + RegionInfoDisplay.getDescriptiveNameFromRegionStateForDisplay(state, conf)); } private void checkDescriptiveNameEquality(String descriptiveNameForDisplay, String origDesc, - byte[] startKey) { + byte[] startKey) { // except for the "hidden-start-key" substring everything else should exactly match String firstPart = descriptiveNameForDisplay.substring(0, - descriptiveNameForDisplay.indexOf(new String(RegionInfoDisplay.HIDDEN_START_KEY))); + descriptiveNameForDisplay.indexOf( + new String(RegionInfoDisplay.HIDDEN_START_KEY, StandardCharsets.UTF_8))); String secondPart = descriptiveNameForDisplay.substring( - descriptiveNameForDisplay.indexOf(new String(RegionInfoDisplay.HIDDEN_START_KEY)) + - RegionInfoDisplay.HIDDEN_START_KEY.length); - String firstPartOrig = origDesc.substring(0, - origDesc.indexOf(Bytes.toStringBinary(startKey))); + descriptiveNameForDisplay.indexOf( + new String(RegionInfoDisplay.HIDDEN_START_KEY, StandardCharsets.UTF_8)) + + RegionInfoDisplay.HIDDEN_START_KEY.length); + String firstPartOrig = origDesc.substring(0, origDesc.indexOf(Bytes.toStringBinary(startKey))); String secondPartOrig = origDesc.substring( - origDesc.indexOf(Bytes.toStringBinary(startKey)) + - Bytes.toStringBinary(startKey).length()); + origDesc.indexOf(Bytes.toStringBinary(startKey)) + + Bytes.toStringBinary(startKey).length()); assert(firstPart.equals(firstPartOrig)); assert(secondPart.equals(secondPartOrig)); } @@ -118,8 +120,8 @@ public class TestRegionInfoDisplay { } private HRegionInfo convert(RegionInfo ri) { - HRegionInfo hri = new HRegionInfo( - ri.getTable(), ri.getStartKey(), ri.getEndKey(), ri.isSplit(), ri.getRegionId()); + HRegionInfo hri =new HRegionInfo(ri.getTable(), ri.getStartKey(), ri.getEndKey(), + ri.isSplit(), ri.getRegionId()); hri.setOffline(ri.isOffline()); return hri; } http://git-wip-us.apache.org/repos/asf/hbase/blob/2043c337/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestSimpleRequestController.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestSimpleRequestController.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestSimpleRequestController.java index 531fd0f..3107aa7 100644 --- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestSimpleRequestController.java +++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestSimpleRequestController.java @@ -1,5 +1,4 @@ /* - * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -18,8 +17,14 @@ */ package org.apache.hadoop.hbase.client; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + import java.io.IOException; import java.io.InterruptedIOException; +import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -27,6 +32,7 @@ import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; + import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HConstants; @@ -39,10 +45,6 @@ import org.apache.hadoop.hbase.testclassification.ClientTests; import org.apache.hadoop.hbase.testclassification.SmallTests; import org.apache.hadoop.hbase.util.Bytes; import org.junit.Assert; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -51,9 +53,9 @@ public class TestSimpleRequestController { private static final TableName DUMMY_TABLE = TableName.valueOf("DUMMY_TABLE"); - private static final byte[] DUMMY_BYTES_1 = "DUMMY_BYTES_1".getBytes(); - private static final byte[] DUMMY_BYTES_2 = "DUMMY_BYTES_2".getBytes(); - private static final byte[] DUMMY_BYTES_3 = "DUMMY_BYTES_3".getBytes(); + private static final byte[] DUMMY_BYTES_1 = "DUMMY_BYTES_1".getBytes(StandardCharsets.UTF_8); + private static final byte[] DUMMY_BYTES_2 = "DUMMY_BYTES_2".getBytes(StandardCharsets.UTF_8); + private static final byte[] DUMMY_BYTES_3 = "DUMMY_BYTES_3".getBytes(StandardCharsets.UTF_8); private static final ServerName SN = ServerName.valueOf("s1,1,1"); private static final ServerName SN2 = ServerName.valueOf("s2,2,2"); private static final HRegionInfo HRI1 @@ -118,15 +120,18 @@ public class TestSimpleRequestController { final AtomicLong tasksInProgress = new AtomicLong(0); final Map<ServerName, AtomicInteger> taskCounterPerServer = new HashMap<>(); final Map<byte[], AtomicInteger> taskCounterPerRegion = new HashMap<>(); - SimpleRequestController.TaskCountChecker countChecker = new SimpleRequestController.TaskCountChecker( + SimpleRequestController.TaskCountChecker countChecker = + new SimpleRequestController.TaskCountChecker( maxTotalConcurrentTasks, maxConcurrentTasksPerServer, maxConcurrentTasksPerRegion, tasksInProgress, taskCounterPerServer, taskCounterPerRegion); final long maxHeapSizePerRequest = 2 * 1024 * 1024; // unlimiited - SimpleRequestController.RequestHeapSizeChecker sizeChecker = new SimpleRequestController.RequestHeapSizeChecker(maxHeapSizePerRequest); - RequestController.Checker checker = SimpleRequestController.newChecker(Arrays.asList(countChecker, sizeChecker)); + SimpleRequestController.RequestHeapSizeChecker sizeChecker = + new SimpleRequestController.RequestHeapSizeChecker(maxHeapSizePerRequest); + RequestController.Checker checker = + SimpleRequestController.newChecker(Arrays.asList(countChecker, sizeChecker)); ReturnCode loc1Code = checker.canTakeRow(LOC1, createPut(maxHeapSizePerRequest)); assertEquals(ReturnCode.INCLUDE, loc1Code); @@ -357,11 +362,7 @@ public class TestSimpleRequestController { controller.waitForMaximumCurrentTasks(max.get(), 123, 1, null); } catch (InterruptedIOException e) { Assert.fail(e.getMessage()); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (BrokenBarrierException e) { - // TODO Auto-generated catch block + } catch (InterruptedException | BrokenBarrierException e) { e.printStackTrace(); } };
