You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2023/08/20 14:44:52 UTC
[hbase-site] branch asf-site updated: Published site at dae078e5bc342012b49cd066027eb53ae9a21280.
This is an automated email from the ASF dual-hosted git repository.
git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/hbase-site.git
The following commit(s) were added to refs/heads/asf-site by this push:
new d5003898d82 Published site at dae078e5bc342012b49cd066027eb53ae9a21280.
d5003898d82 is described below
commit d5003898d82e5aec371ec107e6824b4313be8423
Author: jenkins <bu...@apache.org>
AuthorDate: Sun Aug 20 14:44:30 2023 +0000
Published site at dae078e5bc342012b49cd066027eb53ae9a21280.
---
acid-semantics.html | 2 +-
apache_hbase_reference_guide.pdf | 4 +-
apidocs/deprecated-list.html | 60 +-
.../org/apache/hadoop/hbase/KeepDeletedCells.html | 4 +-
.../hadoop/hbase/MemoryCompactionPolicy.html | 4 +-
.../org/apache/hadoop/hbase/class-use/Cell.html | 194 +-
.../apache/hadoop/hbase/class-use/CellBuilder.html | 10 +-
.../hadoop/hbase/class-use/CellBuilderType.html | 10 +-
.../apache/hadoop/hbase/class-use/CellScanner.html | 4 +-
.../hadoop/hbase/class-use/ClusterMetrics.html | 12 +-
.../apache/hadoop/hbase/class-use/ServerName.html | 190 +-
.../apache/hadoop/hbase/class-use/TableName.html | 50 +-
.../apache/hadoop/hbase/client/CompactType.html | 4 +-
.../hadoop/hbase/client/CompactionState.html | 4 +-
.../apache/hadoop/hbase/client/Consistency.html | 4 +-
.../org/apache/hadoop/hbase/client/Durability.html | 4 +-
.../apache/hadoop/hbase/client/IsolationLevel.html | 4 +-
.../apache/hadoop/hbase/client/Scan.ReadType.html | 4 +-
.../apache/hadoop/hbase/client/SnapshotType.html | 4 +-
.../hadoop/hbase/client/class-use/Append.html | 8 +-
.../hbase/client/class-use/CheckAndMutate.html | 16 +-
.../client/class-use/CheckAndMutateResult.html | 8 +-
.../hadoop/hbase/client/class-use/Consistency.html | 8 +-
.../hadoop/hbase/client/class-use/Delete.html | 20 +-
.../hadoop/hbase/client/class-use/Durability.html | 32 +-
.../apache/hadoop/hbase/client/class-use/Get.html | 36 +-
.../hadoop/hbase/client/class-use/Increment.html | 8 +-
.../hbase/client/class-use/IsolationLevel.html | 8 +-
.../hadoop/hbase/client/class-use/Mutation.html | 8 +-
.../apache/hadoop/hbase/client/class-use/Put.html | 24 +-
.../hadoop/hbase/client/class-use/Result.html | 20 +-
.../hbase/client/class-use/ResultScanner.html | 16 +-
.../hbase/client/class-use/RowMutations.html | 8 +-
.../apache/hadoop/hbase/client/class-use/Scan.html | 12 +-
.../apache/hadoop/hbase/client/package-tree.html | 14 +-
.../apache/hadoop/hbase/client/package-use.html | 36 +-
.../hadoop/hbase/filter/Filter.ReturnCode.html | 4 +-
.../hbase/filter/class-use/Filter.ReturnCode.html | 50 +-
.../hadoop/hbase/filter/class-use/Filter.html | 72 +-
.../hbase/io/class-use/ImmutableBytesWritable.html | 40 +-
.../hadoop/hbase/io/class-use/TimeRange.html | 16 +-
.../hbase/io/compress/Compression.Algorithm.html | 4 +-
.../hadoop/hbase/io/crypto/class-use/Cipher.html | 10 +-
.../hbase/io/encoding/DataBlockEncoding.html | 4 +-
.../hbase/io/encoding/IndexBlockEncoding.html | 4 +-
apidocs/org/apache/hadoop/hbase/package-tree.html | 2 +-
apidocs/org/apache/hadoop/hbase/package-use.html | 40 +-
.../apache/hadoop/hbase/quotas/package-tree.html | 2 +-
.../hbase/replication/SyncReplicationState.html | 4 +-
apidocs/org/apache/hadoop/hbase/util/Bytes.html | 108 +-
.../apache/hadoop/hbase/util/class-use/Bytes.html | 32 +-
.../apache/hadoop/hbase/util/class-use/Order.html | 34 +-
.../hbase/util/class-use/PositionedByteRange.html | 254 +-
apidocs/overview-tree.html | 32 +-
.../hbase/util/Bytes.ByteArrayComparator.html | 2537 ++++++-----
.../hbase/util/Bytes.RowEndKeyComparator.html | 2537 ++++++-----
.../org/apache/hadoop/hbase/util/Bytes.html | 2537 ++++++-----
book.html | 2 +-
bulk-loads.html | 2 +-
checkstyle-aggregate.html | 4733 ++++++++++----------
checkstyle.rss | 420 +-
coc.html | 2 +-
dependencies.html | 2 +-
dependency-convergence.html | 2 +-
dependency-info.html | 2 +-
dependency-management.html | 2 +-
devapidocs/allclasses-frame.html | 8 +
devapidocs/allclasses-noframe.html | 8 +
devapidocs/deprecated-list.html | 66 +-
devapidocs/index-all.html | 68 +
devapidocs/org/apache/hadoop/hbase/Cell.Type.html | 4 +-
.../apache/hadoop/hbase/ClusterMetrics.Option.html | 4 +-
.../hbase/HConstants.OperationStatusCode.html | 4 +-
.../org/apache/hadoop/hbase/KeepDeletedCells.html | 4 +-
.../org/apache/hadoop/hbase/KeyValue.Type.html | 4 +-
.../hadoop/hbase/MemoryCompactionPolicy.html | 4 +-
devapidocs/org/apache/hadoop/hbase/Size.Unit.html | 4 +-
.../hadoop/hbase/backup/class-use/BackupType.html | 8 +-
.../apache/hadoop/hbase/class-use/Abortable.html | 70 +-
.../hadoop/hbase/class-use/ByteBufferKeyValue.html | 24 +-
.../hadoop/hbase/class-use/CacheEvictionStats.html | 4 +-
.../apache/hadoop/hbase/class-use/Cell.Type.html | 30 +-
.../org/apache/hadoop/hbase/class-use/Cell.html | 1246 +++---
.../apache/hadoop/hbase/class-use/CellBuilder.html | 16 +-
.../hadoop/hbase/class-use/CellBuilderType.html | 28 +-
.../hadoop/hbase/class-use/CellComparator.html | 134 +-
.../apache/hadoop/hbase/class-use/CellScanner.html | 36 +-
.../hadoop/hbase/class-use/ChoreService.html | 8 +-
.../hbase/class-use/ClusterMetrics.Option.html | 12 +-
.../hadoop/hbase/class-use/ClusterMetrics.html | 26 +-
.../hadoop/hbase/class-use/CompareOperator.html | 40 +-
.../hbase/class-use/CoordinatedStateManager.html | 8 +-
.../hbase/class-use/CoprocessorEnvironment.html | 40 +-
.../hadoop/hbase/class-use/ExtendedCell.html | 40 +-
.../hbase/class-use/ExtendedCellBuilder.html | 68 +-
.../hadoop/hbase/class-use/HBaseIOException.html | 30 +-
.../hbase/class-use/HDFSBlocksDistribution.html | 10 +-
.../hadoop/hbase/class-use/HRegionLocation.html | 100 +-
.../hadoop/hbase/class-use/KeepDeletedCells.html | 10 +-
.../apache/hadoop/hbase/class-use/KeyValue.html | 44 +-
.../hbase/class-use/NamespaceDescriptor.html | 60 +-
.../hadoop/hbase/class-use/RegionLocations.html | 22 +-
.../hadoop/hbase/class-use/RegionMetrics.html | 34 +-
.../org/apache/hadoop/hbase/class-use/Server.html | 8 +-
.../hadoop/hbase/class-use/ServerMetrics.html | 8 +-
.../apache/hadoop/hbase/class-use/ServerName.html | 758 ++--
.../apache/hadoop/hbase/class-use/ServerTask.html | 8 +-
.../org/apache/hadoop/hbase/class-use/Size.html | 16 +-
.../apache/hadoop/hbase/class-use/TableName.html | 1156 ++---
.../hbase/class-use/TableNotDisabledException.html | 8 +-
.../hbase/class-use/TableNotFoundException.html | 8 +-
.../org/apache/hadoop/hbase/class-use/Tag.html | 40 +-
.../apache/hadoop/hbase/class-use/TagBuilder.html | 14 +-
.../hbase/class-use/UserMetrics.ClientMetrics.html | 8 +-
.../apache/hadoop/hbase/class-use/UserMetrics.html | 8 +-
.../apache/hadoop/hbase/client/CompactType.html | 4 +-
.../hadoop/hbase/client/CompactionState.html | 4 +-
.../apache/hadoop/hbase/client/Consistency.html | 4 +-
.../org/apache/hadoop/hbase/client/Durability.html | 4 +-
.../apache/hadoop/hbase/client/IsolationLevel.html | 4 +-
.../hadoop/hbase/client/RegionLocateType.html | 4 +-
.../apache/hadoop/hbase/client/Scan.ReadType.html | 4 +-
.../apache/hadoop/hbase/client/SnapshotType.html | 4 +-
.../hadoop/hbase/client/TableState.State.html | 4 +-
.../HBaseServerExceptionPauseManager.html | 4 +-
.../client/backoff/class-use/ServerStatistics.html | 14 +-
.../class-use/AbstractResponse.ResponseType.html | 10 +-
.../hadoop/hbase/client/class-use/Admin.html | 10 +-
.../class-use/AdvancedScanResultConsumer.html | 6 +-
.../hadoop/hbase/client/class-use/Append.html | 22 +-
.../hbase/client/class-use/AsyncAdminBuilder.html | 50 +-
.../client/class-use/AsyncClusterConnection.html | 8 +-
.../client/class-use/AsyncConnectionImpl.html | 30 +-
.../client/class-use/AsyncRegionServerAdmin.html | 8 +-
...yncServerRequestRpcRetryingCaller.Callable.html | 8 +-
.../hbase/client/class-use/BalanceRequest.html | 42 +-
.../hbase/client/class-use/BalanceResponse.html | 24 +-
.../hbase/client/class-use/CheckAndMutate.html | 44 +-
.../client/class-use/CheckAndMutateResult.html | 30 +-
.../client/class-use/ColumnFamilyDescriptor.html | 48 +-
.../hadoop/hbase/client/class-use/CompactType.html | 74 +-
.../hbase/client/class-use/CompactionState.html | 8 +-
.../hadoop/hbase/client/class-use/Connection.html | 92 +-
.../hadoop/hbase/client/class-use/Consistency.html | 12 +-
.../hadoop/hbase/client/class-use/Delete.html | 60 +-
.../hadoop/hbase/client/class-use/Durability.html | 60 +-
.../apache/hadoop/hbase/client/class-use/Get.html | 70 +-
.../apache/hadoop/hbase/client/class-use/Hbck.html | 8 +-
.../hadoop/hbase/client/class-use/Increment.html | 22 +-
.../hbase/client/class-use/IsolationLevel.html | 12 +-
.../hadoop/hbase/client/class-use/LogEntry.html | 20 +-
.../hbase/client/class-use/MasterSwitchType.html | 10 +-
.../hbase/client/class-use/MetricsConnection.html | 4 +-
.../hadoop/hbase/client/class-use/Mutation.html | 30 +-
.../hbase/client/class-use/NonceGenerator.html | 8 +-
.../class-use/NormalizeTableFilterParams.html | 22 +-
.../apache/hadoop/hbase/client/class-use/Put.html | 60 +-
.../hadoop/hbase/client/class-use/RegionInfo.html | 380 +-
.../hbase/client/class-use/RegionLoadStats.html | 16 +-
.../hbase/client/class-use/RegionLocateType.html | 12 +-
.../hbase/client/class-use/RegionLocator.html | 24 +-
.../class-use/RequestController.Checker.html | 8 +-
.../hadoop/hbase/client/class-use/Result.html | 202 +-
.../hbase/client/class-use/ResultScanner.html | 38 +-
.../apache/hadoop/hbase/client/class-use/Row.html | 22 +-
.../hbase/client/class-use/RowMutations.html | 38 +-
.../hbase/client/class-use/Scan.ReadType.html | 16 +-
.../apache/hadoop/hbase/client/class-use/Scan.html | 322 +-
.../hbase/client/class-use/ScanResultCache.html | 6 +-
.../hadoop/hbase/client/class-use/ServerType.html | 20 +-
.../hbase/client/class-use/ServiceCaller.html | 8 +-
.../client/class-use/SnapshotDescription.html | 66 +-
.../class-use/Table.CheckAndMutateBuilder.html | 10 +-
.../Table.CheckAndMutateWithFilterBuilder.html | 10 +-
.../hadoop/hbase/client/class-use/Table.html | 12 +-
.../hbase/client/class-use/TableDescriptor.html | 296 +-
.../client/class-use/TableDescriptorBuilder.html | 16 +-
.../hadoop/hbase/client/class-use/TableState.html | 16 +-
.../client/coprocessor/class-use/Batch.Call.html | 16 +-
.../coprocessor/class-use/Batch.Callback.html | 46 +-
.../hbase/client/locking/class-use/EntityLock.html | 12 +-
.../client/metrics/class-use/ScanMetrics.html | 22 +-
.../apache/hadoop/hbase/client/package-tree.html | 22 +-
.../apache/hadoop/hbase/client/package-use.html | 57 +-
.../client/replication/class-use/TableCFs.html | 12 +-
.../security/class-use/SecurityCapability.html | 12 +-
.../hbase/codec/class-use/Codec.Decoder.html | 24 +-
.../hbase/codec/class-use/Codec.Encoder.html | 12 +-
.../apache/hadoop/hbase/codec/class-use/Codec.html | 10 +-
...ManagerCoordination.SplitLogManagerDetails.html | 16 +-
.../coprocessor/RegionObserver.MutationType.html | 4 +-
.../coprocessor/class-use/ObserverContext.html | 4 +-
.../class-use/RegionCoprocessorEnvironment.html | 4 +-
.../coprocessor/class-use/RegionObserver.html | 20 +-
.../hadoop/hbase/coprocessor/package-tree.html | 2 +-
.../errorhandling/class-use/ForeignException.html | 30 +-
.../class-use/DeserializationException.html | 232 +-
.../class-use/UnexpectedStateException.html | 14 +-
.../apache/hadoop/hbase/executor/ExecutorType.html | 4 +-
.../hadoop/hbase/executor/class-use/EventType.html | 16 +-
.../apache/hadoop/hbase/executor/package-tree.html | 2 +-
.../favored/class-use/FavoredNodesManager.html | 8 +-
.../hadoop/hbase/filter/Filter.ReturnCode.html | 4 +-
.../filter/FilterWrapper.FilterRowRetCode.html | 4 +-
.../filter/class-use/ByteArrayComparable.html | 32 +-
.../hbase/filter/class-use/Filter.ReturnCode.html | 72 +-
.../hadoop/hbase/filter/class-use/Filter.html | 206 +-
.../apache/hadoop/hbase/filter/package-tree.html | 8 +-
.../hadoop/hbase/fs/class-use/HFileSystem.html | 8 +-
.../hadoop/hbase/hbtop/RecordFilter.Operator.html | 4 +-
.../hadoop/hbase/hbtop/class-use/Record.html | 28 +-
.../hadoop/hbase/hbtop/class-use/RecordFilter.html | 14 +-
.../hadoop/hbase/hbtop/field/FieldValueType.html | 4 +-
.../hadoop/hbase/hbtop/field/class-use/Field.html | 14 +-
.../hbase/hbtop/field/class-use/FieldInfo.html | 26 +-
.../hadoop/hbase/hbtop/field/package-tree.html | 2 +-
.../hbase/hbtop/mode/class-use/DrillDownInfo.html | 14 +-
.../hbase/hbtop/screen/class-use/ScreenView.html | 24 +-
.../apache/hadoop/hbase/hbtop/terminal/Color.html | 4 +-
.../hadoop/hbase/hbtop/terminal/KeyPress.Type.html | 4 +-
.../hbase/hbtop/terminal/class-use/Attributes.html | 4 +-
.../hbtop/terminal/class-use/CursorPosition.html | 4 +-
.../hbase/hbtop/terminal/class-use/KeyPress.html | 8 +-
.../hbase/hbtop/terminal/class-use/Terminal.html | 4 +-
.../terminal/impl/class-use/ScreenBuffer.html | 4 +-
.../hadoop/hbase/hbtop/terminal/package-tree.html | 2 +-
.../org/apache/hadoop/hbase/http/package-tree.html | 2 +-
.../monitor/class-use/StreamSlowMonitor.html | 10 +-
.../hbase/io/class-use/ByteBuffAllocator.html | 12 +-
.../hbase/io/class-use/ImmutableBytesWritable.html | 112 +-
.../hbase/io/class-use/TagCompressionContext.html | 24 +-
.../hadoop/hbase/io/class-use/TimeRange.html | 46 +-
.../hbase/io/compress/Compression.Algorithm.html | 4 +-
.../hadoop/hbase/io/crypto/class-use/Cipher.html | 10 +-
.../hbase/io/crypto/class-use/Encryptor.html | 10 +-
.../hadoop/hbase/io/crypto/tls/package-tree.html | 2 +-
.../hbase/io/encoding/DataBlockEncoding.html | 4 +-
.../hbase/io/encoding/IndexBlockEncoding.html | 4 +-
.../BufferedDataBlockEncoder.SeekerState.html | 10 +-
.../io/encoding/class-use/CompressionState.html | 6 +-
.../class-use/DataBlockEncoder.EncodedSeeker.html | 14 +-
.../io/encoding/class-use/DataBlockEncoding.html | 60 +-
.../hbase/io/encoding/class-use/EncodingState.html | 16 +-
.../class-use/HFileBlockDecodingContext.html | 36 +-
.../HFileBlockDefaultDecodingContext.html | 12 +-
.../HFileBlockDefaultEncodingContext.html | 16 +-
.../class-use/HFileBlockEncodingContext.html | 54 +-
.../io/encoding/class-use/IndexBlockEncoding.html | 4 +-
.../hbase/io/encoding/class-use/NoneEncoder.html | 8 +-
.../io/hfile/bucket/class-use/BucketEntry.html | 22 +-
.../hbase/io/hfile/class-use/BlockCache.html | 20 +-
.../hbase/io/hfile/class-use/BlockCacheKey.html | 78 +-
.../hbase/io/hfile/class-use/BlockIndexChunk.html | 4 +-
.../hbase/io/hfile/class-use/BlockPriority.html | 4 +-
.../hadoop/hbase/io/hfile/class-use/BlockType.html | 58 +-
.../io/hfile/class-use/BlockWithScanInfo.html | 24 +-
.../hbase/io/hfile/class-use/CacheConfig.html | 24 +-
.../hbase/io/hfile/class-use/CacheStats.html | 16 +-
.../hadoop/hbase/io/hfile/class-use/Cacheable.html | 100 +-
.../io/hfile/class-use/CacheableDeserializer.html | 8 +-
.../hbase/io/hfile/class-use/CachedBlock.html | 4 +-
.../hfile/class-use/HFile.CachingBlockReader.html | 38 +-
.../hbase/io/hfile/class-use/HFile.Reader.html | 8 +-
.../hbase/io/hfile/class-use/HFile.Writer.html | 14 +-
.../io/hfile/class-use/HFileBlock.Writer.html | 8 +-
.../hbase/io/hfile/class-use/HFileBlock.html | 34 +-
.../hbase/io/hfile/class-use/HFileContext.html | 76 +-
.../HFileIndexBlockEncoder.EncodedSeeker.html | 4 +-
.../io/hfile/class-use/HFileIndexBlockEncoder.html | 10 +-
.../hadoop/hbase/io/hfile/class-use/HFileInfo.html | 8 +-
.../io/hfile/class-use/InlineBlockWriter.html | 8 +-
.../apache/hadoop/hbase/io/hfile/package-tree.html | 6 +-
.../org/apache/hadoop/hbase/io/package-tree.html | 2 +-
.../apache/hadoop/hbase/ipc/class-use/Call.html | 12 +-
.../hadoop/hbase/ipc/class-use/CallQueueInfo.html | 14 +-
.../hadoop/hbase/ipc/class-use/CallRunner.html | 32 +-
.../hbase/ipc/class-use/CellBlockBuilder.html | 12 +-
.../hbase/ipc/class-use/FastPathRpcHandler.html | 8 +-
.../hbase/ipc/class-use/HBaseRPCErrorHandler.html | 12 +-
.../HBaseRpcController.CancellationCallback.html | 12 +-
.../hbase/ipc/class-use/HBaseRpcController.html | 18 +-
.../hbase/ipc/class-use/MetricsHBaseServer.html | 14 +-
.../ipc/class-use/MetricsHBaseServerSource.html | 8 +-
.../ipc/class-use/MetricsHBaseServerWrapper.html | 8 +-
.../hbase/ipc/class-use/PriorityFunction.html | 14 +-
.../apache/hadoop/hbase/ipc/class-use/RpcCall.html | 10 +-
.../hadoop/hbase/ipc/class-use/RpcCallback.html | 8 +-
.../hadoop/hbase/ipc/class-use/RpcClient.html | 16 +-
.../hbase/ipc/class-use/RpcControllerFactory.html | 8 +-
.../hadoop/hbase/ipc/class-use/RpcHandler.html | 4 +-
.../hbase/ipc/class-use/RpcScheduler.Context.html | 14 +-
.../hadoop/hbase/ipc/class-use/RpcScheduler.html | 8 +-
.../ipc/class-use/SimpleRpcServerResponder.html | 10 +-
.../org/apache/hadoop/hbase/ipc/package-tree.html | 2 +-
.../hbase/mapreduce/class-use/CellCreator.html | 8 +-
.../TableSnapshotInputFormatImpl.InputSplit.html | 8 +-
.../hadoop/hbase/mapreduce/package-tree.html | 2 +-
.../apache/hadoop/hbase/mapreduce/package-use.html | 49 +-
.../assignment/class-use/AssignmentManager.html | 12 +-
.../assignment/class-use/RegionStateNode.html | 64 +-
.../hbase/master/assignment/package-tree.html | 2 +-
.../master/balancer/class-use/BalanceAction.html | 28 +-
.../balancer/class-use/BalancerClusterState.html | 46 +-
.../balancer/class-use/BalancerRegionLoad.html | 14 +-
.../balancer/class-use/ClusterInfoProvider.html | 4 +-
.../class-use/RegionHDFSBlockLocationFinder.html | 8 +-
.../hadoop/hbase/master/balancer/package-tree.html | 4 +-
.../hbase/master/class-use/ClusterSchema.html | 8 +-
.../hadoop/hbase/master/class-use/HMaster.html | 12 +-
.../master/class-use/MasterCoprocessorHost.html | 8 +-
.../hbase/master/class-use/MasterFileSystem.html | 8 +-
.../hbase/master/class-use/MasterServices.html | 50 +-
.../hbase/master/class-use/MasterWalManager.html | 8 +-
.../hbase/master/class-use/MetricsMaster.html | 8 +-
.../master/class-use/MetricsMasterProcSource.html | 4 +-
.../master/class-use/MetricsMasterQuotaSource.html | 4 +-
.../master/class-use/MetricsMasterSource.html | 4 +-
.../master/class-use/MetricsMasterWrapper.html | 14 +-
.../hadoop/hbase/master/class-use/RackManager.html | 8 +-
.../hadoop/hbase/master/class-use/RegionPlan.html | 26 +-
.../hbase/master/class-use/RegionState.State.html | 16 +-
.../hbase/master/class-use/ServerManager.html | 12 +-
.../SplitLogManager.ResubmitDirective.html | 12 +-
.../master/class-use/SplitLogManager.Task.html | 12 +-
.../hbase/master/class-use/SplitWALManager.html | 8 +-
.../hbase/master/class-use/TableStateManager.html | 8 +-
.../master/janitor/class-use/CatalogJanitor.html | 8 +-
.../master/locking/class-use/LockManager.html | 8 +-
.../class-use/NormalizationPlan.PlanType.html | 10 +-
.../normalizer/class-use/NormalizationPlan.html | 8 +-
.../class-use/RegionNormalizerManager.html | 8 +-
.../apache/hadoop/hbase/master/package-tree.html | 6 +-
.../PeerProcedureInterface.PeerOperationType.html | 4 +-
...rverProcedureInterface.ServerOperationType.html | 4 +-
.../CreateTableProcedure.CreateHdfsRegions.html | 14 +-
.../procedure/class-use/MasterProcedureEnv.html | 444 +-
.../PeerProcedureInterface.PeerOperationType.html | 18 +-
.../procedure/class-use/ProcedurePrepareLatch.html | 4 +-
...rverProcedureInterface.ServerOperationType.html | 16 +-
...TableProcedureInterface.TableOperationType.html | 96 +-
.../hbase/master/procedure/package-tree.html | 4 +-
.../master/region/class-use/MasterRegion.html | 4 +-
.../class-use/MasterRegionFlusherAndCompactor.html | 8 +-
.../class-use/ReplicationPeerManager.html | 8 +-
.../class-use/SyncReplicationReplayWALManager.html | 8 +-
.../master/snapshot/class-use/SnapshotManager.html | 4 +-
.../zksyncer/class-use/MetaLocationSyncer.html | 8 +-
.../hbase/metrics/class-use/MetricRegistry.html | 8 +-
.../metrics/class-use/MetricRegistryInfo.html | 4 +-
.../hbase/metrics/class-use/OperationMetrics.html | 52 +-
.../hadoop/hbase/mob/class-use/MobFileCache.html | 16 +-
.../hbase/monitoring/MonitoredTask.State.html | 4 +-
.../monitoring/class-use/MonitoredRPCHandler.html | 10 +-
.../hbase/monitoring/class-use/MonitoredTask.html | 36 +-
.../hadoop/hbase/monitoring/package-tree.html | 2 +-
.../NamedQueuePayload.NamedQueueEvent.html | 14 +-
.../namequeues/class-use/NamedQueuePayload.html | 18 +-
.../namequeues/class-use/NamedQueueRecorder.html | 16 +-
.../request/class-use/NamedQueueGetRequest.html | 20 +-
.../response/class-use/NamedQueueGetResponse.html | 20 +-
.../apache/hadoop/hbase/net/class-use/Address.html | 86 +-
.../hadoop/hbase/nio/class-use/ByteBuff.html | 86 +-
.../apache/hadoop/hbase/nio/class-use/RefCnt.html | 8 +-
.../org/apache/hadoop/hbase/package-tree.html | 18 +-
.../org/apache/hadoop/hbase/package-use.html | 148 +-
.../class-use/MasterProcedureManagerHost.html | 4 +-
.../class-use/ProcedureCoordinatorRpcs.html | 10 +-
.../hbase/procedure/class-use/ProcedureMember.html | 10 +-
.../procedure/class-use/ProcedureMemberRpcs.html | 16 +-
.../hbase/procedure/class-use/Subprocedure.html | 34 +-
.../hbase/procedure2/RootProcedureState.State.html | 4 +-
.../class-use/CompletedProcedureRetainer.html | 8 +-
.../hbase/procedure2/class-use/LockedResource.html | 36 +-
.../procedure2/class-use/LockedResourceType.html | 12 +-
.../procedure2/class-use/Procedure.LockState.html | 20 +-
.../hbase/procedure2/class-use/Procedure.html | 94 +-
.../hbase/procedure2/class-use/ProcedureEvent.html | 18 +-
.../procedure2/class-use/ProcedureExecutor.html | 8 +-
.../procedure2/class-use/ProcedureMetrics.html | 12 +-
.../class-use/ProcedureStateSerializer.html | 250 +-
.../class-use/ProcedureSuspendedException.html | 32 +-
.../class-use/ProcedureYieldException.html | 24 +-
.../RemoteProcedureDispatcher.RemoteOperation.html | 22 +-
.../class-use/RemoteProcedureException.html | 10 +-
.../hadoop/hbase/procedure2/package-tree.html | 4 +-
.../procedure2/store/class-use/ProcedureStore.html | 4 +-
.../ProcedureStoreTracker.DeleteState.html | 10 +-
.../store/wal/class-use/ProcedureStoreTracker.html | 10 +-
.../class-use/DelayedUtil.DelayedWithTimeout.html | 4 +-
.../hbase/quotas/RpcThrottlingException.Type.html | 4 +-
.../quotas/class-use/FileArchiverNotifier.html | 8 +-
.../hbase/quotas/class-use/MasterQuotaManager.html | 8 +-
.../hadoop/hbase/quotas/class-use/QuotaFilter.html | 12 +-
.../hbase/quotas/class-use/QuotaLimiter.html | 16 +-
.../hbase/quotas/class-use/QuotaSettings.html | 56 +-
.../hadoop/hbase/quotas/class-use/QuotaState.html | 8 +-
.../hadoop/hbase/quotas/class-use/QuotaType.html | 12 +-
.../class-use/RegionServerRpcQuotaManager.html | 8 +-
.../class-use/RegionServerSpaceQuotaManager.html | 8 +-
.../hadoop/hbase/quotas/class-use/RegionSize.html | 24 +-
.../hbase/quotas/class-use/RegionSizeStore.html | 8 +-
.../hbase/quotas/class-use/RpcThrottleStorage.html | 4 +-
.../quotas/class-use/RpcThrottlingException.html | 16 +-
.../quotas/class-use/SpaceLimitingException.html | 10 +-
.../hbase/quotas/class-use/SpaceQuotaSnapshot.html | 12 +-
.../SpaceViolationPolicyEnforcementFactory.html | 4 +-
.../apache/hadoop/hbase/quotas/package-tree.html | 2 +-
.../hbase/regionserver/ChunkCreator.ChunkType.html | 4 +-
.../hadoop/hbase/regionserver/FlushType.html | 4 +-
.../hbase/regionserver/Region.Operation.html | 4 +-
.../hbase/regionserver/TimeRangeTracker.Type.html | 4 +-
.../hbase/regionserver/class-use/BloomType.html | 8 +-
.../hbase/regionserver/class-use/CellFlatMap.html | 8 +-
.../hbase/regionserver/class-use/CellSet.html | 12 +-
.../hadoop/hbase/regionserver/class-use/Chunk.html | 8 +-
.../class-use/ChunkCreator.ChunkType.html | 8 +-
.../class-use/CreateStoreFileWriterParams.html | 8 +-
.../class-use/FlushLifeCycleTracker.html | 34 +-
.../class-use/FlushRequestListener.html | 16 +-
.../regionserver/class-use/FlushRequester.html | 8 +-
.../hbase/regionserver/class-use/FlushType.html | 20 +-
.../hbase/regionserver/class-use/HMobStore.html | 8 +-
.../hbase/regionserver/class-use/HRegion.html | 136 +-
.../regionserver/class-use/HRegionFileSystem.html | 12 +-
.../regionserver/class-use/HRegionServer.html | 22 +-
.../hbase/regionserver/class-use/HStore.html | 50 +-
.../hbase/regionserver/class-use/HStoreFile.html | 206 +-
.../regionserver/class-use/HeapMemoryManager.html | 8 +-
.../regionserver/class-use/InternalScanner.html | 8 +-
.../hbase/regionserver/class-use/KeyValueHeap.html | 8 +-
.../regionserver/class-use/KeyValueScanner.html | 30 +-
.../hbase/regionserver/class-use/LeaseManager.html | 8 +-
.../MemStoreCompactionStrategy.Action.html | 20 +-
.../class-use/MemStoreSegmentsIterator.html | 4 +-
.../hbase/regionserver/class-use/MemStoreSize.html | 26 +-
.../regionserver/class-use/MemStoreSizing.html | 66 +-
.../regionserver/class-use/MemStoreSnapshot.html | 16 +-
.../class-use/MetricsRegionServer.html | 8 +-
.../class-use/MetricsRegionSource.html | 14 +-
.../class-use/MetricsTableAggregateSource.html | 8 +-
.../regionserver/class-use/MutableSegment.html | 30 +-
.../regionserver/class-use/OnlineRegions.html | 8 +-
.../regionserver/class-use/OperationStatus.html | 8 +-
.../regionserver/class-use/RSRpcServices.html | 4 +-
.../class-use/RegionCoprocessorHost.html | 18 +-
.../class-use/RegionServerAccounting.html | 8 +-
...RegionServerServices.PostOpenDeployContext.html | 8 +-
...erverServices.RegionStateTransitionContext.html | 8 +-
.../class-use/RegionServerServices.html | 60 +-
.../class-use/ReplicationSourceService.html | 4 +-
.../hbase/regionserver/class-use/ScanType.html | 4 +-
.../class-use/ScannerContext.LimitScope.html | 24 +-
.../class-use/ScannerContext.NextState.html | 16 +-
.../regionserver/class-use/ScannerContext.html | 32 +-
.../class-use/SecureBulkLoadManager.html | 8 +-
.../hbase/regionserver/class-use/Segment.html | 20 +-
.../regionserver/class-use/ServerNonceManager.html | 8 +-
.../hadoop/hbase/regionserver/class-use/Store.html | 4 +-
.../class-use/StoreConfigInformation.html | 8 +-
.../hbase/regionserver/class-use/StoreContext.html | 8 +-
.../regionserver/class-use/StoreFileInfo.html | 86 +-
.../regionserver/class-use/StoreFileReader.html | 8 +-
.../regionserver/class-use/StoreFileWriter.html | 24 +-
.../regionserver/class-use/TimeRangeTracker.html | 12 +-
.../class-use/VersionedSegmentsList.html | 8 +-
.../compactions/class-use/CompactionContext.html | 12 +-
.../class-use/CompactionLifeCycleTracker.html | 4 +-
.../compactions/class-use/CompactionRequest.html | 4 +-
.../class-use/CompactionRequestImpl.html | 8 +-
.../compactions/class-use/CompactionRequester.html | 4 +-
.../hadoop/hbase/regionserver/package-tree.html | 16 +-
.../querymatcher/DeleteTracker.DeleteResult.html | 4 +-
.../querymatcher/ScanQueryMatcher.MatchCode.html | 4 +-
.../querymatcher/class-use/ColumnCount.html | 12 +-
.../class-use/DeleteTracker.DeleteResult.html | 16 +-
.../querymatcher/class-use/DeleteTracker.html | 8 +-
.../class-use/ScanQueryMatcher.MatchCode.html | 56 +-
.../regionserver/querymatcher/package-tree.html | 4 +-
.../class-use/RegionReplicationBufferManager.html | 4 +-
.../storefiletracker/package-tree.html | 2 +-
.../throttle/class-use/ThroughputController.html | 38 +-
.../wal/CompressionContext.DictionaryIndex.html | 4 +-
.../regionserver/wal/RingBufferTruck.Type.html | 4 +-
.../wal/WALActionsListener.RollRequestReason.html | 4 +-
.../wal/class-use/CompressionContext.html | 10 +-
.../wal/class-use/WALActionsListener.html | 26 +-
.../hbase/regionserver/wal/package-tree.html | 4 +-
.../replication/ReplicationPeer.PeerState.html | 4 +-
.../hbase/replication/SyncReplicationState.html | 4 +-
.../class-use/ReplicationEndpoint.Context.html | 4 +-
.../ReplicationEndpoint.ReplicateContext.html | 8 +-
.../class-use/ReplicationException.html | 352 +-
.../class-use/ReplicationGroupOffset.html | 30 +-
.../replication/class-use/ReplicationLoadSink.html | 8 +-
.../class-use/ReplicationLoadSource.html | 16 +-
.../class-use/ReplicationPeer.PeerState.html | 8 +-
.../class-use/ReplicationPeerConfig.html | 94 +-
.../class-use/ReplicationPeerConfigBuilder.html | 84 +-
.../class-use/ReplicationPeerConfigListener.html | 8 +-
.../class-use/ReplicationPeerDescription.html | 32 +-
.../replication/class-use/ReplicationPeers.html | 4 +-
.../class-use/ReplicationQueueData.html | 18 +-
.../replication/class-use/ReplicationQueueId.html | 70 +-
.../class-use/ReplicationQueueStorage.html | 8 +-
.../class-use/SyncReplicationState.html | 50 +-
.../replication/class-use/WALEntryFilter.html | 8 +-
...QueueStorageForMigration.ZkLastPushedSeqId.html | 8 +-
.../class-use/ReplicationLogCleanerBarrier.html | 8 +-
.../hadoop/hbase/replication/package-tree.html | 4 +-
.../ReplicationSourceShipper.WorkerState.html | 4 +-
.../class-use/MetricsReplicationSourceImpl.html | 6 +-
.../regionserver/class-use/MetricsSource.html | 8 +-
.../regionserver/class-use/ReplicationSource.html | 10 +-
.../class-use/ReplicationSourceLogQueue.html | 16 +-
.../class-use/ReplicationSourceManager.html | 8 +-
.../replication/regionserver/package-tree.html | 2 +-
.../rest/class-use/ProtobufMessageHandler.html | 16 +-
.../hadoop/hbase/rest/class-use/TableResource.html | 16 +-
.../hbase/rest/class-use/VersionResource.html | 8 +-
.../hadoop/hbase/rest/model/package-tree.html | 2 +-
.../hbase/rsgroup/class-use/RSGroupInfo.html | 76 +-
.../rsgroup/class-use/RSGroupInfoManager.html | 16 +-
.../security/SaslUtil.QualityOfProtection.html | 4 +-
.../hbase/security/access/Permission.Action.html | 4 +-
.../hbase/security/access/Permission.Scope.html | 4 +-
.../security/access/class-use/AuthManager.html | 8 +-
.../class-use/GetUserPermissionsRequest.html | 12 +-
.../security/access/class-use/Permission.html | 88 +-
.../SnapshotScannerHDFSAclHelper.PathHelper.html | 4 +-
.../security/access/class-use/UserPermission.html | 38 +-
.../hadoop/hbase/security/access/package-tree.html | 8 +-
.../hbase/security/class-use/SecurityInfo.html | 10 +-
.../hadoop/hbase/security/class-use/User.html | 118 +-
.../hbase/security/class-use/UserProvider.html | 8 +-
.../apache/hadoop/hbase/security/package-tree.html | 4 +-
.../AttemptingUserProvidingSaslServer.html | 4 +-
.../provider/class-use/SaslAuthMethod.html | 8 +-
.../SaslClientAuthenticationProvider.html | 20 +-
.../visibility/class-use/Authorizations.html | 30 +-
.../visibility/class-use/CellVisibility.html | 20 +-
.../class-use/VisibilityLabelService.html | 4 +-
.../class-use/VisibilityLabelsCache.html | 10 +-
.../hbase/thrift/class-use/ThriftMetrics.html | 4 +-
.../apache/hadoop/hbase/thrift/package-tree.html | 2 +-
.../trace/HBaseSemanticAttributes.ReadType.html | 4 +-
.../hbase/util/ByteBufferUtils.ByteVisitor.html | 8 +-
...er.html => ByteBufferUtils.CommonPrefixer.html} | 92 +-
...mmonPrefixerHolder.PureJavaCommonPrefixer.html} | 112 +-
...CommonPrefixerHolder.UnsafeCommonPrefixer.html} | 104 +-
...l => ByteBufferUtils.CommonPrefixerHolder.html} | 70 +-
.../hbase/util/ByteBufferUtils.Comparer.html | 4 +-
...ufferUtils.ComparerHolder.PureJavaComparer.html | 10 +-
...eBufferUtils.ComparerHolder.UnsafeComparer.html | 8 +-
.../hbase/util/ByteBufferUtils.ComparerHolder.html | 10 +-
...ferUtils.ConverterHolder.PureJavaConverter.html | 26 +-
...ufferUtils.ConverterHolder.UnsafeConverter.html | 24 +-
.../util/ByteBufferUtils.ConverterHolder.html | 10 +-
.../apache/hadoop/hbase/util/ByteBufferUtils.html | 227 +-
.../hbase/util/Bytes.ByteArrayComparator.html | 4 +-
...ils.Comparer.html => Bytes.CommonPrefixer.html} | 95 +-
...mmonPrefixerHolder.PureJavaCommonPrefixer.html} | 109 +-
...CommonPrefixerHolder.UnsafeCommonPrefixer.html} | 114 +-
...Holder.html => Bytes.CommonPrefixerHolder.html} | 79 +-
.../apache/hadoop/hbase/util/Bytes.Comparer.html | 4 +-
.../Bytes.ConverterHolder.PureJavaConverter.html | 18 +-
.../Bytes.ConverterHolder.UnsafeConverter.html | 16 +-
.../hadoop/hbase/util/Bytes.ConverterHolder.html | 10 +-
...cographicalComparerHolder.PureJavaComparer.html | 10 +-
...xicographicalComparerHolder.UnsafeComparer.html | 10 +-
.../util/Bytes.LexicographicalComparerHolder.html | 10 +-
devapidocs/org/apache/hadoop/hbase/util/Bytes.html | 132 +-
.../org/apache/hadoop/hbase/util/ChecksumType.html | 4 +-
.../apache/hadoop/hbase/util/DNS.ServerType.html | 4 +-
.../hadoop/hbase/util/PrettyPrinter.Unit.html | 4 +-
.../hbase/util/class-use/BloomFilterWriter.html | 14 +-
.../hbase/util/class-use/ByteBufferArray.html | 8 +-
.../class-use/ByteBufferUtils.CommonPrefixer.html} | 72 +-
...mmonPrefixerHolder.PureJavaCommonPrefixer.html} | 41 +-
....CommonPrefixerHolder.UnsafeCommonPrefixer.html | 62 +-
.../ByteBufferUtils.CommonPrefixerHolder.html | 62 +-
.../hadoop/hbase/util/class-use/ByteRange.html | 70 +-
.../class-use/Bytes.CommonPrefixer.html} | 64 +-
...mmonPrefixerHolder.PureJavaCommonPrefixer.html} | 41 +-
....CommonPrefixerHolder.UnsafeCommonPrefixer.html | 62 +-
.../util/class-use/Bytes.CommonPrefixerHolder.html | 62 +-
.../apache/hadoop/hbase/util/class-use/Bytes.html | 106 +-
...mmonFSUtils.StreamLacksCapabilityException.html | 10 +-
.../hadoop/hbase/util/class-use/HBaseFsck.html | 10 +-
.../apache/hadoop/hbase/util/class-use/Hash.html | 4 +-
.../hadoop/hbase/util/class-use/HashKey.html | 22 +-
.../hbase/util/class-use/HbckErrorReporter.html | 14 +-
.../hbase/util/class-use/HbckRegionInfo.html | 20 +-
.../hadoop/hbase/util/class-use/HbckTableInfo.html | 8 +-
.../apache/hadoop/hbase/util/class-use/IdLock.html | 4 +-
.../hadoop/hbase/util/class-use/KeyLocker.html | 4 +-
.../hadoop/hbase/util/class-use/NonceKey.html | 8 +-
.../hadoop/hbase/util/class-use/ObjectIntPair.html | 28 +-
.../apache/hadoop/hbase/util/class-use/Order.html | 44 +-
.../apache/hadoop/hbase/util/class-use/Pair.html | 62 +-
.../hbase/util/class-use/PositionedByteRange.html | 404 +-
.../hbase/util/class-use/PrettyPrinter.Unit.html | 4 +-
.../util/class-use/RetryCounter.RetryConfig.html | 4 +-
.../hadoop/hbase/util/class-use/RetryCounter.html | 32 +-
.../apache/hadoop/hbase/util/package-frame.html | 8 +
.../apache/hadoop/hbase/util/package-summary.html | 32 +
.../org/apache/hadoop/hbase/util/package-tree.html | 26 +-
.../org/apache/hadoop/hbase/util/package-use.html | 116 +-
.../hadoop/hbase/wal/WALTailingReader.State.html | 4 +-
.../class-use/EntryBuffers.RegionEntryBuffer.html | 12 +-
.../hadoop/hbase/wal/class-use/WAL.Entry.html | 76 +-
.../org/apache/hadoop/hbase/wal/class-use/WAL.html | 46 +-
.../apache/hadoop/hbase/wal/class-use/WALEdit.html | 12 +-
.../hadoop/hbase/wal/class-use/WALFactory.html | 26 +-
.../hadoop/hbase/wal/class-use/WALKeyImpl.html | 4 +-
.../hadoop/hbase/wal/class-use/WALProvider.html | 4 +-
.../org/apache/hadoop/hbase/wal/package-tree.html | 2 +-
.../zookeeper/class-use/MasterAddressTracker.html | 10 +-
.../hbase/zookeeper/class-use/ZKWatcher.html | 24 +-
.../hadoop/metrics2/class-use/MetricHistogram.html | 28 +-
.../lib/class-use/DynamicMetricsRegistry.html | 4 +-
.../metrics2/lib/class-use/MutableFastCounter.html | 66 +-
.../metrics2/lib/class-use/MutableHistogram.html | 6 +-
devapidocs/overview-tree.html | 236 +-
.../hbase/util/ByteBufferUtils.ByteVisitor.html | 2423 +++++-----
.../hbase/util/ByteBufferUtils.CommonPrefixer.html | 1443 ++++++
...ommonPrefixerHolder.PureJavaCommonPrefixer.html | 1443 ++++++
....CommonPrefixerHolder.UnsafeCommonPrefixer.html | 1443 ++++++
.../util/ByteBufferUtils.CommonPrefixerHolder.html | 1443 ++++++
.../hbase/util/ByteBufferUtils.Comparer.html | 2423 +++++-----
...ufferUtils.ComparerHolder.PureJavaComparer.html | 2423 +++++-----
...eBufferUtils.ComparerHolder.UnsafeComparer.html | 2423 +++++-----
.../hbase/util/ByteBufferUtils.ComparerHolder.html | 2423 +++++-----
.../hbase/util/ByteBufferUtils.Converter.html | 2423 +++++-----
...ferUtils.ConverterHolder.PureJavaConverter.html | 2423 +++++-----
...ufferUtils.ConverterHolder.UnsafeConverter.html | 2423 +++++-----
.../util/ByteBufferUtils.ConverterHolder.html | 2423 +++++-----
.../apache/hadoop/hbase/util/ByteBufferUtils.html | 2423 +++++-----
.../hbase/util/Bytes.ByteArrayComparator.html | 2537 ++++++-----
...ayComparator.html => Bytes.CommonPrefixer.html} | 2537 ++++++-----
...mmonPrefixerHolder.PureJavaCommonPrefixer.html} | 2537 ++++++-----
...CommonPrefixerHolder.UnsafeCommonPrefixer.html} | 2537 ++++++-----
...arator.html => Bytes.CommonPrefixerHolder.html} | 2537 ++++++-----
.../apache/hadoop/hbase/util/Bytes.Comparer.html | 2537 ++++++-----
.../apache/hadoop/hbase/util/Bytes.Converter.html | 2537 ++++++-----
.../Bytes.ConverterHolder.PureJavaConverter.html | 2537 ++++++-----
.../Bytes.ConverterHolder.UnsafeConverter.html | 2537 ++++++-----
.../hadoop/hbase/util/Bytes.ConverterHolder.html | 2537 ++++++-----
...cographicalComparerHolder.PureJavaComparer.html | 2537 ++++++-----
...xicographicalComparerHolder.UnsafeComparer.html | 2537 ++++++-----
.../util/Bytes.LexicographicalComparerHolder.html | 2537 ++++++-----
.../hbase/util/Bytes.RowEndKeyComparator.html | 2537 ++++++-----
.../org/apache/hadoop/hbase/util/Bytes.html | 2537 ++++++-----
downloads.html | 2 +-
export_control.html | 2 +-
index.html | 2 +-
issue-management.html | 2 +-
licenses.html | 2 +-
mailing-lists.html | 2 +-
metrics.html | 2 +-
old_news.html | 2 +-
plugin-management.html | 2 +-
plugins.html | 2 +-
poweredbyhbase.html | 2 +-
project-info.html | 2 +-
project-reports.html | 2 +-
pseudo-distributed.html | 2 +-
replication.html | 2 +-
resources.html | 2 +-
scm.html | 2 +-
sponsors.html | 2 +-
summary.html | 2 +-
supportingprojects.html | 2 +-
team.html | 2 +-
testdevapidocs/index-all.html | 8 +
...seClusterManager.CommandProvider.Operation.html | 4 +-
.../hadoop/hbase/HBaseClusterManager.Signal.html | 4 +-
.../hbase/RESTApiClusterManager.HealthSummary.html | 4 +-
.../hbase/RESTApiClusterManager.RoleCommand.html | 4 +-
.../hbase/RESTApiClusterManager.RoleState.html | 4 +-
.../hbase/RESTApiClusterManager.Service.html | 4 +-
.../apache/hadoop/hbase/backup/package-tree.html | 2 +-
.../actions/class-use/Action.ActionContext.html | 12 +-
.../hbase/chaos/actions/class-use/Action.html | 4 +-
.../chaos/factories/class-use/MonkeyFactory.html | 4 +-
.../hbase/chaos/monkies/class-use/ChaosMonkey.html | 26 +-
.../policies/class-use/Policy.PolicyContext.html | 12 +-
.../class-use/ClusterManager.ServiceType.html | 98 +-
.../hadoop/hbase/class-use/ClusterManager.html | 4 +-
.../hadoop/hbase/class-use/ConnectionRule.html | 8 +-
.../hadoop/hbase/class-use/HBaseClassTestRule.html | 3256 +++++++-------
.../hbase/class-use/HBaseClusterInterface.html | 4 +-
.../hbase/class-use/HBaseCommonTestingUtil.html | 66 +-
.../hadoop/hbase/class-use/HBaseTestingUtil.html | 1750 ++++----
.../hadoop/hbase/class-use/HBaseZKTestingUtil.html | 22 +-
.../hbase/class-use/IntegrationTestingUtility.html | 12 +-
.../hadoop/hbase/class-use/MiniClusterRule.html | 8 +-
.../hbase/class-use/SingleProcessHBaseCluster.html | 40 +-
.../hadoop/hbase/class-use/TableNameTestRule.html | 32 +-
.../hbase/io/crypto/tls/class-use/X509KeyType.html | 22 +-
.../io/crypto/tls/class-use/X509TestContext.html | 8 +-
.../tls/class-use/X509TestContextProvider.html | 16 +-
.../apache/hadoop/hbase/io/hfile/package-tree.html | 2 +-
.../TableSnapshotInputFormatTestBase.html | 2 +-
.../hbase/mapreduce/TestTableMapReduceBase.html | 2 +-
.../TableSnapshotInputFormatTestBase.html | 10 +-
.../class-use/TestTableMapReduceBase.html | 10 +-
.../apache/hadoop/hbase/mapreduce/package-use.html | 18 +-
.../org/apache/hadoop/hbase/package-tree.html | 16 +-
.../org/apache/hadoop/hbase/package-use.html | 16 +-
.../hadoop/hbase/procedure/package-tree.html | 8 +-
.../hadoop/hbase/procedure2/package-tree.html | 2 +-
.../quotas/class-use/SpaceQuotaHelperForTests.html | 34 +-
.../class-use/MetricsTableWrapperStub.html | 4 +-
.../hadoop/hbase/regionserver/package-tree.html | 4 +-
.../rest/class-use/HBaseRESTTestingUtility.html | 36 +-
.../hbase/rest/client/class-use/RemoteHTable.html | 4 +-
.../TestExportSnapshot.RegionPredicate.html | 4 +-
.../hbase/test/class-use/MetricsAssertHelper.html | 22 +-
.../org/apache/hadoop/hbase/test/package-tree.html | 4 +-
.../trace/class-use/OpenTelemetryTestRule.html | 4 +-
.../hadoop/hbase/util/TestByteBufferUtils.html | 35 +-
.../org/apache/hadoop/hbase/util/TestBytes.html | 118 +-
.../hbase/util/class-use/LoadTestKVGenerator.html | 4 +-
.../class-use/RandomDistribution.DiscreteRNG.html | 8 +-
testdevapidocs/overview-tree.html | 64 +-
.../hadoop/hbase/util/TestByteBufferUtils.html | 55 +-
.../org/apache/hadoop/hbase/util/TestBytes.html | 45 +-
727 files changed, 57769 insertions(+), 48851 deletions(-)
diff --git a/acid-semantics.html b/acid-semantics.html
index 7763b0376ce..585cffb63c3 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -464,7 +464,7 @@
<div class="row">
<p>Copyright ©2007–2023
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2023-08-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2023-08-20</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 73d4ccf1c22..7682b424fd9 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
/Author (Apache HBase Team)
/Creator (Asciidoctor PDF 2.0.6, based on Prawn 2.4.0)
/Producer (Apache HBase Team)
-/ModDate (D:20230818142937+00'00')
-/CreationDate (D:20230818144001+00'00')
+/ModDate (D:20230820143050+00'00')
+/CreationDate (D:20230820144203+00'00')
>>
endobj
2 0 obj
diff --git a/apidocs/deprecated-list.html b/apidocs/deprecated-list.html
index 20732c9ef23..7096e5deebc 100644
--- a/apidocs/deprecated-list.html
+++ b/apidocs/deprecated-list.html
@@ -206,7 +206,7 @@
</tr>
<tbody>
<tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedString.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedString.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedFloat32.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedFloat32.ASCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
@@ -216,52 +216,52 @@
</td>
</tr>
<tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt8.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedInt8.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/RawString.html#ASCENDING">org.apache.hadoop.hbase.types.RawString.ASCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/RawString.html#ASCENDING">org.apache.hadoop.hbase.types.RawString.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt64.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedInt64.ASCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedFloat64.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedFloat64.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/RawBytes.html#ASCENDING">org.apache.hadoop.hbase.types.RawBytes.ASCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/RawBytes.html#ASCENDING">org.apache.hadoop.hbase.types.RawBytes.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt16.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedInt16.ASCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt32.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedInt32.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt8.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedInt8.ASCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt64.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedInt64.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt32.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedInt32.ASCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedFloat32.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedFloat32.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedString.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedString.ASCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt16.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedInt16.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedFloat64.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedFloat64.ASCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedNumeric.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedNumeric.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedBlobVar.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedBlobVar.ASCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedBlobVar.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedBlobVar.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedNumeric.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedNumeric.ASCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
@@ -284,7 +284,7 @@
</td>
</tr>
<tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedString.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedString.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedFloat32.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedFloat32.DESCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
@@ -294,52 +294,52 @@
</td>
</tr>
<tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt8.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedInt8.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/RawString.html#DESCENDING">org.apache.hadoop.hbase.types.RawString.DESCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/RawString.html#DESCENDING">org.apache.hadoop.hbase.types.RawString.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt64.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedInt64.DESCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedFloat64.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedFloat64.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/RawBytes.html#DESCENDING">org.apache.hadoop.hbase.types.RawBytes.DESCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/RawBytes.html#DESCENDING">org.apache.hadoop.hbase.types.RawBytes.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt16.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedInt16.DESCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt32.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedInt32.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt8.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedInt8.DESCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt64.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedInt64.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt32.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedInt32.DESCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedFloat32.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedFloat32.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedString.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedString.DESCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt16.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedInt16.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedFloat64.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedFloat64.DESCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedNumeric.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedNumeric.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedBlobVar.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedBlobVar.DESCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
<tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedBlobVar.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedBlobVar.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedNumeric.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedNumeric.DESCENDING</a>
<div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
</td>
</tr>
@@ -584,25 +584,25 @@
</td>
</tr>
<tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/client/Table.html#checkAndMutate-byte:A-byte:A-">org.apache.hadoop.hbase.client.Table.checkAndMutate(byte[], byte[])</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-byte:A-byte:A-">org.apache.hadoop.hbase.client.AsyncTable.checkAndMutate(byte[], byte[])</a>
<div class="block"><span class="deprecationComment">Since 3.0.0, will be removed in 4.0.0. For internal test use only, do not use it
any more.</span></div>
</td>
</tr>
<tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-byte:A-byte:A-">org.apache.hadoop.hbase.client.AsyncTable.checkAndMutate(byte[], byte[])</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/client/Table.html#checkAndMutate-byte:A-byte:A-">org.apache.hadoop.hbase.client.Table.checkAndMutate(byte[], byte[])</a>
<div class="block"><span class="deprecationComment">Since 3.0.0, will be removed in 4.0.0. For internal test use only, do not use it
any more.</span></div>
</td>
</tr>
<tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/client/Table.html#checkAndMutate-byte:A-org.apache.hadoop.hbase.filter.Filter-">org.apache.hadoop.hbase.client.Table.checkAndMutate(byte[], Filter)</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-byte:A-org.apache.hadoop.hbase.filter.Filter-">org.apache.hadoop.hbase.client.AsyncTable.checkAndMutate(byte[], Filter)</a>
<div class="block"><span class="deprecationComment">Since 3.0.0, will be removed in 4.0.0. For internal test use only, do not use it
any more.</span></div>
</td>
</tr>
<tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-byte:A-org.apache.hadoop.hbase.filter.Filter-">org.apache.hadoop.hbase.client.AsyncTable.checkAndMutate(byte[], Filter)</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/client/Table.html#checkAndMutate-byte:A-org.apache.hadoop.hbase.filter.Filter-">org.apache.hadoop.hbase.client.Table.checkAndMutate(byte[], Filter)</a>
<div class="block"><span class="deprecationComment">Since 3.0.0, will be removed in 4.0.0. For internal test use only, do not use it
any more.</span></div>
</td>
@@ -825,15 +825,15 @@
</td>
</tr>
<tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/client/AsyncAdminBuilder.html#setRetryPauseForCQTBE-long-java.util.concurrent.TimeUnit-">org.apache.hadoop.hbase.client.AsyncAdminBuilder.setRetryPauseForCQTBE(long, TimeUnit)</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/client/AsyncTableBuilder.html#setRetryPauseForCQTBE-long-java.util.concurrent.TimeUnit-">org.apache.hadoop.hbase.client.AsyncTableBuilder.setRetryPauseForCQTBE(long, TimeUnit)</a>
<div class="block"><span class="deprecationComment">Since 2.5.0, will be removed in 4.0.0. Please use
- <a href="org/apache/hadoop/hbase/client/AsyncAdminBuilder.html#setRetryPauseForServerOverloaded-long-java.util.concurrent.TimeUnit-"><code>AsyncAdminBuilder.setRetryPauseForServerOverloaded(long, TimeUnit)</code></a> instead.</span></div>
+ <a href="org/apache/hadoop/hbase/client/AsyncTableBuilder.html#setRetryPauseForServerOverloaded-long-java.util.concurrent.TimeUnit-"><code>AsyncTableBuilder.setRetryPauseForServerOverloaded(long, TimeUnit)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/client/AsyncTableBuilder.html#setRetryPauseForCQTBE-long-java.util.concurrent.TimeUnit-">org.apache.hadoop.hbase.client.AsyncTableBuilder.setRetryPauseForCQTBE(long, TimeUnit)</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/client/AsyncAdminBuilder.html#setRetryPauseForCQTBE-long-java.util.concurrent.TimeUnit-">org.apache.hadoop.hbase.client.AsyncAdminBuilder.setRetryPauseForCQTBE(long, TimeUnit)</a>
<div class="block"><span class="deprecationComment">Since 2.5.0, will be removed in 4.0.0. Please use
- <a href="org/apache/hadoop/hbase/client/AsyncTableBuilder.html#setRetryPauseForServerOverloaded-long-java.util.concurrent.TimeUnit-"><code>AsyncTableBuilder.setRetryPauseForServerOverloaded(long, TimeUnit)</code></a> instead.</span></div>
+ <a href="org/apache/hadoop/hbase/client/AsyncAdminBuilder.html#setRetryPauseForServerOverloaded-long-java.util.concurrent.TimeUnit-"><code>AsyncAdminBuilder.setRetryPauseForServerOverloaded(long, TimeUnit)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
diff --git a/apidocs/org/apache/hadoop/hbase/KeepDeletedCells.html b/apidocs/org/apache/hadoop/hbase/KeepDeletedCells.html
index fe2eaf351d2..268af18c54a 100644
--- a/apidocs/org/apache/hadoop/hbase/KeepDeletedCells.html
+++ b/apidocs/org/apache/hadoop/hbase/KeepDeletedCells.html
@@ -262,7 +262,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
-<pre>public static <a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase">KeepDeletedCells</a>[] <a href="../../../../src-html/org/apache/hadoop/hbase/KeepDeletedCells.html#line.48">values</a>()</pre>
+<pre>public static <a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase">KeepDeletedCells</a>[] <a href="../../../../src-html/org/apache/hadoop/hbase/KeepDeletedCells.html#line.39">values</a>()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
@@ -282,7 +282,7 @@ for (KeepDeletedCells c : KeepDeletedCells.values())
<ul class="blockList">
<li class="blockList">
<h4>valueOf</h4>
-<pre>public static <a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase">KeepDeletedCells</a> <a href="../../../../src-html/org/apache/hadoop/hbase/KeepDeletedCells.html#line.48">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<pre>public static <a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase">KeepDeletedCells</a> <a href="../../../../src-html/org/apache/hadoop/hbase/KeepDeletedCells.html#line.39">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
diff --git a/apidocs/org/apache/hadoop/hbase/MemoryCompactionPolicy.html b/apidocs/org/apache/hadoop/hbase/MemoryCompactionPolicy.html
index 8fc5ed05808..d5bf09ef3ce 100644
--- a/apidocs/org/apache/hadoop/hbase/MemoryCompactionPolicy.html
+++ b/apidocs/org/apache/hadoop/hbase/MemoryCompactionPolicy.html
@@ -278,7 +278,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
-<pre>public static <a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase">MemoryCompactionPolicy</a>[] <a href="../../../../src-html/org/apache/hadoop/hbase/MemoryCompactionPolicy.html#line.45">values</a>()</pre>
+<pre>public static <a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase">MemoryCompactionPolicy</a>[] <a href="../../../../src-html/org/apache/hadoop/hbase/MemoryCompactionPolicy.html#line.38">values</a>()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
@@ -298,7 +298,7 @@ for (MemoryCompactionPolicy c : MemoryCompactionPolicy.values())
<ul class="blockListLast">
<li class="blockList">
<h4>valueOf</h4>
-<pre>public static <a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase">MemoryCompactionPolicy</a> <a href="../../../../src-html/org/apache/hadoop/hbase/MemoryCompactionPolicy.html#line.45">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<pre>public static <a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase">MemoryCompactionPolicy</a> <a href="../../../../src-html/org/apache/hadoop/hbase/MemoryCompactionPolicy.html#line.38">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/Cell.html b/apidocs/org/apache/hadoop/hbase/class-use/Cell.html
index 6331f1452cd..6cd3bc1b8e1 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/Cell.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/Cell.html
@@ -713,17 +713,17 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Delete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Delete.html#add-org.apache.hadoop.hbase.Cell-">add</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code>
-<div class="block">Add an existing delete marker to this Delete object.</div>
-</td>
-</tr>
-<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a></code></td>
<td class="colLast"><span class="typeNameLabel">Put.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Put.html#add-org.apache.hadoop.hbase.Cell-">add</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code>
<div class="block">Add the specified KeyValue to this Put operation.</div>
</td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Delete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Delete.html#add-org.apache.hadoop.hbase.Cell-">add</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code>
+<div class="block">Add an existing delete marker to this Delete object.</div>
+</td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><span class="typeNameLabel">Result.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Result.html#binarySearch-org.apache.hadoop.hbase.Cell:A-byte:A-byte:A-">binarySearch</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>[] kvs,
@@ -853,44 +853,52 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentCell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentCell)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">MultiRowRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentKV)</code> </td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+</tr>
<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FuzzyRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentCell)</code> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentCell)</code>
<div class="block">If the filter returns the match code SEEK_NEXT_USING_HINT, then it should also tell which is
the next key it must seek to.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentCell)</code>
<div class="block">Pick the next cell that the scanner should seek to.</div>
</td>
</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
-</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FuzzyRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentCell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
@@ -898,7 +906,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">WhileMatchFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/WhileMatchFilter.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> v)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
@@ -906,14 +914,6 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
<div class="block">Give the filter a chance to transform the passed KeyValue.</div>
</td>
</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">WhileMatchFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/WhileMatchFilter.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> v)</code> </td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
-</tr>
</tbody>
</table>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
@@ -949,31 +949,31 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnCountGetFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnCountGetFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> ignored)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FirstKeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DependentColumnFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/DependentColumnFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">QualifierFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/QualifierFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SkipFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SkipFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">DependentColumnFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/DependentColumnFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PageFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/PageFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> ignored)</code> </td>
+<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">MultiRowRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> ignored)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
@@ -981,33 +981,31 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnCountGetFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnCountGetFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RandomRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/RandomRowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SkipFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SkipFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/PrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">RandomRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/RandomRowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MultiRowRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> ignored)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">InclusiveStopFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/InclusiveStopFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code>
-<div class="block">A way to filter based on the column family, column qualifier and/or the column value.</div>
-</td>
+<td class="colLast"><span class="typeNameLabel">RowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/RowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> v)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
@@ -1015,39 +1013,41 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SingleColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">FuzzyRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">InclusiveStopFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/InclusiveStopFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/RowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> v)</code> </td>
+<td class="colLast"><span class="typeNameLabel">PrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/PrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">PageFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/PageFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> ignored)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code>
+<div class="block">A way to filter based on the column family, column qualifier and/or the column value.</div>
+</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">FirstKeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FuzzyRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">QualifierFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/QualifierFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> ignored)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SingleColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
@@ -1059,130 +1059,138 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnCountGetFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnCountGetFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">FirstKeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">SkipFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SkipFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstRowCell)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">PageFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/PageFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">MultiRowRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstRowCell)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstRowCell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnCountGetFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnCountGetFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">RandomRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/RandomRowFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstRowCell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SkipFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SkipFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">PrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/PrefixFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstRowCell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">RandomRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/RandomRowFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstRowCell)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">CompareFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">MultiRowRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstRowCell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">RowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/RowFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstRowCell)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">InclusiveStopFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/InclusiveStopFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstRowCell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">WhileMatchFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/WhileMatchFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>abstract boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstRowCell)</code>
-<div class="block">Filters a row based on the row key.</div>
-</td>
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">CompareFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">WhileMatchFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/WhileMatchFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">InclusiveStopFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/InclusiveStopFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstRowCell)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">SingleColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">PrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/PrefixFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstRowCell)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">PageFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/PageFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">RowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/RowFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstRowCell)</code> </td>
+<td class="colFirst"><code>abstract boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> firstRowCell)</code>
+<div class="block">Filters a row based on the row key.</div>
+</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">FirstKeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SingleColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentCell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentCell)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">MultiRowRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentKV)</code> </td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+</tr>
<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FuzzyRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentCell)</code> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentCell)</code>
<div class="block">If the filter returns the match code SEEK_NEXT_USING_HINT, then it should also tell which is
the next key it must seek to.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentCell)</code>
<div class="block">Pick the next cell that the scanner should seek to.</div>
</td>
</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
-</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FuzzyRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> currentCell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
@@ -1190,7 +1198,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">WhileMatchFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/WhileMatchFilter.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> v)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
@@ -1198,14 +1206,6 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
<div class="block">Give the filter a chance to transform the passed KeyValue.</div>
</td>
</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">WhileMatchFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/WhileMatchFilter.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> v)</code> </td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
-</tr>
</tbody>
</table>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
@@ -1217,19 +1217,19 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">DependentColumnFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/DependentColumnFilter.html#filterRowCells-java.util.List-">filterRowCells</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hb [...]
+<td class="colLast"><span class="typeNameLabel">SingleColumnValueExcludeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueExcludeFilter.html#filterRowCells-java.util.List-">filterRowCells</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in or [...]
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">DependentColumnFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/DependentColumnFilter.html#filterRowCells-java.util.List-">filterRowCells</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hb [...]
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#filterRowCells-java.util.List-">filterRowCells</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>>  [...]
<div class="block">Filters that never filter by modifying the returned List of Cells can inherit this
implementation that does nothing.</div>
</td>
</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">SingleColumnValueExcludeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueExcludeFilter.html#filterRowCells-java.util.List-">filterRowCells</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in or [...]
-</tr>
<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterRowCells-java.util.List-">filterRowCells</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>> kvs)</code>
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/CellBuilder.html b/apidocs/org/apache/hadoop/hbase/class-use/CellBuilder.html
index 50a26727a6f..d9e2b5c25dc 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/CellBuilder.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/CellBuilder.html
@@ -197,18 +197,18 @@
<td class="colLast"><span class="typeNameLabel">Increment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Increment.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a> type)</code> </td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Put.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Put.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a> type)</code> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
<td class="colLast"><span class="typeNameLabel">Mutation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a> cellBuilderType)</code>
<div class="block">get a CellBuilder instance that already has relevant Type and Row set.</div>
</td>
</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Delete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Delete.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a> type)</code> </td>
-</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Put.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Put.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a> type)</code> </td>
+<td class="colLast"><span class="typeNameLabel">Delete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Delete.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a> type)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/CellBuilderType.html b/apidocs/org/apache/hadoop/hbase/class-use/CellBuilderType.html
index c983d69f430..cfa0cb6bb24 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/CellBuilderType.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/CellBuilderType.html
@@ -159,18 +159,18 @@ the order they are declared.</div>
<td class="colLast"><span class="typeNameLabel">Increment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Increment.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a> type)</code> </td>
</tr>
<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Put.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Put.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a> type)</code> </td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
<td class="colLast"><span class="typeNameLabel">Mutation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a> cellBuilderType)</code>
<div class="block">get a CellBuilder instance that already has relevant Type and Row set.</div>
</td>
</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Delete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Delete.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a> type)</code> </td>
-</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Put.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Put.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a> type)</code> </td>
+<td class="colLast"><span class="typeNameLabel">Delete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Delete.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a> type)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/CellScanner.html b/apidocs/org/apache/hadoop/hbase/class-use/CellScanner.html
index ef82beba380..bbc8198ba6b 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/CellScanner.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/CellScanner.html
@@ -176,11 +176,11 @@
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Mutation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html#cellScanner--">cellScanner</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">Result.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Result.html#cellScanner--">cellScanner</a></span>()</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Result.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Result.html#cellScanner--">cellScanner</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">Mutation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html#cellScanner--">cellScanner</a></span>()</code> </td>
</tr>
</tbody>
</table>
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/ClusterMetrics.html b/apidocs/org/apache/hadoop/hbase/class-use/ClusterMetrics.html
index 85dc87dfad1..711474cd5c1 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/ClusterMetrics.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/ClusterMetrics.html
@@ -125,18 +125,18 @@
</tr>
<tbody>
<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#getClusterMetrics--">getClusterMetrics</a></span>()</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
- </td>
-</tr>
-<tr class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a></code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#getClusterMetrics--">getClusterMetrics</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<div class="block">Returns a ClusterMetrics for this HBase cluster.</div>
</td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#getClusterMetrics--">getClusterMetrics</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a></code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#getInitialClusterMetrics--">getInitialClusterMetrics</a></span>()</code>
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/ServerName.html b/apidocs/org/apache/hadoop/hbase/class-use/ServerName.html
index f6761966b5e..4d37deb0708 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/ServerName.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/ServerName.html
@@ -147,13 +147,6 @@
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#getServerHoldingRegion-org.apache.hadoop.hbase.TableName-byte:A-">getServerHoldingRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tn,
- byte[] regionName)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
- </td>
-</tr>
-<tr class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#getServerHoldingRegion-org.apache.hadoop.hbase.TableName-byte:A-">getServerHoldingRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tn,
byte[] regionName)</code>
@@ -161,13 +154,20 @@
<div class="block">Get the ServerName of region server serving the specified region</div>
</td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#getServerHoldingRegion-org.apache.hadoop.hbase.TableName-byte:A-">getServerHoldingRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tn,
+ byte[] regionName)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">HRegionLocation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html#getServerName--">getServerName</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">ServerMetrics.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetrics.html#getServerName--">getServerName</a></span>()</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ServerMetrics.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetrics.html#getServerName--">getServerName</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">HRegionLocation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html#getServerName--">getServerName</a></span>()</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
@@ -311,12 +311,6 @@
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#isKilledRS-org.apache.hadoop.hbase.ServerName-">isKilledRS</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
- </td>
-</tr>
-<tr class="altColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#isKilledRS-org.apache.hadoop.hbase.ServerName-">isKilledRS</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
@@ -324,6 +318,12 @@
it possible to do fault tolerance testing for dead servers in a deterministic way.</div>
</td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#isKilledRS-org.apache.hadoop.hbase.ServerName-">isKilledRS</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
+</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><span class="typeNameLabel">ServerName.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerName.html#isSameAddress-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">isSameAddress</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> left,
@@ -332,12 +332,6 @@
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killDataNode-org.apache.hadoop.hbase.ServerName-">killDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
- </td>
-</tr>
-<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#killDataNode-org.apache.hadoop.hbase.ServerName-">killDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
@@ -345,13 +339,13 @@
exit doing basic clean up only.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killMaster-org.apache.hadoop.hbase.ServerName-">killMaster</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killDataNode-org.apache.hadoop.hbase.ServerName-">killDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#killMaster-org.apache.hadoop.hbase.ServerName-">killMaster</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
@@ -359,13 +353,13 @@
exit doing basic clean up only.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killNameNode-org.apache.hadoop.hbase.ServerName-">killNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killMaster-org.apache.hadoop.hbase.ServerName-">killMaster</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#killNameNode-org.apache.hadoop.hbase.ServerName-">killNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
@@ -373,13 +367,13 @@
exit doing basic clean up only.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killRegionServer-org.apache.hadoop.hbase.ServerName-">killRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killNameNode-org.apache.hadoop.hbase.ServerName-">killNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#killRegionServer-org.apache.hadoop.hbase.ServerName-">killRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
@@ -387,13 +381,13 @@
region server to exit doing basic clean up only.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killZkNode-org.apache.hadoop.hbase.ServerName-">killZkNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killRegionServer-org.apache.hadoop.hbase.ServerName-">killRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#killZkNode-org.apache.hadoop.hbase.ServerName-">killZkNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
@@ -401,6 +395,12 @@
master to exit doing basic clean up only.</div>
</td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killZkNode-org.apache.hadoop.hbase.ServerName-">killZkNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseTestingUtility.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#moveRegionAndWait-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-">moveRegionAndWait</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a> destRegion,
@@ -410,25 +410,19 @@
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#resumeRegionServer-org.apache.hadoop.hbase.ServerName-">resumeRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
- </td>
-</tr>
-<tr class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#resumeRegionServer-org.apache.hadoop.hbase.ServerName-">resumeRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<div class="block">Resume the region server</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#startDataNode-org.apache.hadoop.hbase.ServerName-">startDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#resumeRegionServer-org.apache.hadoop.hbase.ServerName-">resumeRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#startDataNode-org.apache.hadoop.hbase.ServerName-">startDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
@@ -436,13 +430,13 @@
warning message.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#startNameNode-org.apache.hadoop.hbase.ServerName-">startNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#startDataNode-org.apache.hadoop.hbase.ServerName-">startDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#startNameNode-org.apache.hadoop.hbase.ServerName-">startNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
@@ -450,65 +444,65 @@
warning message.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopDataNode-org.apache.hadoop.hbase.ServerName-">stopDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#startNameNode-org.apache.hadoop.hbase.ServerName-">startNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#stopDataNode-org.apache.hadoop.hbase.ServerName-">stopDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<div class="block">Stops the datanode if this is a distributed cluster, otherwise silently logs warning message.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopMaster-org.apache.hadoop.hbase.ServerName-">stopMaster</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopDataNode-org.apache.hadoop.hbase.ServerName-">stopDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#stopMaster-org.apache.hadoop.hbase.ServerName-">stopMaster</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<div class="block">Stops the given master, by attempting a gradual stop.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopNameNode-org.apache.hadoop.hbase.ServerName-">stopNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopMaster-org.apache.hadoop.hbase.ServerName-">stopMaster</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#stopNameNode-org.apache.hadoop.hbase.ServerName-">stopNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<div class="block">Stops the namenode if this is a distributed cluster, otherwise silently logs warning message.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopRegionServer-org.apache.hadoop.hbase.ServerName-">stopRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopNameNode-org.apache.hadoop.hbase.ServerName-">stopNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#stopRegionServer-org.apache.hadoop.hbase.ServerName-">stopRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<div class="block">Stops the given region server, by attempting a gradual stop.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopZkNode-org.apache.hadoop.hbase.ServerName-">stopZkNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopRegionServer-org.apache.hadoop.hbase.ServerName-">stopRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#stopZkNode-org.apache.hadoop.hbase.ServerName-">stopZkNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
@@ -516,27 +510,26 @@
message.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#suspendRegionServer-org.apache.hadoop.hbase.ServerName-">suspendRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopZkNode-org.apache.hadoop.hbase.ServerName-">stopZkNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#suspendRegionServer-org.apache.hadoop.hbase.ServerName-">suspendRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<div class="block">Suspend the region server</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForDataNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForDataNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
- long timeout)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#suspendRegionServer-org.apache.hadoop.hbase.ServerName-">suspendRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#waitForDataNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForDataNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
long timeout)</code>
@@ -544,14 +537,14 @@
<div class="block">Wait for the specified datanode to join the cluster</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForDataNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForDataNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
- long timeout)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForDataNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForDataNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
+ long timeout)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#waitForDataNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForDataNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
long timeout)</code>
@@ -559,14 +552,14 @@
<div class="block">Wait for the specified datanode to stop the thread / process.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForMasterToStop-org.apache.hadoop.hbase.ServerName-long-">waitForMasterToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
- long timeout)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForDataNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForDataNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
+ long timeout)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#waitForMasterToStop-org.apache.hadoop.hbase.ServerName-long-">waitForMasterToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
long timeout)</code>
@@ -574,14 +567,14 @@
<div class="block">Wait for the specified master to stop the thread / process.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForNameNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForNameNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
- long timeout)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForMasterToStop-org.apache.hadoop.hbase.ServerName-long-">waitForMasterToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
+ long timeout)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#waitForNameNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForNameNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
long timeout)</code>
@@ -589,14 +582,14 @@
<div class="block">Wait for the specified namenode to join the cluster</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForNameNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForNameNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
- long timeout)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForNameNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForNameNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
+ long timeout)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#waitForNameNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForNameNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
long timeout)</code>
@@ -604,14 +597,14 @@
<div class="block">Wait for the specified namenode to stop</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForRegionServerToStop-org.apache.hadoop.hbase.ServerName-long-">waitForRegionServerToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
- long timeout)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForNameNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForNameNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
+ long timeout)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#waitForRegionServerToStop-org.apache.hadoop.hbase.ServerName-long-">waitForRegionServerToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
long timeout)</code>
@@ -619,14 +612,14 @@
<div class="block">Wait for the specified region server to stop the thread / process.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForZkNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForZkNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
- long timeout)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForRegionServerToStop-org.apache.hadoop.hbase.ServerName-long-">waitForRegionServerToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
+ long timeout)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#waitForZkNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForZkNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
long timeout)</code>
@@ -634,14 +627,14 @@
<div class="block">Wait for the specified zookeeper node to join the cluster</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForZkNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForZkNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
- long timeout)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForZkNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForZkNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
+ long timeout)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#waitForZkNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForZkNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
long timeout)</code>
@@ -649,6 +642,13 @@
<div class="block">Wait for the specified zookeeper node to stop the thread / process.</div>
</td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForZkNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForZkNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> serverName,
+ long timeout)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
+</tr>
</tbody>
</table>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/TableName.html b/apidocs/org/apache/hadoop/hbase/class-use/TableName.html
index e67167823c6..237a97cd9ee 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/TableName.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/TableName.html
@@ -253,18 +253,18 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#compact-org.apache.hadoop.hbase.TableName-boolean-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tableName,
+<td class="colLast"><span class="typeNameLabel">HBaseTestingUtility.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#compact-org.apache.hadoop.hbase.TableName-boolean-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tableName,
boolean major)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
-<div class="block">Call flushCache on all regions of the specified table.</div>
+<div class="block">Compact all of a table's reagion in the mini hbase cluster</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">HBaseTestingUtility.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#compact-org.apache.hadoop.hbase.TableName-boolean-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tableName,
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#compact-org.apache.hadoop.hbase.TableName-boolean-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tableName,
boolean major)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
-<div class="block">Compact all of a table's reagion in the mini hbase cluster</div>
+<div class="block">Call flushCache on all regions of the specified table.</div>
</td>
</tr>
<tr class="altColor">
@@ -684,13 +684,6 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#getServerHoldingRegion-org.apache.hadoop.hbase.TableName-byte:A-">getServerHoldingRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tn,
- byte[] regionName)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
- </td>
-</tr>
-<tr class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
<td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#getServerHoldingRegion-org.apache.hadoop.hbase.TableName-byte:A-">getServerHoldingRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tn,
byte[] regionName)</code>
@@ -698,6 +691,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
<div class="block">Get the ServerName of region server serving the specified region</div>
</td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#getServerHoldingRegion-org.apache.hadoop.hbase.TableName-byte:A-">getServerHoldingRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tn,
+ byte[] regionName)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code>org.apache.hadoop.hbase.regionserver.HRegion</code></td>
<td class="colLast"><span class="typeNameLabel">HBaseTestingUtility.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#getSplittableRegion-org.apache.hadoop.hbase.TableName-int-">getSplittableRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tableName,
@@ -849,38 +849,38 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Table.html#getName--">getName</a></span>()</code>
-<div class="block">Gets the fully qualified table name instance of this table.</div>
+<td class="colLast"><span class="typeNameLabel">BufferedMutator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/BufferedMutator.html#getName--">getName</a></span>()</code>
+<div class="block">Gets the fully qualified table name instance of the table that this BufferedMutator writes to.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTableRegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableRegionLocator.html#getName--">getName</a></span>()</code>
-<div class="block">Gets the fully qualified table name instance of the table whose region we want to locate.</div>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getName--">getName</a></span>()</code>
+<div class="block">Gets the fully qualified table name instance of this table.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">BufferedMutator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/BufferedMutator.html#getName--">getName</a></span>()</code>
-<div class="block">Gets the fully qualified table name instance of the table that this BufferedMutator writes to.</div>
+<td class="colLast"><span class="typeNameLabel">AsyncBufferedMutator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncBufferedMutator.html#getName--">getName</a></span>()</code>
+<div class="block">Gets the fully qualified table name instance of the table that this
+ <code>AsyncBufferedMutator</code> writes to.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html#getName--">getName</a></span>()</code>
-<div class="block">Gets the fully qualified table name instance of this table.</div>
+<td class="colLast"><span class="typeNameLabel">AsyncTableRegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableRegionLocator.html#getName--">getName</a></span>()</code>
+<div class="block">Gets the fully qualified table name instance of the table whose region we want to locate.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncBufferedMutator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncBufferedMutator.html#getName--">getName</a></span>()</code>
-<div class="block">Gets the fully qualified table name instance of the table that this
- <code>AsyncBufferedMutator</code> writes to.</div>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Table.html#getName--">getName</a></span>()</code>
+<div class="block">Gets the fully qualified table name instance of this table.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getName--">getName</a></span>()</code>
+<td class="colLast"><span class="typeNameLabel">RegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html#getName--">getName</a></span>()</code>
<div class="block">Gets the fully qualified table name instance of this table.</div>
</td>
</tr>
@@ -898,7 +898,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">BufferedMutatorParams.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/BufferedMutatorParams.html#getTableName--">getTableName</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">SnapshotDescription.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html#getTableName--">getTableName</a></span>()</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
@@ -908,7 +908,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SnapshotDescription.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html#getTableName--">getTableName</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">BufferedMutatorParams.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/BufferedMutatorParams.html#getTableName--">getTableName</a></span>()</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]</code></td>
diff --git a/apidocs/org/apache/hadoop/hbase/client/CompactType.html b/apidocs/org/apache/hadoop/hbase/client/CompactType.html
index 299b8e58542..bb3bad4856a 100644
--- a/apidocs/org/apache/hadoop/hbase/client/CompactType.html
+++ b/apidocs/org/apache/hadoop/hbase/client/CompactType.html
@@ -235,7 +235,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CompactType.html#line.24">values</a>()</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CompactType.html#line.32">values</a>()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
@@ -255,7 +255,7 @@ for (CompactType c : CompactType.values())
<ul class="blockListLast">
<li class="blockList">
<h4>valueOf</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CompactType.html#line.24">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CompactType.html#line.32">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
diff --git a/apidocs/org/apache/hadoop/hbase/client/CompactionState.html b/apidocs/org/apache/hadoop/hbase/client/CompactionState.html
index 31ed9364fdb..bf76b4767fc 100644
--- a/apidocs/org/apache/hadoop/hbase/client/CompactionState.html
+++ b/apidocs/org/apache/hadoop/hbase/client/CompactionState.html
@@ -258,7 +258,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CompactionState.html#line.26">values</a>()</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CompactionState.html#line.31">values</a>()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
@@ -278,7 +278,7 @@ for (CompactionState c : CompactionState.values())
<ul class="blockListLast">
<li class="blockList">
<h4>valueOf</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CompactionState.html#line.26">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CompactionState.html#line.31">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
diff --git a/apidocs/org/apache/hadoop/hbase/client/Consistency.html b/apidocs/org/apache/hadoop/hbase/client/Consistency.html
index c8334b2a7bf..ab4496b44b8 100644
--- a/apidocs/org/apache/hadoop/hbase/client/Consistency.html
+++ b/apidocs/org/apache/hadoop/hbase/client/Consistency.html
@@ -247,7 +247,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Consistency.html#line.43">values</a>()</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Consistency.html#line.35">values</a>()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
@@ -267,7 +267,7 @@ for (Consistency c : Consistency.values())
<ul class="blockListLast">
<li class="blockList">
<h4>valueOf</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Consistency.html#line.43">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Consistency.html#line.35">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
diff --git a/apidocs/org/apache/hadoop/hbase/client/Durability.html b/apidocs/org/apache/hadoop/hbase/client/Durability.html
index 2c8d369e958..5e246663189 100644
--- a/apidocs/org/apache/hadoop/hbase/client/Durability.html
+++ b/apidocs/org/apache/hadoop/hbase/client/Durability.html
@@ -292,7 +292,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Durability.html#line.55">values</a>()</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Durability.html#line.23">values</a>()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
@@ -312,7 +312,7 @@ for (Durability c : Durability.values())
<ul class="blockListLast">
<li class="blockList">
<h4>valueOf</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Durability.html#line.55">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Durability.html#line.23">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
diff --git a/apidocs/org/apache/hadoop/hbase/client/IsolationLevel.html b/apidocs/org/apache/hadoop/hbase/client/IsolationLevel.html
index 40a856983f0..19a2505cb3b 100644
--- a/apidocs/org/apache/hadoop/hbase/client/IsolationLevel.html
+++ b/apidocs/org/apache/hadoop/hbase/client/IsolationLevel.html
@@ -254,7 +254,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/IsolationLevel.html#line.50">values</a>()</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/IsolationLevel.html#line.36">values</a>()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
@@ -274,7 +274,7 @@ for (IsolationLevel c : IsolationLevel.values())
<ul class="blockList">
<li class="blockList">
<h4>valueOf</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/IsolationLevel.html#line.50">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/IsolationLevel.html#line.36">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
diff --git a/apidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html b/apidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html
index eb49eda6933..a20b76b7bab 100644
--- a/apidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html
+++ b/apidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html
@@ -249,7 +249,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.29">values</a>()</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.34">values</a>()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
@@ -269,7 +269,7 @@ for (Scan.ReadType c : Scan.ReadType.values())
<ul class="blockListLast">
<li class="blockList">
<h4>valueOf</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.29">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.34">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
diff --git a/apidocs/org/apache/hadoop/hbase/client/SnapshotType.html b/apidocs/org/apache/hadoop/hbase/client/SnapshotType.html
index 8cb48b21b0e..25b8d52c323 100644
--- a/apidocs/org/apache/hadoop/hbase/client/SnapshotType.html
+++ b/apidocs/org/apache/hadoop/hbase/client/SnapshotType.html
@@ -246,7 +246,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client">SnapshotType</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotType.html#line.27">values</a>()</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client">SnapshotType</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotType.html#line.30">values</a>()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
@@ -266,7 +266,7 @@ for (SnapshotType c : SnapshotType.values())
<ul class="blockListLast">
<li class="blockList">
<h4>valueOf</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client">SnapshotType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotType.html#line.27">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client">SnapshotType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotType.html#line.30">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Append.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Append.html
index bbf70400f75..1f729ef4ebf 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Append.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Append.html
@@ -183,14 +183,14 @@
</tr>
<tbody>
<tr class="altColor">
-<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#append-org.apache.hadoop.hbase.client.Append-">append</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a> append)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#append-org.apache.hadoop.hbase.client.Append-">append</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a> append)</code>
<div class="block">Appends values to one or more columns within a single row.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#append-org.apache.hadoop.hbase.client.Append-">append</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a> append)</code>
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#append-org.apache.hadoop.hbase.client.Append-">append</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a> append)</code>
<div class="block">Appends values to one or more columns within a single row.</div>
</td>
</tr>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/CheckAndMutate.html b/apidocs/org/apache/hadoop/hbase/client/class-use/CheckAndMutate.html
index 8a3d307527c..dd718b8d6dc 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/CheckAndMutate.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/CheckAndMutate.html
@@ -144,14 +144,14 @@
</tr>
<tbody>
<tr class="altColor">
-<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutateResult</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#checkAndMutate-org.apache.hadoop.hbase.client.CheckAndMutate-">checkAndMutate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutate</a> checkAndMutate)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutateResult</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-org.apache.hadoop.hbase.client.CheckAndMutate-">checkAndMutate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutate</a> checkAndMutate)</code>
<div class="block">checkAndMutate that atomically checks if a row matches the specified condition.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutateResult</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-org.apache.hadoop.hbase.client.CheckAndMutate-">checkAndMutate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutate</a> checkAndMutate)</code>
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutateResult</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#checkAndMutate-org.apache.hadoop.hbase.client.CheckAndMutate-">checkAndMutate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutate</a> checkAndMutate)</code>
<div class="block">checkAndMutate that atomically checks if a row matches the specified condition.</div>
</td>
</tr>
@@ -165,14 +165,14 @@
</tr>
<tbody>
<tr class="altColor">
-<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutateResult</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#checkAndMutate-java.util.List-">checkAndMutate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">C [...]
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">Ch [...]
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-java.util.List-">checkAndMutate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase [...]
<div class="block">Batch version of checkAndMutate.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">Ch [...]
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-java.util.List-">checkAndMutate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase [...]
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutateResult</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#checkAndMutate-java.util.List-">checkAndMutate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">C [...]
<div class="block">Batch version of checkAndMutate.</div>
</td>
</tr>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/CheckAndMutateResult.html b/apidocs/org/apache/hadoop/hbase/client/class-use/CheckAndMutateResult.html
index e33e8ae3478..a746f96c021 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/CheckAndMutateResult.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/CheckAndMutateResult.html
@@ -126,14 +126,14 @@
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutateResult</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#checkAndMutate-java.util.List-">checkAndMutate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">C [...]
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">Ch [...]
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-java.util.List-">checkAndMutate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase [...]
<div class="block">Batch version of checkAndMutate.</div>
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">Ch [...]
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-java.util.List-">checkAndMutate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase [...]
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutateResult</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#checkAndMutate-java.util.List-">checkAndMutate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">C [...]
<div class="block">Batch version of checkAndMutate.</div>
</td>
</tr>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Consistency.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Consistency.html
index f01fdc3702c..58037005f7f 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Consistency.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Consistency.html
@@ -146,13 +146,13 @@ the order they are declared.</div>
</tr>
<tbody>
<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#setConsistency-org.apache.hadoop.hbase.client.Consistency-">setConsistency</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a> consistency)</code> </td>
-</tr>
-<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a></code></td>
<td class="colLast"><span class="typeNameLabel">Get.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Get.html#setConsistency-org.apache.hadoop.hbase.client.Consistency-">setConsistency</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a> consistency)</code> </td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#setConsistency-org.apache.hadoop.hbase.client.Consistency-">setConsistency</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a> consistency)</code> </td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Query.html" title="class in org.apache.hadoop.hbase.client">Query</a></code></td>
<td class="colLast"><span class="typeNameLabel">Query.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Query.html#setConsistency-org.apache.hadoop.hbase.client.Consistency-">setConsistency</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a> consistency)</code>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Delete.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Delete.html
index abbc3230990..d2cc303bdf3 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Delete.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Delete.html
@@ -220,14 +220,14 @@
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>default void</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#delete-org.apache.hadoop.hbase.client.Delete-">delete</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a> delete)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#delete-org.apache.hadoop.hbase.client.Delete-">delete</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a> delete)</code>
<div class="block">Deletes the specified cells/row.</div>
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#delete-org.apache.hadoop.hbase.client.Delete-">delete</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a> delete)</code>
+<td class="colFirst"><code>default void</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#delete-org.apache.hadoop.hbase.client.Delete-">delete</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a> delete)</code>
<div class="block">Deletes the specified cells/row.</div>
</td>
</tr>
@@ -241,17 +241,17 @@
</tr>
<tbody>
<tr class="altColor">
-<td class="colFirst"><code>default void</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#delete-java.util.List-">delete</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>> delet [...]
-<div class="block">Batch Deletes the specified cells/rows from the table.</div>
-</td>
-</tr>
-<tr class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</ [...]
<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#delete-java.util.List-">delete</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>>& [...]
<div class="block">Deletes the specified cells/rows in bulk.</div>
</td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default void</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#delete-java.util.List-">delete</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>> delet [...]
+<div class="block">Batch Deletes the specified cells/rows from the table.</div>
+</td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>></code></td>
<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#deleteAll-java.util.List-">deleteAll</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a [...]
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Durability.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Durability.html
index b02f89e5743..6c651a839b8 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Durability.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Durability.html
@@ -194,14 +194,14 @@
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getDurability--">getDurability</a></span>()</code>
-<div class="block">Returns the durability setting for the table.</div>
+<td class="colLast"><span class="typeNameLabel">Mutation.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html#getDurability--">getDurability</a></span>()</code>
+<div class="block">Get the current durability</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Mutation.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html#getDurability--">getDurability</a></span>()</code>
-<div class="block">Get the current durability</div>
+<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getDurability--">getDurability</a></span>()</code>
+<div class="block">Returns the durability setting for the table.</div>
</td>
</tr>
<tr class="altColor">
@@ -227,8 +227,8 @@ the order they are declared.</div>
</tr>
<tbody>
<tr class="altColor">
-<td class="colFirst"><code>default long</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#incrementColumnValue-byte:A-byte:A-byte:A-long-org.apache.hadoop.hbase.client.Durability-">incrementColumnValue</a></span>(byte[] row,
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#incrementColumnValue-byte:A-byte:A-byte:A-long-org.apache.hadoop.hbase.client.Durability-">incrementColumnValue</a></span>(byte[] row,
byte[] family,
byte[] qualifier,
long amount,
@@ -237,8 +237,8 @@ the order they are declared.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#incrementColumnValue-byte:A-byte:A-byte:A-long-org.apache.hadoop.hbase.client.Durability-">incrementColumnValue</a></span>(byte[] row,
+<td class="colFirst"><code>default long</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#incrementColumnValue-byte:A-byte:A-byte:A-long-org.apache.hadoop.hbase.client.Durability-">incrementColumnValue</a></span>(byte[] row,
byte[] family,
byte[] qualifier,
long amount,
@@ -255,6 +255,14 @@ the order they are declared.</div>
<td class="colLast"><span class="typeNameLabel">Increment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html#setDurability-org.apache.hadoop.hbase.client.Durability-">setDurability</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a> d)</code> </td>
</tr>
<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TableDescriptorBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html#setDurability-org.apache.hadoop.hbase.client.Durability-">setDurability</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a> durability)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Put.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Put.html#setDurability-org.apache.hadoop.hbase.client.Durability-">setDurability</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a> d)</code> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a></code></td>
<td class="colLast"><span class="typeNameLabel">Mutation.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html#setDurability-org.apache.hadoop.hbase.client.Durability-">setDurability</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a> d)</code>
<div class="block">Set the durability for this mutation</div>
@@ -264,14 +272,6 @@ the order they are declared.</div>
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a></code></td>
<td class="colLast"><span class="typeNameLabel">Delete.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html#setDurability-org.apache.hadoop.hbase.client.Durability-">setDurability</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a> d)</code> </td>
</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TableDescriptorBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html#setDurability-org.apache.hadoop.hbase.client.Durability-">setDurability</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a> durability)</code> </td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Put.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Put.html#setDurability-org.apache.hadoop.hbase.client.Durability-">setDurability</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a> d)</code> </td>
-</tr>
</tbody>
</table>
</li>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Get.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Get.html
index 35ac0c5155f..1c41d2a3d09 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Get.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Get.html
@@ -252,26 +252,26 @@
</tr>
<tbody>
<tr class="altColor">
-<td class="colFirst"><code>default boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#exists-org.apache.hadoop.hbase.client.Get-">exists</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a> get)</code>
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#exists-org.apache.hadoop.hbase.client.Get-">exists</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a> get)</code>
<div class="block">Test for the existence of columns in the table, as specified by the Get.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#exists-org.apache.hadoop.hbase.client.Get-">exists</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a> get)</code>
+<td class="colFirst"><code>default boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#exists-org.apache.hadoop.hbase.client.Get-">exists</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a> get)</code>
<div class="block">Test for the existence of columns in the table, as specified by the Get.</div>
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#get-org.apache.hadoop.hbase.client.Get-">get</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a> get)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#get-org.apache.hadoop.hbase.client.Get-">get</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a> get)</code>
<div class="block">Extracts certain cells from a given row.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#get-org.apache.hadoop.hbase.client.Get-">get</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a> get)</code>
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#get-org.apache.hadoop.hbase.client.Get-">get</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a> get)</code>
<div class="block">Extracts certain cells from a given row.</div>
</td>
</tr>
@@ -285,14 +285,14 @@
</tr>
<tbody>
<tr class="altColor">
-<td class="colFirst"><code>default boolean[]</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#exists-java.util.List-">exists</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>> gets)</code>
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.l [...]
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#exists-java.util.List-">exists</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>> g [...]
<div class="block">Test for the existence of columns in the table, as specified by the Gets.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.l [...]
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#exists-java.util.List-">exists</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>> g [...]
+<td class="colFirst"><code>default boolean[]</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#exists-java.util.List-">exists</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>> gets)</code>
<div class="block">Test for the existence of columns in the table, as specified by the Gets.</div>
</td>
</tr>
@@ -303,17 +303,17 @@
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[]</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#get-java.util.List-">get</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>> gets)</code>
-<div class="block">Extracts specified cells from the given rows, as a batch.</div>
-</td>
-</tr>
-<tr class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>>&g [...]
<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#get-java.util.List-">get</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>> gets)</code>
<div class="block">Extracts certain cells from the given rows, in batch.</div>
</td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#get-java.util.List-">get</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>> gets)</code>
+<div class="block">Extracts specified cells from the given rows, as a batch.</div>
+</td>
+</tr>
<tr class="rowColor">
<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</ [...]
<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getAll-java.util.List-">getAll</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>> g [...]
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Increment.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Increment.html
index b4c439b99dd..4a7b22df463 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Increment.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Increment.html
@@ -188,14 +188,14 @@
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#increment-org.apache.hadoop.hbase.client.Increment-">increment</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a> increment)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#increment-org.apache.hadoop.hbase.client.Increment-">increment</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a> increment)</code>
<div class="block">Increments one or more columns within a single row.</div>
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#increment-org.apache.hadoop.hbase.client.Increment-">increment</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a> increment)</code>
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#increment-org.apache.hadoop.hbase.client.Increment-">increment</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a> increment)</code>
<div class="block">Increments one or more columns within a single row.</div>
</td>
</tr>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/IsolationLevel.html b/apidocs/org/apache/hadoop/hbase/client/class-use/IsolationLevel.html
index 883ea43b33f..96519d69e83 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/IsolationLevel.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/IsolationLevel.html
@@ -141,13 +141,13 @@ the order they are declared.</div>
</tr>
<tbody>
<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#setIsolationLevel-org.apache.hadoop.hbase.client.IsolationLevel-">setIsolationLevel</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a> level)</code> </td>
-</tr>
-<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a></code></td>
<td class="colLast"><span class="typeNameLabel">Get.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Get.html#setIsolationLevel-org.apache.hadoop.hbase.client.IsolationLevel-">setIsolationLevel</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a> level)</code> </td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#setIsolationLevel-org.apache.hadoop.hbase.client.IsolationLevel-">setIsolationLevel</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a> level)</code> </td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Query.html" title="class in org.apache.hadoop.hbase.client">Query</a></code></td>
<td class="colLast"><span class="typeNameLabel">Query.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Query.html#setIsolationLevel-org.apache.hadoop.hbase.client.IsolationLevel-">setIsolationLevel</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a> level)</code>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Mutation.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Mutation.html
index a6c01b29b46..7ee7c453f82 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Mutation.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Mutation.html
@@ -296,15 +296,15 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
<td class="colLast"><span class="typeNameLabel">MutationSerialization.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/MutationSerialization.html#getDeserializer-java.lang.Class-">getDeserializer</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in [...]
</tr>
<tr class="rowColor">
+<td class="colFirst"><code>org.apache.hadoop.mapreduce.RecordWriter<<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">MultiTableOutputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/MultiTableOutputFormat.html#getRecordWriter-org.apache.hadoop.mapreduce.TaskAttemptContext-">getRecordWriter</a></span>(org.apache.hadoop.mapreduce.TaskAttemptContext context)</code> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><code>org.apache.hadoop.mapreduce.RecordWriter<<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html" title="type parameter in TableOutputFormat">KEY</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>></code></td>
<td class="colLast"><span class="typeNameLabel">TableOutputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html#getRecordWriter-org.apache.hadoop.mapreduce.TaskAttemptContext-">getRecordWriter</a></span>(org.apache.hadoop.mapreduce.TaskAttemptContext context)</code>
<div class="block">Creates a new record writer.</div>
</td>
</tr>
-<tr class="altColor">
-<td class="colFirst"><code>org.apache.hadoop.mapreduce.RecordWriter<<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">MultiTableOutputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/MultiTableOutputFormat.html#getRecordWriter-org.apache.hadoop.mapreduce.TaskAttemptContext-">getRecordWriter</a></span>(org.apache.hadoop.mapreduce.TaskAttemptContext context)</code> </td>
-</tr>
<tr class="rowColor">
<td class="colFirst"><code>org.apache.hadoop.io.serializer.Serializer<<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>></code></td>
<td class="colLast"><span class="typeNameLabel">MutationSerialization.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/MutationSerialization.html#getSerializer-java.lang.Class-">getSerializer</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org [...]
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Put.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Put.html
index 4229ba17bfe..9031b1cdbee 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Put.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Put.html
@@ -210,17 +210,17 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>default void</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#put-org.apache.hadoop.hbase.client.Put-">put</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a> put)</code>
-<div class="block">Puts some data in the table.</div>
-</td>
-</tr>
-<tr class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>></code></td>
<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#put-org.apache.hadoop.hbase.client.Put-">put</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a> put)</code>
<div class="block">Puts some data to the table.</div>
</td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default void</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#put-org.apache.hadoop.hbase.client.Put-">put</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a> put)</code>
+<div class="block">Puts some data in the table.</div>
+</td>
+</tr>
</tbody>
</table>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
@@ -231,17 +231,17 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tr>
<tbody>
<tr class="altColor">
-<td class="colFirst"><code>default void</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#put-java.util.List-">put</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>> puts)</code>
-<div class="block">Batch puts the specified data into the table.</div>
-</td>
-</tr>
-<tr class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</ [...]
<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#put-java.util.List-">put</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>> puts)</code>
<div class="block">Puts some data in the table, in batch.</div>
</td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default void</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#put-java.util.List-">put</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>> puts)</code>
+<div class="block">Batch puts the specified data into the table.</div>
+</td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>></code></td>
<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#putAll-java.util.List-">putAll</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>> p [...]
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Result.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Result.html
index 5d23e6ac98f..1b60a2e5e51 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Result.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Result.html
@@ -422,13 +422,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>org.apache.hadoop.mapred.RecordReader<<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">MultiTableSnapshotInputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/MultiTableSnapshotInputFormat.html#getRecordReader-org.apache.hadoop.mapred.InputSplit-org.apache.hadoop.mapred.JobConf-org.apache.hadoop.mapred.Reporter-">getRecordReader</a></span>(org.apache.hadoop.mapred.InputSplit split,
+<td class="colLast"><span class="typeNameLabel">TableSnapshotInputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/TableSnapshotInputFormat.html#getRecordReader-org.apache.hadoop.mapred.InputSplit-org.apache.hadoop.mapred.JobConf-org.apache.hadoop.mapred.Reporter-">getRecordReader</a></span>(org.apache.hadoop.mapred.InputSplit split,
org.apache.hadoop.mapred.JobConf job,
org.apache.hadoop.mapred.Reporter reporter)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>org.apache.hadoop.mapred.RecordReader<<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">TableSnapshotInputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/TableSnapshotInputFormat.html#getRecordReader-org.apache.hadoop.mapred.InputSplit-org.apache.hadoop.mapred.JobConf-org.apache.hadoop.mapred.Reporter-">getRecordReader</a></span>(org.apache.hadoop.mapred.InputSplit split,
+<td class="colLast"><span class="typeNameLabel">MultiTableSnapshotInputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/MultiTableSnapshotInputFormat.html#getRecordReader-org.apache.hadoop.mapred.InputSplit-org.apache.hadoop.mapred.JobConf-org.apache.hadoop.mapred.Reporter-">getRecordReader</a></span>(org.apache.hadoop.mapred.InputSplit split,
org.apache.hadoop.mapred.JobConf job,
org.apache.hadoop.mapred.Reporter reporter)</code> </td>
</tr>
@@ -457,20 +457,20 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">IdentityTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/IdentityTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
+<td class="colLast"><span class="typeNameLabel">GroupingTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/GroupingTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a> value,
org.apache.hadoop.mapred.OutputCollector<<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>> output,
org.apache.hadoop.mapred.Reporter reporter)</code>
-<div class="block">Pass the key, value to reduce</div>
+<div class="block">Extract the grouping columns from value to construct a new key.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">GroupingTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/GroupingTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
+<td class="colLast"><span class="typeNameLabel">IdentityTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/IdentityTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a> value,
org.apache.hadoop.mapred.OutputCollector<<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>> output,
org.apache.hadoop.mapred.Reporter reporter)</code>
-<div class="block">Extract the grouping columns from value to construct a new key.</div>
+<div class="block">Pass the key, value to reduce</div>
</td>
</tr>
<tr class="rowColor">
@@ -494,20 +494,20 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">IdentityTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/IdentityTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
+<td class="colLast"><span class="typeNameLabel">GroupingTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/GroupingTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a> value,
org.apache.hadoop.mapred.OutputCollector<<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>> output,
org.apache.hadoop.mapred.Reporter reporter)</code>
-<div class="block">Pass the key, value to reduce</div>
+<div class="block">Extract the grouping columns from value to construct a new key.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">GroupingTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/GroupingTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
+<td class="colLast"><span class="typeNameLabel">IdentityTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/IdentityTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a> value,
org.apache.hadoop.mapred.OutputCollector<<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>> output,
org.apache.hadoop.mapred.Reporter reporter)</code>
-<div class="block">Extract the grouping columns from value to construct a new key.</div>
+<div class="block">Pass the key, value to reduce</div>
</td>
</tr>
</tbody>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/ResultScanner.html b/apidocs/org/apache/hadoop/hbase/client/class-use/ResultScanner.html
index b6d9cbd9657..3650d410d05 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/ResultScanner.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/ResultScanner.html
@@ -106,39 +106,39 @@
<tbody>
<tr class="altColor">
<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#getScanner-byte:A-">getScanner</a></span>(byte[] family)</code>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getScanner-byte:A-">getScanner</a></span>(byte[] family)</code>
<div class="block">Gets a scanner on the current table for the given family.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getScanner-byte:A-">getScanner</a></span>(byte[] family)</code>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#getScanner-byte:A-">getScanner</a></span>(byte[] family)</code>
<div class="block">Gets a scanner on the current table for the given family.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#getScanner-byte:A-byte:A-">getScanner</a></span>(byte[] family,
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getScanner-byte:A-byte:A-">getScanner</a></span>(byte[] family,
byte[] qualifier)</code>
<div class="block">Gets a scanner on the current table for the given family and qualifier.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getScanner-byte:A-byte:A-">getScanner</a></span>(byte[] family,
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#getScanner-byte:A-byte:A-">getScanner</a></span>(byte[] family,
byte[] qualifier)</code>
<div class="block">Gets a scanner on the current table for the given family and qualifier.</div>
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#getScanner-org.apache.hadoop.hbase.client.Scan-">getScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan)</code>
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getScanner-org.apache.hadoop.hbase.client.Scan-">getScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan)</code>
<div class="block">Returns a scanner on the current table as specified by the <a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client"><code>Scan</code></a> object.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getScanner-org.apache.hadoop.hbase.client.Scan-">getScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan)</code>
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#getScanner-org.apache.hadoop.hbase.client.Scan-">getScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan)</code>
<div class="block">Returns a scanner on the current table as specified by the <a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client"><code>Scan</code></a> object.</div>
</td>
</tr>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/RowMutations.html b/apidocs/org/apache/hadoop/hbase/client/class-use/RowMutations.html
index 3cdf0774d93..edce2821288 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/RowMutations.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/RowMutations.html
@@ -138,14 +138,14 @@
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#mutateRow-org.apache.hadoop.hbase.client.RowMutations-">mutateRow</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/RowMutations.html" title="class in org.apache.hadoop.hbase.client">RowMutations</a> rm)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#mutateRow-org.apache.hadoop.hbase.client.RowMutations-">mutateRow</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/RowMutations.html" title="class in org.apache.hadoop.hbase.client">RowMutations</a> mutation)</code>
<div class="block">Performs multiple mutations atomically on a single row.</div>
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#mutateRow-org.apache.hadoop.hbase.client.RowMutations-">mutateRow</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/RowMutations.html" title="class in org.apache.hadoop.hbase.client">RowMutations</a> mutation)</code>
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#mutateRow-org.apache.hadoop.hbase.client.RowMutations-">mutateRow</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/RowMutations.html" title="class in org.apache.hadoop.hbase.client">RowMutations</a> rm)</code>
<div class="block">Performs multiple mutations atomically on a single row.</div>
</td>
</tr>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Scan.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Scan.html
index 94159f2f1ca..2d00777702e 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Scan.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Scan.html
@@ -418,14 +418,14 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tr>
<tbody>
<tr class="altColor">
-<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#getScanner-org.apache.hadoop.hbase.client.Scan-">getScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan)</code>
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getScanner-org.apache.hadoop.hbase.client.Scan-">getScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan)</code>
<div class="block">Returns a scanner on the current table as specified by the <a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client"><code>Scan</code></a> object.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getScanner-org.apache.hadoop.hbase.client.Scan-">getScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan)</code>
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#getScanner-org.apache.hadoop.hbase.client.Scan-">getScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan)</code>
<div class="block">Returns a scanner on the current table as specified by the <a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client"><code>Scan</code></a> object.</div>
</td>
</tr>
@@ -716,13 +716,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">TableRecordReaderImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.html#setScan-org.apache.hadoop.hbase.client.Scan-">setScan</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan)</code>
+<td class="colLast"><span class="typeNameLabel">TableInputFormatBase.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#setScan-org.apache.hadoop.hbase.client.Scan-">setScan</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan)</code>
<div class="block">Sets the scan defining the actual details like columns etc.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">TableInputFormatBase.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#setScan-org.apache.hadoop.hbase.client.Scan-">setScan</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan)</code>
+<td class="colLast"><span class="typeNameLabel">TableRecordReaderImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.html#setScan-org.apache.hadoop.hbase.client.Scan-">setScan</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a> scan)</code>
<div class="block">Sets the scan defining the actual details like columns etc.</div>
</td>
</tr>
diff --git a/apidocs/org/apache/hadoop/hbase/client/package-tree.html b/apidocs/org/apache/hadoop/hbase/client/package-tree.html
index ec6abead0a6..2fb76b98889 100644
--- a/apidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/apidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -237,17 +237,17 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
<ul>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ServerType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ServerType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ServerType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ServerType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
</ul>
</li>
</ul>
diff --git a/apidocs/org/apache/hadoop/hbase/client/package-use.html b/apidocs/org/apache/hadoop/hbase/client/package-use.html
index 57253b81085..2d477b9e8e1 100644
--- a/apidocs/org/apache/hadoop/hbase/client/package-use.html
+++ b/apidocs/org/apache/hadoop/hbase/client/package-use.html
@@ -626,15 +626,31 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tr>
<tbody>
<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Connection.html#org.apache.hadoop.hbase.mapred">Connection</a>
+<div class="block">A cluster connection encapsulating lower level individual connections to actual servers and a
+ connection to zookeeper.</div>
+</td>
+</tr>
+<tr class="rowColor">
<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Put.html#org.apache.hadoop.hbase.mapred">Put</a>
<div class="block">Used to perform Put operations for a single row.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Result.html#org.apache.hadoop.hbase.mapred">Result</a>
<div class="block">Single row result of a <a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client"><code>Get</code></a> or <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client"><code>Scan</code></a> query.</div>
</td>
</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Scan.html#org.apache.hadoop.hbase.mapred">Scan</a>
+<div class="block">Used to perform Scan operations.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Table.html#org.apache.hadoop.hbase.mapred">Table</a>
+<div class="block">Used to communicate with a single HBase table.</div>
+</td>
+</tr>
</tbody>
</table>
</li>
@@ -653,40 +669,34 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Connection.html#org.apache.hadoop.hbase.mapreduce">Connection</a>
-<div class="block">A cluster connection encapsulating lower level individual connections to actual servers and a
- connection to zookeeper.</div>
-</td>
-</tr>
-<tr class="altColor">
<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Mutation.html#org.apache.hadoop.hbase.mapreduce">Mutation</a> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Put.html#org.apache.hadoop.hbase.mapreduce">Put</a>
<div class="block">Used to perform Put operations for a single row.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/RegionLocator.html#org.apache.hadoop.hbase.mapreduce">RegionLocator</a>
<div class="block">Used to view region location information for a single HBase table.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Result.html#org.apache.hadoop.hbase.mapreduce">Result</a>
<div class="block">Single row result of a <a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client"><code>Get</code></a> or <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client"><code>Scan</code></a> query.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Scan.html#org.apache.hadoop.hbase.mapreduce">Scan</a>
<div class="block">Used to perform Scan operations.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Table.html#org.apache.hadoop.hbase.mapreduce">Table</a>
<div class="block">Used to communicate with a single HBase table.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TableDescriptor.html#org.apache.hadoop.hbase.mapreduce">TableDescriptor</a>
<div class="block">TableDescriptor contains the details about an HBase table such as the descriptors of all the
column families, is the table a catalog table, <code> hbase:meta </code>, if the table is read
diff --git a/apidocs/org/apache/hadoop/hbase/filter/Filter.ReturnCode.html b/apidocs/org/apache/hadoop/hbase/filter/Filter.ReturnCode.html
index b3faabc5d9f..8f8c4809e08 100644
--- a/apidocs/org/apache/hadoop/hbase/filter/Filter.ReturnCode.html
+++ b/apidocs/org/apache/hadoop/hbase/filter/Filter.ReturnCode.html
@@ -324,7 +324,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/Filter.ReturnCode.html#line.27">values</a>()</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/Filter.ReturnCode.html#line.194">values</a>()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
@@ -344,7 +344,7 @@ for (Filter.ReturnCode c : Filter.ReturnCode.values())
<ul class="blockListLast">
<li class="blockList">
<h4>valueOf</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/Filter.ReturnCode.html#line.27">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/Filter.ReturnCode.html#line.194">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
diff --git a/apidocs/org/apache/hadoop/hbase/filter/class-use/Filter.ReturnCode.html b/apidocs/org/apache/hadoop/hbase/filter/class-use/Filter.ReturnCode.html
index 9ffb416e036..941b510ab20 100644
--- a/apidocs/org/apache/hadoop/hbase/filter/class-use/Filter.ReturnCode.html
+++ b/apidocs/org/apache/hadoop/hbase/filter/class-use/Filter.ReturnCode.html
@@ -107,31 +107,31 @@
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnCountGetFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnCountGetFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> ignored)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FirstKeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DependentColumnFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/DependentColumnFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">QualifierFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/QualifierFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SkipFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/SkipFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">DependentColumnFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/DependentColumnFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PageFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/PageFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> ignored)</code> </td>
+<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FilterList.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FilterList.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">MultiRowRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> ignored)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
@@ -139,33 +139,31 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnCountGetFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnCountGetFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RandomRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/RandomRowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SkipFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/SkipFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/PrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">RandomRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/RandomRowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MultiRowRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> ignored)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">InclusiveStopFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/InclusiveStopFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code>
-<div class="block">A way to filter based on the column family, column qualifier and/or the column value.</div>
-</td>
+<td class="colLast"><span class="typeNameLabel">RowFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/RowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> v)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
@@ -173,39 +171,41 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SingleColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">FuzzyRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">InclusiveStopFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/InclusiveStopFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RowFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/RowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> v)</code> </td>
+<td class="colLast"><span class="typeNameLabel">PrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/PrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> cell)</code> </td>
+<td class="colLast"><span class="typeNameLabel">PageFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/PageFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> ignored)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code>
+<div class="block">A way to filter based on the column family, column qualifier and/or the column value.</div>
+</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">FirstKeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FuzzyRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">QualifierFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/QualifierFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
+<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> ignored)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SingleColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> c)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
diff --git a/apidocs/org/apache/hadoop/hbase/filter/class-use/Filter.html b/apidocs/org/apache/hadoop/hbase/filter/class-use/Filter.html
index 39333cb017e..daf709a3fe7 100644
--- a/apidocs/org/apache/hadoop/hbase/filter/class-use/Filter.html
+++ b/apidocs/org/apache/hadoop/hbase/filter/class-use/Filter.html
@@ -140,14 +140,14 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#getFilter--">getFilter</a></span>()</code>
-<div class="block">Returns RowFilter</div>
+<td class="colLast"><span class="typeNameLabel">CheckAndMutate.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html#getFilter--">getFilter</a></span>()</code>
+<div class="block">Returns the filter to check</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CheckAndMutate.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html#getFilter--">getFilter</a></span>()</code>
-<div class="block">Returns the filter to check</div>
+<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#getFilter--">getFilter</a></span>()</code>
+<div class="block">Returns RowFilter</div>
</td>
</tr>
<tr class="altColor">
@@ -164,8 +164,8 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tr>
<tbody>
<tr class="altColor">
-<td class="colFirst"><code>default org.apache.hadoop.hbase.client.Table.CheckAndMutateWithFilterBuilder</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#checkAndMutate-byte:A-org.apache.hadoop.hbase.filter.Filter-">checkAndMutate</a></span>(byte[] row,
+<td class="colFirst"><code>org.apache.hadoop.hbase.client.AsyncTable.CheckAndMutateWithFilterBuilder</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-byte:A-org.apache.hadoop.hbase.filter.Filter-">checkAndMutate</a></span>(byte[] row,
<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a> filter)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="block"><span class="deprecationComment">Since 3.0.0, will be removed in 4.0.0. For internal test use only, do not use it
@@ -174,8 +174,8 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>org.apache.hadoop.hbase.client.AsyncTable.CheckAndMutateWithFilterBuilder</code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-byte:A-org.apache.hadoop.hbase.filter.Filter-">checkAndMutate</a></span>(byte[] row,
+<td class="colFirst"><code>default org.apache.hadoop.hbase.client.Table.CheckAndMutateWithFilterBuilder</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#checkAndMutate-byte:A-org.apache.hadoop.hbase.filter.Filter-">checkAndMutate</a></span>(byte[] row,
<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a> filter)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="block"><span class="deprecationComment">Since 3.0.0, will be removed in 4.0.0. For internal test use only, do not use it
@@ -190,13 +190,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#setFilter-org.apache.hadoop.hbase.filter.Filter-">setFilter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a> filter)</code> </td>
-</tr>
-<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a></code></td>
<td class="colLast"><span class="typeNameLabel">Get.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Get.html#setFilter-org.apache.hadoop.hbase.filter.Filter-">setFilter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a> filter)</code> </td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#setFilter-org.apache.hadoop.hbase.filter.Filter-">setFilter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a> filter)</code> </td>
+</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Query.html" title="class in org.apache.hadoop.hbase.client">Query</a></code></td>
<td class="colLast"><span class="typeNameLabel">Query.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Query.html#setFilter-org.apache.hadoop.hbase.filter.Filter-">setFilter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a> filter)</code>
@@ -411,41 +411,41 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnCountGetFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnCountGetFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
+<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FirstKeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DependentColumnFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/DependentColumnFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SingleColumnValueExcludeFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueExcludeFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code>&n [...]
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code>
-<div class="block">Creating this filter by reflection, it is used by <a href="../../../../../../org/apache/hadoop/hbase/filter/ParseFilter.html" title="class in org.apache.hadoop.hbase.filter"><code>ParseFilter</code></a>,</div>
-</td>
+<td class="colLast"><span class="typeNameLabel">QualifierFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/QualifierFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PageFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/PageFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FamilyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FamilyFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
+<td class="colLast"><span class="typeNameLabel">DependentColumnFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/DependentColumnFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ValueFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
+<td class="colLast"><span class="typeNameLabel">FamilyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FamilyFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SingleColumnValueExcludeFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueExcludeFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code>&n [...]
+<td class="colLast"><span class="typeNameLabel">ColumnCountGetFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnCountGetFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/PrefixFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code>
+<div class="block">Creating this filter by reflection, it is used by <a href="../../../../../../org/apache/hadoop/hbase/filter/ParseFilter.html" title="class in org.apache.hadoop.hbase.filter"><code>ParseFilter</code></a>,</div>
+</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
@@ -453,39 +453,39 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">InclusiveStopFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/InclusiveStopFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ValueFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SingleColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
+<td class="colLast"><span class="typeNameLabel">RowFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/RowFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
+<td class="colLast"><span class="typeNameLabel">InclusiveStopFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/InclusiveStopFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RowFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/RowFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
+<td class="colLast"><span class="typeNameLabel">PrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/PrefixFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
+<td class="colLast"><span class="typeNameLabel">PageFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/PageFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
+<td class="colLast"><span class="typeNameLabel">FirstKeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
+<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">QualifierFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/QualifierFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
+<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SingleColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><byte[]> filterArguments)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
@@ -650,15 +650,15 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
<td class="colLast"><span class="typeNameLabel">TableRecordReader.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/TableRecordReader.html#setRowFilter-org.apache.hadoop.hbase.filter.Filter-">setRowFilter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a> rowFilter)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">TableRecordReaderImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.html#setRowFilter-org.apache.hadoop.hbase.filter.Filter-">setRowFilter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a> rowFilter)</code> </td>
-</tr>
-<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><span class="typeNameLabel">TableInputFormatBase.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/TableInputFormatBase.html#setRowFilter-org.apache.hadoop.hbase.filter.Filter-">setRowFilter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a> rowFilter)</code>
<div class="block">Allows subclasses to set the <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter"><code>Filter</code></a> to be used.</div>
</td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">TableRecordReaderImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.html#setRowFilter-org.apache.hadoop.hbase.filter.Filter-">setRowFilter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a> rowFilter)</code> </td>
+</tr>
</tbody>
</table>
</li>
diff --git a/apidocs/org/apache/hadoop/hbase/io/class-use/ImmutableBytesWritable.html b/apidocs/org/apache/hadoop/hbase/io/class-use/ImmutableBytesWritable.html
index 080a0dd9c2b..4b645fb9445 100644
--- a/apidocs/org/apache/hadoop/hbase/io/class-use/ImmutableBytesWritable.html
+++ b/apidocs/org/apache/hadoop/hbase/io/class-use/ImmutableBytesWritable.html
@@ -174,13 +174,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>org.apache.hadoop.mapred.RecordReader<<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">MultiTableSnapshotInputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/MultiTableSnapshotInputFormat.html#getRecordReader-org.apache.hadoop.mapred.InputSplit-org.apache.hadoop.mapred.JobConf-org.apache.hadoop.mapred.Reporter-">getRecordReader</a></span>(org.apache.hadoop.mapred.InputSplit split,
+<td class="colLast"><span class="typeNameLabel">TableSnapshotInputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/TableSnapshotInputFormat.html#getRecordReader-org.apache.hadoop.mapred.InputSplit-org.apache.hadoop.mapred.JobConf-org.apache.hadoop.mapred.Reporter-">getRecordReader</a></span>(org.apache.hadoop.mapred.InputSplit split,
org.apache.hadoop.mapred.JobConf job,
org.apache.hadoop.mapred.Reporter reporter)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>org.apache.hadoop.mapred.RecordReader<<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">TableSnapshotInputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/TableSnapshotInputFormat.html#getRecordReader-org.apache.hadoop.mapred.InputSplit-org.apache.hadoop.mapred.JobConf-org.apache.hadoop.mapred.Reporter-">getRecordReader</a></span>(org.apache.hadoop.mapred.InputSplit split,
+<td class="colLast"><span class="typeNameLabel">MultiTableSnapshotInputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/MultiTableSnapshotInputFormat.html#getRecordReader-org.apache.hadoop.mapred.InputSplit-org.apache.hadoop.mapred.JobConf-org.apache.hadoop.mapred.Reporter-">getRecordReader</a></span>(org.apache.hadoop.mapred.InputSplit split,
org.apache.hadoop.mapred.JobConf job,
org.apache.hadoop.mapred.Reporter reporter)</code> </td>
</tr>
@@ -209,20 +209,20 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">IdentityTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/IdentityTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
+<td class="colLast"><span class="typeNameLabel">GroupingTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/GroupingTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a> value,
org.apache.hadoop.mapred.OutputCollector<<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>> output,
org.apache.hadoop.mapred.Reporter reporter)</code>
-<div class="block">Pass the key, value to reduce</div>
+<div class="block">Extract the grouping columns from value to construct a new key.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">GroupingTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/GroupingTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
+<td class="colLast"><span class="typeNameLabel">IdentityTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/IdentityTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a> value,
org.apache.hadoop.mapred.OutputCollector<<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>> output,
org.apache.hadoop.mapred.Reporter reporter)</code>
-<div class="block">Extract the grouping columns from value to construct a new key.</div>
+<div class="block">Pass the key, value to reduce</div>
</td>
</tr>
<tr class="rowColor">
@@ -255,20 +255,20 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">IdentityTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/IdentityTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
+<td class="colLast"><span class="typeNameLabel">GroupingTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/GroupingTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a> value,
org.apache.hadoop.mapred.OutputCollector<<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>> output,
org.apache.hadoop.mapred.Reporter reporter)</code>
-<div class="block">Pass the key, value to reduce</div>
+<div class="block">Extract the grouping columns from value to construct a new key.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">GroupingTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/GroupingTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
+<td class="colLast"><span class="typeNameLabel">IdentityTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/IdentityTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a> value,
org.apache.hadoop.mapred.OutputCollector<<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>> output,
org.apache.hadoop.mapred.Reporter reporter)</code>
-<div class="block">Extract the grouping columns from value to construct a new key.</div>
+<div class="block">Pass the key, value to reduce</div>
</td>
</tr>
<tr class="altColor">
@@ -341,13 +341,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>org.apache.hadoop.mapreduce.RecordWriter<<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">HFileOutputFormat2.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/HFileOutputFormat2.html#getRecordWriter-org.apache.hadoop.mapreduce.TaskAttemptContext-">getRecordWriter</a></span>(org.apache.hadoop.mapreduce.TaskAttemptContext context)</code> </td>
-</tr>
-<tr class="altColor">
<td class="colFirst"><code>org.apache.hadoop.mapreduce.RecordWriter<<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>></code></td>
<td class="colLast"><span class="typeNameLabel">MultiTableOutputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/MultiTableOutputFormat.html#getRecordWriter-org.apache.hadoop.mapreduce.TaskAttemptContext-">getRecordWriter</a></span>(org.apache.hadoop.mapreduce.TaskAttemptContext context)</code> </td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code>org.apache.hadoop.mapreduce.RecordWriter<<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">HFileOutputFormat2.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/HFileOutputFormat2.html#getRecordWriter-org.apache.hadoop.mapreduce.TaskAttemptContext-">getRecordWriter</a></span>(org.apache.hadoop.mapreduce.TaskAttemptContext context)</code> </td>
+</tr>
</tbody>
</table>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
@@ -374,12 +374,6 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">SimpleTotalOrderPartitioner.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.html#getPartition-org.apache.hadoop.hbase.io.ImmutableBytesWritable-VALUE-int-">getPartition</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a> key,
- <a href="../../../../../../org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.html" title="type parameter in SimpleTotalOrderPartitioner">VALUE</a> value,
- int reduces)</code> </td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>int</code></td>
<td class="colLast"><span class="typeNameLabel">HRegionPartitioner.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/HRegionPartitioner.html#getPartition-org.apache.hadoop.hbase.io.ImmutableBytesWritable-VALUE-int-">getPartition</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a> key,
<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/HRegionPartitioner.html" title="type parameter in HRegionPartitioner">VALUE</a> value,
int numPartitions)</code>
@@ -387,6 +381,12 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
i.e.</div>
</td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleTotalOrderPartitioner.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.html#getPartition-org.apache.hadoop.hbase.io.ImmutableBytesWritable-VALUE-int-">getPartition</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a> key,
+ <a href="../../../../../../org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.html" title="type parameter in SimpleTotalOrderPartitioner">VALUE</a> value,
+ int reduces)</code> </td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><span class="typeNameLabel">GroupingTableMapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/GroupingTableMapper.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapreduce.Mapper.Context-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWri [...]
diff --git a/apidocs/org/apache/hadoop/hbase/io/class-use/TimeRange.html b/apidocs/org/apache/hadoop/hbase/io/class-use/TimeRange.html
index 6e1f8fd4e86..84ac6548883 100644
--- a/apidocs/org/apache/hadoop/hbase/io/class-use/TimeRange.html
+++ b/apidocs/org/apache/hadoop/hbase/io/class-use/TimeRange.html
@@ -123,20 +123,20 @@
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#getTimeRange--">getTimeRange</a></span>()</code>
-<div class="block">Returns TimeRange</div>
+<td class="colLast"><span class="typeNameLabel">Append.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Append.html#getTimeRange--">getTimeRange</a></span>()</code>
+<div class="block">Gets the TimeRange used for this append.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Append.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Append.html#getTimeRange--">getTimeRange</a></span>()</code>
-<div class="block">Gets the TimeRange used for this append.</div>
+<td class="colLast"><span class="typeNameLabel">Increment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html#getTimeRange--">getTimeRange</a></span>()</code>
+<div class="block">Gets the TimeRange used for this increment.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Increment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html#getTimeRange--">getTimeRange</a></span>()</code>
-<div class="block">Gets the TimeRange used for this increment.</div>
+<td class="colLast"><span class="typeNameLabel">Get.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Get.html#getTimeRange--">getTimeRange</a></span>()</code>
+<div class="block">Method for retrieving the get's TimeRange</div>
</td>
</tr>
<tr class="rowColor">
@@ -147,8 +147,8 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Get.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Get.html#getTimeRange--">getTimeRange</a></span>()</code>
-<div class="block">Method for retrieving the get's TimeRange</div>
+<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#getTimeRange--">getTimeRange</a></span>()</code>
+<div class="block">Returns TimeRange</div>
</td>
</tr>
</tbody>
diff --git a/apidocs/org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html b/apidocs/org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html
index 3323b0c12b6..ff3e2617dd3 100644
--- a/apidocs/org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html
+++ b/apidocs/org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html
@@ -368,7 +368,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
-<pre>public static <a href="../../../../../../org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress">Compression.Algorithm</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html#line.45">values</a>()</pre>
+<pre>public static <a href="../../../../../../org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress">Compression.Algorithm</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html#line.34">values</a>()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
@@ -388,7 +388,7 @@ for (Compression.Algorithm c : Compression.Algorithm.values())
<ul class="blockList">
<li class="blockList">
<h4>valueOf</h4>
-<pre>public static <a href="../../../../../../org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress">Compression.Algorithm</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html#line.45">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<pre>public static <a href="../../../../../../org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress">Compression.Algorithm</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html#line.34">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
diff --git a/apidocs/org/apache/hadoop/hbase/io/crypto/class-use/Cipher.html b/apidocs/org/apache/hadoop/hbase/io/crypto/class-use/Cipher.html
index e04709bf37e..86f5e7c30a1 100644
--- a/apidocs/org/apache/hadoop/hbase/io/crypto/class-use/Cipher.html
+++ b/apidocs/org/apache/hadoop/hbase/io/crypto/class-use/Cipher.html
@@ -115,18 +115,18 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/Cipher.html" title="class in org.apache.hadoop.hbase.io.crypto">Cipher</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultCipherProvider.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/DefaultCipherProvider.html#getCipher-java.lang.String-">getCipher</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> </td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/Cipher.html" title="class in org.apache.hadoop.hbase.io.crypto">Cipher</a></code></td>
<td class="colLast"><span class="typeNameLabel">CryptoCipherProvider.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/CryptoCipherProvider.html#getCipher-java.lang.String-">getCipher</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/Cipher.html" title="class in org.apache.hadoop.hbase.io.crypto">Cipher</a></code></td>
<td class="colLast"><span class="typeNameLabel">CipherProvider.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/CipherProvider.html#getCipher-java.lang.String-">getCipher</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
<div class="block">Get an Cipher</div>
</td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/Cipher.html" title="class in org.apache.hadoop.hbase.io.crypto">Cipher</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DefaultCipherProvider.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/DefaultCipherProvider.html#getCipher-java.lang.String-">getCipher</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> </td>
+</tr>
</tbody>
</table>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
diff --git a/apidocs/org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html b/apidocs/org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html
index 8e6bd00b83d..f745c831dd5 100644
--- a/apidocs/org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html
+++ b/apidocs/org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html
@@ -369,7 +369,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
-<pre>public static <a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html#line.41">values</a>()</pre>
+<pre>public static <a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html#line.36">values</a>()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
@@ -389,7 +389,7 @@ for (DataBlockEncoding c : DataBlockEncoding.values())
<ul class="blockList">
<li class="blockList">
<h4>valueOf</h4>
-<pre>public static <a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html#line.41">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<pre>public static <a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html#line.36">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
diff --git a/apidocs/org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html b/apidocs/org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html
index add59734b14..26b2a892d28 100644
--- a/apidocs/org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html
+++ b/apidocs/org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html
@@ -314,7 +314,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
-<pre>public static <a href="../../../../../../org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">IndexBlockEncoding</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html#line.48">values</a>()</pre>
+<pre>public static <a href="../../../../../../org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">IndexBlockEncoding</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html#line.35">values</a>()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
@@ -334,7 +334,7 @@ for (IndexBlockEncoding c : IndexBlockEncoding.values())
<ul class="blockList">
<li class="blockList">
<h4>valueOf</h4>
-<pre>public static <a href="../../../../../../org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">IndexBlockEncoding</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html#line.48">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<pre>public static <a href="../../../../../../org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">IndexBlockEncoding</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html#line.35">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
diff --git a/apidocs/org/apache/hadoop/hbase/package-tree.html b/apidocs/org/apache/hadoop/hbase/package-tree.html
index d4cb7f48e34..961b72387a3 100644
--- a/apidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/apidocs/org/apache/hadoop/hbase/package-tree.html
@@ -211,8 +211,8 @@
<ul>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
</ul>
</li>
</ul>
diff --git a/apidocs/org/apache/hadoop/hbase/package-use.html b/apidocs/org/apache/hadoop/hbase/package-use.html
index 890e57820bd..f6168256b31 100644
--- a/apidocs/org/apache/hadoop/hbase/package-use.html
+++ b/apidocs/org/apache/hadoop/hbase/package-use.html
@@ -124,43 +124,50 @@
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.mapreduce">org.apache.hadoop.hbase.mapreduce</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.mapred">org.apache.hadoop.hbase.mapred</a></td>
<td class="colLast">
<div class="block">Provides HBase <a href="https://cwiki.apache.org/confluence/display/HADOOP2/HadoopMapReduce">MapReduce</a>
Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.mapreduce">org.apache.hadoop.hbase.mapreduce</a></td>
+<td class="colLast">
+<div class="block">Provides HBase <a href="https://cwiki.apache.org/confluence/display/HADOOP2/HadoopMapReduce">MapReduce</a>
+Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
+</td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><a href="#org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="#org.apache.hadoop.hbase.replication">org.apache.hadoop.hbase.replication</a></td>
<td class="colLast">
<div class="block">Multi Cluster Replication</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.hadoop.hbase.rsgroup">org.apache.hadoop.hbase.rsgroup</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="#org.apache.hadoop.hbase.security">org.apache.hadoop.hbase.security</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.hadoop.hbase.snapshot">org.apache.hadoop.hbase.snapshot</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="#org.apache.hadoop.hbase.testing">org.apache.hadoop.hbase.testing</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util</a></td>
<td class="colLast"> </td>
</tr>
@@ -583,6 +590,23 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tbody>
</table>
</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.mapred">
+<!-- -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/hadoop/hbase/package-summary.html">org.apache.hadoop.hbase</a> used by <a href="../../../../org/apache/hadoop/hbase/mapred/package-summary.html">org.apache.hadoop.hbase.mapred</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/TableName.html#org.apache.hadoop.hbase.mapred">TableName</a>
+<div class="block">Immutable POJO class for representing a table name.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
<li class="blockList"><a name="org.apache.hadoop.hbase.mapreduce">
<!-- -->
</a>
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index 2433aecf55c..ba629f02799 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -127,9 +127,9 @@
<ul>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
</ul>
</li>
</ul>
diff --git a/apidocs/org/apache/hadoop/hbase/replication/SyncReplicationState.html b/apidocs/org/apache/hadoop/hbase/replication/SyncReplicationState.html
index d978ff20615..7e60364f866 100644
--- a/apidocs/org/apache/hadoop/hbase/replication/SyncReplicationState.html
+++ b/apidocs/org/apache/hadoop/hbase/replication/SyncReplicationState.html
@@ -287,7 +287,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication">SyncReplicationState</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/SyncReplicationState.html#line.107">values</a>()</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication">SyncReplicationState</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/SyncReplicationState.html#line.43">values</a>()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
@@ -307,7 +307,7 @@ for (SyncReplicationState c : SyncReplicationState.values())
<ul class="blockList">
<li class="blockList">
<h4>valueOf</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication">SyncReplicationState</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/SyncReplicationState.html#line.107">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication">SyncReplicationState</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/SyncReplicationState.html#line.43">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
diff --git a/apidocs/org/apache/hadoop/hbase/util/Bytes.html b/apidocs/org/apache/hadoop/hbase/util/Bytes.html
index 97212bcf59c..1dbb641fb17 100644
--- a/apidocs/org/apache/hadoop/hbase/util/Bytes.html
+++ b/apidocs/org/apache/hadoop/hbase/util/Bytes.html
@@ -2596,7 +2596,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
-<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1462">equals</a>(byte[] left,
+<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1560">equals</a>(byte[] left,
byte[] right)</pre>
<div class="block">Lexicographically determine the equality of two arrays.</div>
<dl>
@@ -2614,7 +2614,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
-<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1488">equals</a>(byte[] left,
+<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1586">equals</a>(byte[] left,
int leftOffset,
int leftLen,
byte[] right,
@@ -2640,7 +2640,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
-<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1517">equals</a>(byte[] a,
+<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1615">equals</a>(byte[] a,
<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> buf)</pre>
<div class="block">Lexicographically determine the equality of two byte[], one as ByteBuffer.</div>
<dl>
@@ -2658,7 +2658,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>startsWith</h4>
-<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1535">startsWith</a>(byte[] bytes,
+<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1633">startsWith</a>(byte[] bytes,
byte[] prefix)</pre>
<div class="block">Return true if the byte array on the right is a prefix of the byte array on the left.</div>
</li>
@@ -2669,7 +2669,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
-<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1547">hashCode</a>(byte[] b)</pre>
+<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1645">hashCode</a>(byte[] b)</pre>
<div class="block">Calculate a hash code from a given byte array.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -2686,7 +2686,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
-<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1558">hashCode</a>(byte[] b,
+<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1656">hashCode</a>(byte[] b,
int length)</pre>
<div class="block">Calculate a hash code from a given byte array.</div>
<dl>
@@ -2705,7 +2705,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>mapKey</h4>
-<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1567">mapKey</a>(byte[] b)</pre>
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1665">mapKey</a>(byte[] b)</pre>
<div class="block">Calculate a hash code from a given byte array suitable for use as a key in maps.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -2721,7 +2721,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>mapKey</h4>
-<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1577">mapKey</a>(byte[] b,
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1675">mapKey</a>(byte[] b,
int length)</pre>
<div class="block">Calculate a hash code from a given byte array suitable for use as a key in maps.</div>
<dl>
@@ -2739,7 +2739,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
-<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1587">add</a>(byte[] a,
+<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1685">add</a>(byte[] a,
byte[] b)</pre>
<div class="block">Concatenate byte arrays.</div>
<dl>
@@ -2757,7 +2757,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
-<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1598">add</a>(byte[] a,
+<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1696">add</a>(byte[] a,
byte[] b,
byte[] c)</pre>
<div class="block">Concatenate byte arrays.</div>
@@ -2777,7 +2777,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
-<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1611">add</a>(byte[][] arrays)</pre>
+<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1709">add</a>(byte[][] arrays)</pre>
<div class="block">Concatenate byte arrays.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -2793,7 +2793,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>head</h4>
-<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1631">head</a>(byte[] a,
+<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1729">head</a>(byte[] a,
int length)</pre>
<div class="block">Make a new byte array from a subset of bytes at the head of another.</div>
<dl>
@@ -2811,7 +2811,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>tail</h4>
-<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1646">tail</a>(byte[] a,
+<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1744">tail</a>(byte[] a,
int length)</pre>
<div class="block">Make a new byte array from a subset of bytes at the tail of another.</div>
<dl>
@@ -2829,7 +2829,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>padHead</h4>
-<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1661">padHead</a>(byte[] a,
+<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1759">padHead</a>(byte[] a,
int length)</pre>
<div class="block">Make a new byte array from a subset of bytes at the head of another, zero padded as desired.</div>
<dl>
@@ -2847,7 +2847,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>padTail</h4>
-<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1675">padTail</a>(byte[] a,
+<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1773">padTail</a>(byte[] a,
int length)</pre>
<div class="block">Make a new byte array from a subset of bytes at the tail of another, zero padded as desired.</div>
<dl>
@@ -2865,7 +2865,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>split</h4>
-<pre>public static byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1692">split</a>(byte[] a,
+<pre>public static byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1790">split</a>(byte[] a,
byte[] b,
int num)</pre>
<div class="block">Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting
@@ -2887,7 +2887,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>split</h4>
-<pre>public static byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1708">split</a>(byte[] a,
+<pre>public static byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1806">split</a>(byte[] a,
byte[] b,
boolean inclusive,
int num)</pre>
@@ -2913,7 +2913,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>iterateOnSplits</h4>
-<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><byte[]> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1722">iterateOnSplits</a>(byte[] a,
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><byte[]> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1820">iterateOnSplits</a>(byte[] a,
byte[] b,
int num)</pre>
<div class="block">Iterate over keys within the passed range, splitting at an [a,b) boundary.</div>
@@ -2925,7 +2925,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>iterateOnSplits</h4>
-<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><byte[]> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1729">iterateOnSplits</a>(byte[] a,
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><byte[]> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1827">iterateOnSplits</a>(byte[] a,
byte[] b,
boolean inclusive,
int num)</pre>
@@ -2938,7 +2938,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
-<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1821">hashCode</a>(byte[] bytes,
+<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1919">hashCode</a>(byte[] bytes,
int offset,
int length)</pre>
<div class="block">Calculate the hash code for a given range of bytes.</div>
@@ -2956,7 +2956,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>toByteArrays</h4>
-<pre>public static byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1833">toByteArrays</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] t)</pre>
+<pre>public static byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1931">toByteArrays</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] t)</pre>
<div class="block">Create an array of byte[] given an array of String.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -2972,7 +2972,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>toBinaryByteArrays</h4>
-<pre>public static byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1846">toBinaryByteArrays</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] t)</pre>
+<pre>public static byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1944">toBinaryByteArrays</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] t)</pre>
<div class="block">Create an array of byte[] given an array of String.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -2988,7 +2988,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>toByteArrays</h4>
-<pre>public static byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1859">toByteArrays</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> column)</pre>
+<pre>public static byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1957">toByteArrays</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> column)</pre>
<div class="block">Create a byte[][] where first and only entry is <code>column</code></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -3004,7 +3004,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>toByteArrays</h4>
-<pre>public static byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1868">toByteArrays</a>(byte[] column)</pre>
+<pre>public static byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1966">toByteArrays</a>(byte[] column)</pre>
<div class="block">Create a byte[][] where first and only entry is <code>column</code></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -3020,7 +3020,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>binarySearch</h4>
-<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1886">binarySearch</a>(byte[][] arr,
+<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1984">binarySearch</a>(byte[][] arr,
byte[] key,
int offset,
int length)</pre>
@@ -3046,7 +3046,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>binarySearch</h4>
-<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1918">binarySearch</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>[] arr,
+<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2016">binarySearch</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>[] arr,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> key,
<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> comparator)</pre>
<div class="block">Binary search for keys in indexes.</div>
@@ -3070,7 +3070,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>incrementBytes</h4>
-<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1942">incrementBytes</a>(byte[] value,
+<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2040">incrementBytes</a>(byte[] value,
long amount)</pre>
<div class="block">Bytewise binary increment/deincrement of long contained in byte array on given amount.</div>
<dl>
@@ -3088,7 +3088,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>writeStringFixedSize</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2017">writeStringFixedSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a> out,
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2115">writeStringFixedSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a> out,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
int size)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3105,7 +3105,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>readStringFixedSize</h4>
-<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2033">readStringFixedSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io">DataInput</a> in,
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2131">readStringFixedSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io">DataInput</a> in,
int size)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Reads a fixed-size field and interprets it as a string padded with zeros.</div>
@@ -3121,7 +3121,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>copy</h4>
-<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2049">copy</a>(byte[] bytes)</pre>
+<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2147">copy</a>(byte[] bytes)</pre>
<div class="block">Copy the byte array given in parameter and return an instance of a new byte array with the same
length and the same content.</div>
<dl>
@@ -3138,7 +3138,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>copy</h4>
-<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2062">copy</a>(byte[] bytes,
+<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2160">copy</a>(byte[] bytes,
int offset,
int length)</pre>
<div class="block">Copy the byte array given in parameter and return an instance of a new byte array with the same
@@ -3157,7 +3157,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>unsignedBinarySearch</h4>
-<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2079">unsignedBinarySearch</a>(byte[] a,
+<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2177">unsignedBinarySearch</a>(byte[] a,
int fromIndex,
int toIndex,
byte key)</pre>
@@ -3181,7 +3181,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>unsignedCopyAndIncrement</h4>
-<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2105">unsignedCopyAndIncrement</a>(byte[] input)</pre>
+<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2203">unsignedCopyAndIncrement</a>(byte[] input)</pre>
<div class="block">Treat the byte[] as an unsigned series of bytes, most significant bits first. Start by adding 1
to the rightmost bit/byte and carry over all overflows to the more significant bits/bytes.</div>
<dl>
@@ -3198,7 +3198,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
-<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2125">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><byte[]> a,
+<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2223">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><byte[]> a,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><byte[]> b)</pre>
</li>
</ul>
@@ -3208,7 +3208,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>isSorted</h4>
-<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2146">isSorted</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><byte[]> arrays)</pre>
+<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2244">isSorted</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><byte[]> arrays)</pre>
</li>
</ul>
<a name="getUtf8ByteArrays-java.util.List-">
@@ -3217,7 +3217,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>getUtf8ByteArrays</h4>
-<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><byte[]> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2159">getUtf8ByteArrays</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Str [...]
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><byte[]> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2257">getUtf8ByteArrays</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Str [...]
</li>
</ul>
<a name="indexOf-byte:A-byte-">
@@ -3226,7 +3226,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>indexOf</h4>
-<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2175">indexOf</a>(byte[] array,
+<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2273">indexOf</a>(byte[] array,
byte target)</pre>
<div class="block">Returns the index of the first appearance of the value <code>target</code> in <code>array</code>.</div>
<dl>
@@ -3245,7 +3245,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>indexOf</h4>
-<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2194">indexOf</a>(byte[] array,
+<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2292">indexOf</a>(byte[] array,
byte[] target)</pre>
<div class="block">Returns the start position of the first occurrence of the specified <code>target</code> within <code>array</code>, or <code>-1</code> if there is no such occurrence.
<p>
@@ -3264,7 +3264,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>contains</h4>
-<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2218">contains</a>(byte[] array,
+<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2316">contains</a>(byte[] array,
byte target)</pre>
<div class="block">Return true if target is present as an element anywhere in the given array.</div>
<dl>
@@ -3282,7 +3282,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>contains</h4>
-<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2228">contains</a>(byte[] array,
+<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2326">contains</a>(byte[] array,
byte[] target)</pre>
<div class="block">Return true if target is present as an element anywhere in the given array.</div>
<dl>
@@ -3300,7 +3300,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>zero</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2236">zero</a>(byte[] b)</pre>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2334">zero</a>(byte[] b)</pre>
<div class="block">Fill given array with zeros.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -3314,7 +3314,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>zero</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2243">zero</a>(byte[] b,
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2341">zero</a>(byte[] b,
int offset,
int length)</pre>
<div class="block">Fill given array with zeros at the specified position.</div>
@@ -3326,7 +3326,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>random</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2261">random</a>(byte[] b)</pre>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2359">random</a>(byte[] b)</pre>
<div class="block">Fill given array with random bytes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -3344,7 +3344,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>random</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2274">random</a>(byte[] b,
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2372">random</a>(byte[] b,
int offset,
int length)</pre>
<div class="block">Fill given array with random bytes at the specified position.
@@ -3365,7 +3365,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>secureRandom</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2290">secureRandom</a>(byte[] b)</pre>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2388">secureRandom</a>(byte[] b)</pre>
<div class="block">Fill given array with random bytes using a strong random number generator.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -3379,7 +3379,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>secureRandom</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2301">secureRandom</a>(byte[] b,
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2399">secureRandom</a>(byte[] b,
int offset,
int length)</pre>
<div class="block">Fill given array with random bytes at the specified position using a strong random number
@@ -3398,7 +3398,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>createMaxByteArray</h4>
-<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2315">createMaxByteArray</a>(int maxByteCount)</pre>
+<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2413">createMaxByteArray</a>(int maxByteCount)</pre>
<div class="block">Create a max byte array with the specified max byte count</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -3414,7 +3414,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>multiple</h4>
-<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2327">multiple</a>(byte[] srcBytes,
+<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2425">multiple</a>(byte[] srcBytes,
int multiNum)</pre>
<div class="block">Create a byte array which is multiple given bytes</div>
<dl>
@@ -3429,7 +3429,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>toHex</h4>
-<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2344">toHex</a>(byte[] b,
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2442">toHex</a>(byte[] b,
int offset,
int length)</pre>
<div class="block">Convert a byte range into a hex string</div>
@@ -3441,7 +3441,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>toHex</h4>
-<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2359">toHex</a>(byte[] b)</pre>
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2457">toHex</a>(byte[] b)</pre>
<div class="block">Convert a byte array into a hex string</div>
</li>
</ul>
@@ -3451,7 +3451,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>fromHex</h4>
-<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2382">fromHex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> hex)</pre>
+<pre>public static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2480">fromHex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> hex)</pre>
<div class="block">Create a byte array from a string of hash digits. The length of the string must be a multiple
of 2</div>
</li>
@@ -3462,7 +3462,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>searchDelimiterIndex</h4>
-<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2396">searchDelimiterIndex</a>(byte[] b,
+<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2494">searchDelimiterIndex</a>(byte[] b,
int offset,
int length,
int delimiter)</pre>
@@ -3479,7 +3479,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockList">
<li class="blockList">
<h4>searchDelimiterIndexInReverse</h4>
-<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2415">searchDelimiterIndexInReverse</a>(byte[] b,
+<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2513">searchDelimiterIndexInReverse</a>(byte[] b,
int offset,
int length,
int delimiter)</pre>
@@ -3496,7 +3496,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
<ul class="blockListLast">
<li class="blockList">
<h4>findCommonPrefix</h4>
-<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2430">findCommonPrefix</a>(byte[] left,
+<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2528">findCommonPrefix</a>(byte[] left,
byte[] right,
int leftLength,
int rightLength,
diff --git a/apidocs/org/apache/hadoop/hbase/util/class-use/Bytes.html b/apidocs/org/apache/hadoop/hbase/util/class-use/Bytes.html
index 34781652aba..bb2ae15b736 100644
--- a/apidocs/org/apache/hadoop/hbase/util/class-use/Bytes.html
+++ b/apidocs/org/apache/hadoop/hbase/util/class-use/Bytes.html
@@ -123,14 +123,14 @@
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getValue-org.apache.hadoop.hbase.util.Bytes-">getValue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a> key)</code>
-<div class="block">Getter for accessing the metadata associated with the key.</div>
+<td class="colLast"><span class="typeNameLabel">ColumnFamilyDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html#getValue-org.apache.hadoop.hbase.util.Bytes-">getValue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a> key)</code>
+<div class="block">Get a configuration value.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnFamilyDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html#getValue-org.apache.hadoop.hbase.util.Bytes-">getValue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a> key)</code>
-<div class="block">Get a configuration value.</div>
+<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getValue-org.apache.hadoop.hbase.util.Bytes-">getValue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a> key)</code>
+<div class="block">Getter for accessing the metadata associated with the key.</div>
</td>
</tr>
</tbody>
@@ -144,26 +144,26 @@
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>,<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getValues--">getValues</a></span>()</code>
-<div class="block">Returns Getter for fetching an unmodifiable map.</div>
+<td class="colLast"><span class="typeNameLabel">ColumnFamilyDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html#getValues--">getValues</a></span>()</code>
+<div class="block">Get all configuration values.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>,<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getValues--">getValues</a></span>()</code>
-<div class="block">Returns Getter for fetching an unmodifiable map.</div>
+<td class="colLast"><span class="typeNameLabel">ColumnFamilyDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html#getValues--">getValues</a></span>()</code>
+<div class="block">Get all configuration values.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>,<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnFamilyDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html#getValues--">getValues</a></span>()</code>
-<div class="block">Get all configuration values.</div>
+<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getValues--">getValues</a></span>()</code>
+<div class="block">Returns Getter for fetching an unmodifiable map.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>,<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnFamilyDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html#getValues--">getValues</a></span>()</code>
-<div class="block">Get all configuration values.</div>
+<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getValues--">getValues</a></span>()</code>
+<div class="block">Returns Getter for fetching an unmodifiable map.</div>
</td>
</tr>
</tbody>
@@ -177,14 +177,14 @@
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getValue-org.apache.hadoop.hbase.util.Bytes-">getValue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a> key)</code>
-<div class="block">Getter for accessing the metadata associated with the key.</div>
+<td class="colLast"><span class="typeNameLabel">ColumnFamilyDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html#getValue-org.apache.hadoop.hbase.util.Bytes-">getValue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a> key)</code>
+<div class="block">Get a configuration value.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnFamilyDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html#getValue-org.apache.hadoop.hbase.util.Bytes-">getValue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a> key)</code>
-<div class="block">Get a configuration value.</div>
+<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getValue-org.apache.hadoop.hbase.util.Bytes-">getValue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a> key)</code>
+<div class="block">Getter for accessing the metadata associated with the key.</div>
</td>
</tr>
<tr class="altColor">
diff --git a/apidocs/org/apache/hadoop/hbase/util/class-use/Order.html b/apidocs/org/apache/hadoop/hbase/util/class-use/Order.html
index df8987e5995..de6cf015de6 100644
--- a/apidocs/org/apache/hadoop/hbase/util/class-use/Order.html
+++ b/apidocs/org/apache/hadoop/hbase/util/class-use/Order.html
@@ -133,54 +133,54 @@
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawLong.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawLong.html#getOrder--">getOrder</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">FixedLengthWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html#getOrder--">getOrder</a></span>()</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Union3.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Union3.html#getOrder--">getOrder</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">TerminatedWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html#getOrder--">getOrder</a></span>()</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawByte.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawByte.html#getOrder--">getOrder</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">RawString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawString.html#getOrder--">getOrder</a></span>()</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawString.html#getOrder--">getOrder</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">RawByte.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawByte.html#getOrder--">getOrder</a></span>()</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawInteger.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawInteger.html#getOrder--">getOrder</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#getOrder--">getOrder</a></span>()</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TerminatedWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html#getOrder--">getOrder</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">RawFloat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawFloat.html#getOrder--">getOrder</a></span>()</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#getOrder--">getOrder</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">RawLong.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawLong.html#getOrder--">getOrder</a></span>()</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedBytesBase.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBytesBase.html#getOrder--">getOrder</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">Union3.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Union3.html#getOrder--">getOrder</a></span>()</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Struct.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Struct.html#getOrder--">getOrder</a></span>()</code> </td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
<td class="colLast"><span class="typeNameLabel">DataType.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/DataType.html#getOrder--">getOrder</a></span>()</code>
<div class="block">Retrieve the sort <a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><code>Order</code></a> imposed by this data type, or null when natural ordering is not
preserved.</div>
</td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Struct.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Struct.html#getOrder--">getOrder</a></span>()</code> </td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawDouble.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawDouble.html#getOrder--">getOrder</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">OrderedBytesBase.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBytesBase.html#getOrder--">getOrder</a></span>()</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FixedLengthWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html#getOrder--">getOrder</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">Union2.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Union2.html#getOrder--">getOrder</a></span>()</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
@@ -188,15 +188,15 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawShort.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawShort.html#getOrder--">getOrder</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">RawDouble.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawDouble.html#getOrder--">getOrder</a></span>()</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Union2.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Union2.html#getOrder--">getOrder</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">RawInteger.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawInteger.html#getOrder--">getOrder</a></span>()</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawFloat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawFloat.html#getOrder--">getOrder</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">RawShort.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawShort.html#getOrder--">getOrder</a></span>()</code> </td>
</tr>
</tbody>
</table>
diff --git a/apidocs/org/apache/hadoop/hbase/util/class-use/PositionedByteRange.html b/apidocs/org/apache/hadoop/hbase/util/class-use/PositionedByteRange.html
index 247f09d21ca..2cf40b59056 100644
--- a/apidocs/org/apache/hadoop/hbase/util/class-use/PositionedByteRange.html
+++ b/apidocs/org/apache/hadoop/hbase/util/class-use/PositionedByteRange.html
@@ -124,78 +124,86 @@
</tr>
<tbody>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedString.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang">Float</a></code></td>
+<td class="colLast"><span class="typeNameLabel">OrderedFloat32.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedFloat32.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html" title="type parameter in FixedLengthWrapper">T</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FixedLengthWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html" title="type parameter in TerminatedWrapper">T</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TerminatedWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>byte[]</code></td>
<td class="colLast"><span class="typeNameLabel">OrderedBlob.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBlob.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawLong.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawLong.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RawString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawString.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a></code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedInt8.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt8.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a></code></td>
+<td class="colLast"><span class="typeNameLabel">OrderedInt64.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt64.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a></code></td>
<td class="colLast"><span class="typeNameLabel">RawByte.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawByte.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawString.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawInteger.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawInteger.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang">Short</a></code></td>
+<td class="colLast"><span class="typeNameLabel">OrderedInt16.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt16.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html" title="type parameter in TerminatedWrapper">T</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TerminatedWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a></code></td>
+<td class="colLast"><span class="typeNameLabel">OrderedInt8.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt8.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a></code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedFloat64.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedFloat64.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang">Float</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RawFloat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawFloat.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>byte[]</code></td>
-<td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RawLong.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawLong.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]</code></td>
-<td class="colLast"><span class="typeNameLabel">Struct.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Struct.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/types/DataType.html" title="type parameter in DataType">T</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DataType.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/DataType.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code>
+<div class="block">Read an instance of <code>T</code> from the buffer <code>src</code>.</div>
+</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
<td class="colLast"><span class="typeNameLabel">OrderedInt32.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt32.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/types/DataType.html" title="type parameter in DataType">T</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DataType.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/DataType.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code>
-<div class="block">Read an instance of <code>T</code> from the buffer <code>src</code>.</div>
-</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="typeNameLabel">OrderedString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedString.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a></code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedInt64.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt64.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">Struct.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Struct.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawDouble.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawDouble.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colLast"><span class="typeNameLabel">OrderedFloat64.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedFloat64.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html" title="type parameter in FixedLengthWrapper">T</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FixedLengthWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><span class="typeNameLabel">OrderedBlobVar.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBlobVar.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang">Float</a></code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedFloat32.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedFloat32.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RawDouble.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawDouble.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang">Short</a></code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedInt16.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt16.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RawInteger.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawInteger.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
@@ -207,33 +215,25 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code>byte[]</code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedBlobVar.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBlobVar.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang">Float</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawFloat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawFloat.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>byte[]</code></td>
-<td class="colLast"><span class="typeNameLabel">RawBytesFixedLength.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytesFixedLength.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-int-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src,
- int length)</code>
-<div class="block">Read a <code>byte[]</code> from the buffer <code>src</code>.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>byte[]</code></td>
<td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-int-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src,
int length)</code>
<div class="block">Read a <code>byte[]</code> from the buffer <code>src</code>.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><span class="typeNameLabel">Struct.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Struct.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-int-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src,
int index)</code>
<div class="block">Read the field at <code>index</code>.</div>
</td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><span class="typeNameLabel">RawBytesFixedLength.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytesFixedLength.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-int-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src,
+ int length)</code>
+<div class="block">Read a <code>byte[]</code> from the buffer <code>src</code>.</div>
+</td>
+</tr>
<tr class="rowColor">
<td class="colFirst"><code>byte[]</code></td>
<td class="colLast"><span class="typeNameLabel">RawBytesTerminated.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytesTerminated.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-int-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src,
@@ -315,12 +315,12 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedInt8.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt8.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Byte-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
+<td class="colLast"><span class="typeNameLabel">RawByte.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawByte.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Byte-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a> val)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawByte.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawByte.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Byte-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
+<td class="colLast"><span class="typeNameLabel">OrderedInt8.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt8.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Byte-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a> val)</code> </td>
</tr>
<tr class="altColor">
@@ -349,38 +349,38 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawBytesFixedLength.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytesFixedLength.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-byte:A-int-int-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
+<td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-byte:A-int-int-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
byte[] val,
int voff,
int vlen)</code>
-<div class="block">Write <code>val</code> into <code>buff</code>, respecting <code>offset</code> and <code>length</code>.</div>
+<div class="block">Write <code>val</code> into <code>dst</code>, respecting <code>voff</code> and <code>vlen</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-byte:A-int-int-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
+<td class="colLast"><span class="typeNameLabel">RawBytesFixedLength.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytesFixedLength.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-byte:A-int-int-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
byte[] val,
int voff,
int vlen)</code>
-<div class="block">Write <code>val</code> into <code>dst</code>, respecting <code>voff</code> and <code>vlen</code>.</div>
+<div class="block">Write <code>val</code> into <code>buff</code>, respecting <code>offset</code> and <code>length</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawBytesTerminated.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytesTerminated.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-byte:A-int-int-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
+<td class="colLast"><span class="typeNameLabel">OrderedBlobVar.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBlobVar.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-byte:A-int-int-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
byte[] val,
int voff,
int vlen)</code>
-<div class="block">Write <code>val</code> into <code>dst</code>, respecting <code>offset</code> and <code>length</code>.</div>
+<div class="block">Write a subset of <code>val</code> to <code>dst</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedBlobVar.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBlobVar.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-byte:A-int-int-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
+<td class="colLast"><span class="typeNameLabel">RawBytesTerminated.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytesTerminated.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-byte:A-int-int-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
byte[] val,
int voff,
int vlen)</code>
-<div class="block">Write a subset of <code>val</code> to <code>dst</code>.</div>
+<div class="block">Write <code>val</code> into <code>dst</code>, respecting <code>offset</code> and <code>length</code>.</div>
</td>
</tr>
<tr class="altColor">
@@ -405,22 +405,22 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawInteger.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawInteger.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Integer-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
+<td class="colLast"><span class="typeNameLabel">OrderedInt32.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt32.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Integer-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> val)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedInt32.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt32.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Integer-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
+<td class="colLast"><span class="typeNameLabel">RawInteger.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawInteger.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Integer-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> val)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawLong.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawLong.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Long-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
+<td class="colLast"><span class="typeNameLabel">OrderedInt64.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt64.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Long-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a> val)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedInt64.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt64.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Long-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
+<td class="colLast"><span class="typeNameLabel">RawLong.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawLong.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Long-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a> val)</code> </td>
</tr>
<tr class="altColor">
@@ -445,33 +445,33 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedString.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.String-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
+<td class="colLast"><span class="typeNameLabel">RawString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawString.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.String-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> val)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawString.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.String-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
+<td class="colLast"><span class="typeNameLabel">OrderedString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedString.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.String-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> val)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">FixedLengthWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-T-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
+ <a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html" title="type parameter in FixedLengthWrapper">T</a> val)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
<td class="colLast"><span class="typeNameLabel">TerminatedWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-T-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
<a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html" title="type parameter in TerminatedWrapper">T</a> val)</code>
<div class="block">Write instance <code>val</code> into buffer <code>dst</code>.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><span class="typeNameLabel">DataType.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/DataType.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-T-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
<a href="../../../../../../org/apache/hadoop/hbase/types/DataType.html" title="type parameter in DataType">T</a> val)</code>
<div class="block">Write instance <code>val</code> into buffer <code>dst</code>.</div>
</td>
</tr>
-<tr class="altColor">
-<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">FixedLengthWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-T-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
- <a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html" title="type parameter in FixedLengthWrapper">T</a> val)</code> </td>
-</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><span class="typeNameLabel">OrderedInt8.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt8.html#encodeByte-org.apache.hadoop.hbase.util.PositionedByteRange-byte-">encodeByte</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> dst,
@@ -536,11 +536,13 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawLong.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawLong.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colLast"><span class="typeNameLabel">FixedLengthWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawByte.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawByte.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colLast"><span class="typeNameLabel">TerminatedWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code>
+<div class="block">Skip <code>src</code>'s position forward over one encoded value.</div>
+</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
@@ -548,47 +550,45 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawInteger.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawInteger.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colLast"><span class="typeNameLabel">RawByte.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawByte.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">TerminatedWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code>
-<div class="block">Skip <code>src</code>'s position forward over one encoded value.</div>
-</td>
+<td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colLast"><span class="typeNameLabel">RawFloat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawFloat.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedBytesBase.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBytesBase.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colLast"><span class="typeNameLabel">RawLong.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawLong.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">Struct.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Struct.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>int</code></td>
<td class="colLast"><span class="typeNameLabel">DataType.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/DataType.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code>
<div class="block">Skip <code>src</code>'s position forward over one encoded value.</div>
</td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">Struct.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Struct.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawDouble.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawDouble.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colLast"><span class="typeNameLabel">OrderedBytesBase.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBytesBase.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">FixedLengthWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colLast"><span class="typeNameLabel">RawDouble.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawDouble.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawShort.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawShort.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colLast"><span class="typeNameLabel">RawInteger.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawInteger.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawFloat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawFloat.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
+<td class="colLast"><span class="typeNameLabel">RawShort.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawShort.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a> src)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
@@ -661,11 +661,11 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#deepCopy--">deepCopy</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#deepCopy--">deepCopy</a></span>()</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#deepCopy--">deepCopy</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#deepCopy--">deepCopy</a></span>()</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -688,12 +688,12 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#get-int-byte:A-">get</a></span>(int index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#get-int-byte:A-">get</a></span>(int index,
byte[] dst)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#get-int-byte:A-">get</a></span>(int index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#get-int-byte:A-">get</a></span>(int index,
byte[] dst)</code> </td>
</tr>
<tr class="altColor">
@@ -705,14 +705,14 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#get-int-byte:A-int-int-">get</a></span>(int index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#get-int-byte:A-int-int-">get</a></span>(int index,
byte[] dst,
int offset,
int length)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#get-int-byte:A-int-int-">get</a></span>(int index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#get-int-byte:A-int-int-">get</a></span>(int index,
byte[] dst,
int offset,
int length)</code> </td>
@@ -725,11 +725,11 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-byte-">put</a></span>(byte val)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-byte-">put</a></span>(byte val)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-byte-">put</a></span>(byte val)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-byte-">put</a></span>(byte val)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -739,11 +739,11 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-byte:A-">put</a></span>(byte[] val)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-byte:A-">put</a></span>(byte[] val)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-byte:A-">put</a></span>(byte[] val)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-byte:A-">put</a></span>(byte[] val)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -755,13 +755,13 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-byte:A-int-int-">put</a></span>(byte[] val,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-byte:A-int-int-">put</a></span>(byte[] val,
int offset,
int length)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-byte:A-int-int-">put</a></span>(byte[] val,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-byte:A-int-int-">put</a></span>(byte[] val,
int offset,
int length)</code> </td>
</tr>
@@ -772,12 +772,12 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-int-byte-">put</a></span>(int index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-int-byte-">put</a></span>(int index,
byte val)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-int-byte-">put</a></span>(int index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-int-byte-">put</a></span>(int index,
byte val)</code> </td>
</tr>
<tr class="rowColor">
@@ -787,12 +787,12 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-int-byte:A-">put</a></span>(int index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-int-byte:A-">put</a></span>(int index,
byte[] val)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-int-byte:A-">put</a></span>(int index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-int-byte:A-">put</a></span>(int index,
byte[] val)</code> </td>
</tr>
<tr class="altColor">
@@ -804,14 +804,14 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-int-byte:A-int-int-">put</a></span>(int index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-int-byte:A-int-int-">put</a></span>(int index,
byte[] val,
int offset,
int length)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-int-byte:A-int-int-">put</a></span>(int index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-int-byte:A-int-int-">put</a></span>(int index,
byte[] val,
int offset,
int length)</code> </td>
@@ -824,11 +824,11 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putInt-int-">putInt</a></span>(int val)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putInt-int-">putInt</a></span>(int val)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putInt-int-">putInt</a></span>(int val)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putInt-int-">putInt</a></span>(int val)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -837,12 +837,12 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putInt-int-int-">putInt</a></span>(int index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putInt-int-int-">putInt</a></span>(int index,
int val)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putInt-int-int-">putInt</a></span>(int index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putInt-int-int-">putInt</a></span>(int index,
int val)</code> </td>
</tr>
<tr class="rowColor">
@@ -852,12 +852,12 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putLong-int-long-">putLong</a></span>(int index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putLong-int-long-">putLong</a></span>(int index,
long val)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putLong-int-long-">putLong</a></span>(int index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putLong-int-long-">putLong</a></span>(int index,
long val)</code> </td>
</tr>
<tr class="altColor">
@@ -868,11 +868,11 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putLong-long-">putLong</a></span>(long val)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putLong-long-">putLong</a></span>(long val)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putLong-long-">putLong</a></span>(long val)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putLong-long-">putLong</a></span>(long val)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -881,12 +881,12 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putShort-int-short-">putShort</a></span>(int index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putShort-int-short-">putShort</a></span>(int index,
short val)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putShort-int-short-">putShort</a></span>(int index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putShort-int-short-">putShort</a></span>(int index,
short val)</code> </td>
</tr>
<tr class="altColor">
@@ -897,11 +897,11 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putShort-short-">putShort</a></span>(short val)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putShort-short-">putShort</a></span>(short val)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putShort-short-">putShort</a></span>(short val)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putShort-short-">putShort</a></span>(short val)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -909,11 +909,11 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#set-byte:A-">set</a></span>(byte[] bytes)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#set-byte:A-">set</a></span>(byte[] bytes)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#set-byte:A-">set</a></span>(byte[] bytes)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#set-byte:A-">set</a></span>(byte[] bytes)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -923,13 +923,13 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#set-byte:A-int-int-">set</a></span>(byte[] bytes,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#set-byte:A-int-int-">set</a></span>(byte[] bytes,
int offset,
int length)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#set-byte:A-int-int-">set</a></span>(byte[] bytes,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#set-byte:A-int-int-">set</a></span>(byte[] bytes,
int offset,
int length)</code> </td>
</tr>
@@ -939,11 +939,11 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#set-int-">set</a></span>(int capacity)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#set-int-">set</a></span>(int capacity)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#set-int-">set</a></span>(int capacity)</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#set-int-">set</a></span>(int capacity)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -987,11 +987,11 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#shallowCopy--">shallowCopy</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#shallowCopy--">shallowCopy</a></span>()</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#shallowCopy--">shallowCopy</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#shallowCopy--">shallowCopy</a></span>()</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -1000,12 +1000,12 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#shallowCopySubRange-int-int-">shallowCopySubRange</a></span>(int innerOffset,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#shallowCopySubRange-int-int-">shallowCopySubRange</a></span>(int innerOffset,
int copyLength)</code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#shallowCopySubRange-int-int-">shallowCopySubRange</a></span>(int innerOffset,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#shallowCopySubRange-int-int-">shallowCopySubRange</a></span>(int innerOffset,
int copyLength)</code> </td>
</tr>
<tr class="rowColor">
@@ -1014,11 +1014,11 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#unset--">unset</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#unset--">unset</a></span>()</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#unset--">unset</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#unset--">unset</a></span>()</code> </td>
</tr>
</tbody>
</table>
diff --git a/apidocs/overview-tree.html b/apidocs/overview-tree.html
index d569b238724..6d839540c8f 100644
--- a/apidocs/overview-tree.html
+++ b/apidocs/overview-tree.html
@@ -534,12 +534,12 @@
<li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/TableInputFormat.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">TableInputFormat</span></a> (implements org.apache.hadoop.mapred.JobConfigurable)</li>
</ul>
</li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableMapReduceUtil</span></a></li>
<li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/TableMapReduceUtil.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">TableMapReduceUtil</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableMapReduceUtil</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">TableName</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>)</li>
<li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/TableRecordReader.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">TableRecordReader</span></a> (implements org.apache.hadoop.mapred.RecordReader<K,V>)</li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableRecordReaderImpl</span></a></li>
<li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">TableRecordReaderImpl</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableRecordReaderImpl</span></a></li>
<li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/TableSnapshotInputFormat.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">TableSnapshotInputFormat</span></a> (implements org.apache.hadoop.mapred.InputFormat<K,V>)
<ul>
<li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/MultiTableSnapshotInputFormat.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">MultiTableSnapshotInputFormat</span></a> (implements org.apache.hadoop.mapred.InputFormat<K,V>)</li>
@@ -951,32 +951,32 @@
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ServerType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ServerType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ServerType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ServerType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.security.<a href="org/apache/hadoop/hbase/client/security/SecurityCapability.html" title="enum in org.apache.hadoop.hbase.client.security"><span class="typeNameLink">SecurityCapability</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.compress.<a href="org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress"><span class="typeNameLink">Compression.Algorithm</span></a></li>
<li type="circle">org.apache.hadoop.hbase.io.encoding.<a href="org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding"><span class="typeNameLink">DataBlockEncoding</span></a></li>
<li type="circle">org.apache.hadoop.hbase.io.encoding.<a href="org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding"><span class="typeNameLink">IndexBlockEncoding</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.compress.<a href="org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress"><span class="typeNameLink">Compression.Algorithm</span></a></li>
</ul>
</li>
</ul>
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/util/Bytes.ByteArrayComparator.html b/apidocs/src-html/org/apache/hadoop/hbase/util/Bytes.ByteArrayComparator.html
index a6f66fed2df..651c12b7938 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/util/Bytes.ByteArrayComparator.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/util/Bytes.ByteArrayComparator.html
@@ -1187,1265 +1187,1358 @@
<span class="sourceLineNo">1179</span><a name="line.1179"></a>
<span class="sourceLineNo">1180</span> }<a name="line.1180"></a>
<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span> static Comparer<byte[]> lexicographicalComparerJavaImpl() {<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span> return LexicographicalComparerHolder.PureJavaComparer.INSTANCE;<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span> }<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span><a name="line.1185"></a>
-<span class="sourceLineNo">1186</span> static class ConverterHolder {<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span> static final String UNSAFE_CONVERTER_NAME =<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span> ConverterHolder.class.getName() + "$UnsafeConverter";<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span><a name="line.1189"></a>
-<span class="sourceLineNo">1190</span> static final Converter BEST_CONVERTER = getBestConverter();<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span> /**<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span> * Returns the Unsafe-using Converter, or falls back to the pure-Java implementation if unable<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span> * to do so.<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span> */<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span> static Converter getBestConverter() {<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span> try {<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span> Class<?> theClass = Class.forName(UNSAFE_CONVERTER_NAME);<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span><a name="line.1199"></a>
-<span class="sourceLineNo">1200</span> // yes, UnsafeComparer does implement Comparer<byte[]><a name="line.1200"></a>
-<span class="sourceLineNo">1201</span> @SuppressWarnings("unchecked")<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span> Converter converter = (Converter) theClass.getConstructor().newInstance();<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span> return converter;<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span> } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span> return PureJavaConverter.INSTANCE;<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span> }<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span> }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span> protected static final class PureJavaConverter extends Converter {<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span> static final PureJavaConverter INSTANCE = new PureJavaConverter();<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span><a name="line.1211"></a>
-<span class="sourceLineNo">1212</span> private PureJavaConverter() {<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span> }<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span> @Override<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span> long toLong(byte[] bytes, int offset, int length) {<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span> long l = 0;<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span> for (int i = offset; i < offset + length; i++) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span> l <<= 8;<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span> l ^= bytes[i] & 0xFF;<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span> }<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span> return l;<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span> }<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span><a name="line.1224"></a>
-<span class="sourceLineNo">1225</span> @Override<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span> int putLong(byte[] bytes, int offset, long val) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span> for (int i = offset + 7; i > offset; i--) {<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span> bytes[i] = (byte) val;<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span> val >>>= 8;<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span> }<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span> bytes[offset] = (byte) val;<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span> return offset + SIZEOF_LONG;<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span> }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span><a name="line.1234"></a>
-<span class="sourceLineNo">1235</span> @Override<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span> int toInt(byte[] bytes, int offset, int length) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span> int n = 0;<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span> for (int i = offset; i < (offset + length); i++) {<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span> n <<= 8;<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span> n ^= bytes[i] & 0xFF;<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span> }<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span> return n;<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span> }<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span><a name="line.1244"></a>
-<span class="sourceLineNo">1245</span> @Override<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span> int putInt(byte[] bytes, int offset, int val) {<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span> for (int i = offset + 3; i > offset; i--) {<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span> bytes[i] = (byte) val;<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span> val >>>= 8;<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span> }<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span> bytes[offset] = (byte) val;<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span> return offset + SIZEOF_INT;<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span> }<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span><a name="line.1254"></a>
-<span class="sourceLineNo">1255</span> @Override<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span> short toShort(byte[] bytes, int offset, int length) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span> short n = 0;<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span> n = (short) ((n ^ bytes[offset]) & 0xFF);<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span> n = (short) (n << 8);<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span> n ^= (short) (bytes[offset + 1] & 0xFF);<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span> return n;<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span> }<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span><a name="line.1263"></a>
-<span class="sourceLineNo">1264</span> @Override<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span> int putShort(byte[] bytes, int offset, short val) {<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span> bytes[offset + 1] = (byte) val;<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span> val >>= 8;<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span> bytes[offset] = (byte) val;<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span> return offset + SIZEOF_SHORT;<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span> }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span> }<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span><a name="line.1272"></a>
-<span class="sourceLineNo">1273</span> protected static final class UnsafeConverter extends Converter {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span><a name="line.1274"></a>
-<span class="sourceLineNo">1275</span> public UnsafeConverter() {<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span> }<a name="line.1276"></a>
+<span class="sourceLineNo">1182</span> static abstract class CommonPrefixer {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span> abstract int findCommonPrefix(byte[] left, int leftOffset, int leftLength, byte[] right,<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span> int rightOffset, int rightLength);<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span> }<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span><a name="line.1186"></a>
+<span class="sourceLineNo">1187</span> static Comparer<byte[]> lexicographicalComparerJavaImpl() {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span> return LexicographicalComparerHolder.PureJavaComparer.INSTANCE;<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span> }<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span><a name="line.1190"></a>
+<span class="sourceLineNo">1191</span> static class ConverterHolder {<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span> static final String UNSAFE_CONVERTER_NAME =<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span> ConverterHolder.class.getName() + "$UnsafeConverter";<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span><a name="line.1194"></a>
+<span class="sourceLineNo">1195</span> static final Converter BEST_CONVERTER = getBestConverter();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span><a name="line.1196"></a>
+<span class="sourceLineNo">1197</span> /**<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span> * Returns the Unsafe-using Converter, or falls back to the pure-Java implementation if unable<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span> * to do so.<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span> */<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span> static Converter getBestConverter() {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span> try {<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span> Class<?> theClass = Class.forName(UNSAFE_CONVERTER_NAME);<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span><a name="line.1204"></a>
+<span class="sourceLineNo">1205</span> // yes, UnsafeComparer does implement Comparer<byte[]><a name="line.1205"></a>
+<span class="sourceLineNo">1206</span> @SuppressWarnings("unchecked")<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span> Converter converter = (Converter) theClass.getConstructor().newInstance();<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span> return converter;<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span> } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span> return PureJavaConverter.INSTANCE;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span> }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span> }<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span><a name="line.1213"></a>
+<span class="sourceLineNo">1214</span> protected static final class PureJavaConverter extends Converter {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span> static final PureJavaConverter INSTANCE = new PureJavaConverter();<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span> private PureJavaConverter() {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span> }<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span><a name="line.1219"></a>
+<span class="sourceLineNo">1220</span> @Override<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span> long toLong(byte[] bytes, int offset, int length) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span> long l = 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span> for (int i = offset; i < offset + length; i++) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span> l <<= 8;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span> l ^= bytes[i] & 0xFF;<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span> }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span> return l;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span> }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span><a name="line.1229"></a>
+<span class="sourceLineNo">1230</span> @Override<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span> int putLong(byte[] bytes, int offset, long val) {<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span> for (int i = offset + 7; i > offset; i--) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span> bytes[i] = (byte) val;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span> val >>>= 8;<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span> }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span> bytes[offset] = (byte) val;<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span> return offset + SIZEOF_LONG;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span> }<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span><a name="line.1239"></a>
+<span class="sourceLineNo">1240</span> @Override<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span> int toInt(byte[] bytes, int offset, int length) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span> int n = 0;<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span> for (int i = offset; i < (offset + length); i++) {<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span> n <<= 8;<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span> n ^= bytes[i] & 0xFF;<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span> }<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span> return n;<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span> }<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span><a name="line.1249"></a>
+<span class="sourceLineNo">1250</span> @Override<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span> int putInt(byte[] bytes, int offset, int val) {<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span> for (int i = offset + 3; i > offset; i--) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span> bytes[i] = (byte) val;<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span> val >>>= 8;<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span> }<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span> bytes[offset] = (byte) val;<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span> return offset + SIZEOF_INT;<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span> }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span> @Override<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span> short toShort(byte[] bytes, int offset, int length) {<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span> short n = 0;<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span> n = (short) ((n ^ bytes[offset]) & 0xFF);<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span> n = (short) (n << 8);<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span> n ^= (short) (bytes[offset + 1] & 0xFF);<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span> return n;<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span> }<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span> @Override<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span> int putShort(byte[] bytes, int offset, short val) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span> bytes[offset + 1] = (byte) val;<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span> val >>= 8;<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span> bytes[offset] = (byte) val;<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span> return offset + SIZEOF_SHORT;<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span> }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span> }<a name="line.1276"></a>
<span class="sourceLineNo">1277</span><a name="line.1277"></a>
-<span class="sourceLineNo">1278</span> static {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span> if (!UNSAFE_UNALIGNED) {<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span> // It doesn't matter what we throw;<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span> // it's swallowed in getBestComparer().<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span> throw new Error();<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span> }<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span><a name="line.1284"></a>
-<span class="sourceLineNo">1285</span> // sanity check - this should never fail<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span> if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span> throw new AssertionError();<a name="line.1287"></a>
+<span class="sourceLineNo">1278</span> protected static final class UnsafeConverter extends Converter {<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span><a name="line.1279"></a>
+<span class="sourceLineNo">1280</span> public UnsafeConverter() {<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span> }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span> static {<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span> if (!UNSAFE_UNALIGNED) {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span> // It doesn't matter what we throw;<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span> // it's swallowed in getBestComparer().<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span> throw new Error();<a name="line.1287"></a>
<span class="sourceLineNo">1288</span> }<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span> }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span><a name="line.1290"></a>
-<span class="sourceLineNo">1291</span> @Override<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span> long toLong(byte[] bytes, int offset, int length) {<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span> return UnsafeAccess.toLong(bytes, offset);<a name="line.1293"></a>
+<span class="sourceLineNo">1289</span><a name="line.1289"></a>
+<span class="sourceLineNo">1290</span> // sanity check - this should never fail<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span> if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span> throw new AssertionError();<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span> }<a name="line.1293"></a>
<span class="sourceLineNo">1294</span> }<a name="line.1294"></a>
<span class="sourceLineNo">1295</span><a name="line.1295"></a>
<span class="sourceLineNo">1296</span> @Override<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span> int putLong(byte[] bytes, int offset, long val) {<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span> return UnsafeAccess.putLong(bytes, offset, val);<a name="line.1298"></a>
+<span class="sourceLineNo">1297</span> long toLong(byte[] bytes, int offset, int length) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span> return UnsafeAccess.toLong(bytes, offset);<a name="line.1298"></a>
<span class="sourceLineNo">1299</span> }<a name="line.1299"></a>
<span class="sourceLineNo">1300</span><a name="line.1300"></a>
<span class="sourceLineNo">1301</span> @Override<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span> int toInt(byte[] bytes, int offset, int length) {<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span> return UnsafeAccess.toInt(bytes, offset);<a name="line.1303"></a>
+<span class="sourceLineNo">1302</span> int putLong(byte[] bytes, int offset, long val) {<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span> return UnsafeAccess.putLong(bytes, offset, val);<a name="line.1303"></a>
<span class="sourceLineNo">1304</span> }<a name="line.1304"></a>
<span class="sourceLineNo">1305</span><a name="line.1305"></a>
<span class="sourceLineNo">1306</span> @Override<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span> int putInt(byte[] bytes, int offset, int val) {<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span> return UnsafeAccess.putInt(bytes, offset, val);<a name="line.1308"></a>
+<span class="sourceLineNo">1307</span> int toInt(byte[] bytes, int offset, int length) {<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span> return UnsafeAccess.toInt(bytes, offset);<a name="line.1308"></a>
<span class="sourceLineNo">1309</span> }<a name="line.1309"></a>
<span class="sourceLineNo">1310</span><a name="line.1310"></a>
<span class="sourceLineNo">1311</span> @Override<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span> short toShort(byte[] bytes, int offset, int length) {<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span> return UnsafeAccess.toShort(bytes, offset);<a name="line.1313"></a>
+<span class="sourceLineNo">1312</span> int putInt(byte[] bytes, int offset, int val) {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span> return UnsafeAccess.putInt(bytes, offset, val);<a name="line.1313"></a>
<span class="sourceLineNo">1314</span> }<a name="line.1314"></a>
<span class="sourceLineNo">1315</span><a name="line.1315"></a>
<span class="sourceLineNo">1316</span> @Override<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span> int putShort(byte[] bytes, int offset, short val) {<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span> return UnsafeAccess.putShort(bytes, offset, val);<a name="line.1318"></a>
+<span class="sourceLineNo">1317</span> short toShort(byte[] bytes, int offset, int length) {<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span> return UnsafeAccess.toShort(bytes, offset);<a name="line.1318"></a>
<span class="sourceLineNo">1319</span> }<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span> }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span> }<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span><a name="line.1322"></a>
-<span class="sourceLineNo">1323</span> /**<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span> * Provides a lexicographical comparer implementation; either a Java implementation or a faster<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span> * implementation based on {@code Unsafe}.<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span> * <p><a name="line.1326"></a>
-<span class="sourceLineNo">1327</span> * Uses reflection to gracefully fall back to the Java implementation if {@code Unsafe} isn't<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span> * available.<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span> */<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span> static class LexicographicalComparerHolder {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span> static final String UNSAFE_COMPARER_NAME =<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span> LexicographicalComparerHolder.class.getName() + "$UnsafeComparer";<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span> static final Comparer<byte[]> BEST_COMPARER = getBestComparer();<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span><a name="line.1335"></a>
-<span class="sourceLineNo">1336</span> /**<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span> * Returns the Unsafe-using Comparer, or falls back to the pure-Java implementation if unable to<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span> * do so.<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span> */<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span> static Comparer<byte[]> getBestComparer() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span> try {<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span> Class<?> theClass = Class.forName(UNSAFE_COMPARER_NAME);<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span> // yes, UnsafeComparer does implement Comparer<byte[]><a name="line.1344"></a>
-<span class="sourceLineNo">1345</span> @SuppressWarnings("unchecked")<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span> Comparer<byte[]> comparer = (Comparer<byte[]>) theClass.getEnumConstants()[0];<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span> return comparer;<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span> } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span> return lexicographicalComparerJavaImpl();<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span> }<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span> }<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span><a name="line.1352"></a>
-<span class="sourceLineNo">1353</span> enum PureJavaComparer implements Comparer<byte[]> {<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span> INSTANCE;<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span><a name="line.1355"></a>
-<span class="sourceLineNo">1356</span> @Override<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span> public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2,<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span> int length2) {<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span> // Short circuit equal case<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span> if (buffer1 == buffer2 && offset1 == offset2 && length1 == length2) {<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span> return 0;<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span> }<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span> // Bring WritableComparator code local<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span> int end1 = offset1 + length1;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span> int end2 = offset2 + length2;<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span> for (int i = offset1, j = offset2; i < end1 && j < end2; i++, j++) {<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span> int a = (buffer1[i] & 0xff);<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span> int b = (buffer2[j] & 0xff);<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span> if (a != b) {<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span> return a - b;<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span> }<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span> }<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span> return length1 - length2;<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span> }<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span> }<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span><a name="line.1376"></a>
-<span class="sourceLineNo">1377</span> enum UnsafeComparer implements Comparer<byte[]> {<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span> INSTANCE;<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span><a name="line.1379"></a>
-<span class="sourceLineNo">1380</span> static {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span> if (!UNSAFE_UNALIGNED) {<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span> // It doesn't matter what we throw;<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span> // it's swallowed in getBestComparer().<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span> throw new Error();<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span> }<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span><a name="line.1386"></a>
-<span class="sourceLineNo">1387</span> // sanity check - this should never fail<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span> if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span> throw new AssertionError();<a name="line.1389"></a>
+<span class="sourceLineNo">1320</span><a name="line.1320"></a>
+<span class="sourceLineNo">1321</span> @Override<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span> int putShort(byte[] bytes, int offset, short val) {<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span> return UnsafeAccess.putShort(bytes, offset, val);<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span> }<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span> }<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span> }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span> /**<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span> * Provides a lexicographical comparer implementation; either a Java implementation or a faster<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span> * implementation based on {@code Unsafe}.<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span> * <p><a name="line.1331"></a>
+<span class="sourceLineNo">1332</span> * Uses reflection to gracefully fall back to the Java implementation if {@code Unsafe} isn't<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span> * available.<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span> */<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span> static class LexicographicalComparerHolder {<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span> static final String UNSAFE_COMPARER_NAME =<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span> LexicographicalComparerHolder.class.getName() + "$UnsafeComparer";<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span><a name="line.1338"></a>
+<span class="sourceLineNo">1339</span> static final Comparer<byte[]> BEST_COMPARER = getBestComparer();<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span><a name="line.1340"></a>
+<span class="sourceLineNo">1341</span> /**<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span> * Returns the Unsafe-using Comparer, or falls back to the pure-Java implementation if unable to<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span> * do so.<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span> */<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span> static Comparer<byte[]> getBestComparer() {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span> try {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span> Class<?> theClass = Class.forName(UNSAFE_COMPARER_NAME);<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span><a name="line.1348"></a>
+<span class="sourceLineNo">1349</span> // yes, UnsafeComparer does implement Comparer<byte[]><a name="line.1349"></a>
+<span class="sourceLineNo">1350</span> @SuppressWarnings("unchecked")<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span> Comparer<byte[]> comparer = (Comparer<byte[]>) theClass.getEnumConstants()[0];<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span> return comparer;<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span> } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span> return lexicographicalComparerJavaImpl();<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span> }<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span> }<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span><a name="line.1357"></a>
+<span class="sourceLineNo">1358</span> enum PureJavaComparer implements Comparer<byte[]> {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span> INSTANCE;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span><a name="line.1360"></a>
+<span class="sourceLineNo">1361</span> @Override<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span> public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2,<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span> int length2) {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span> // Short circuit equal case<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span> if (buffer1 == buffer2 && offset1 == offset2 && length1 == length2) {<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span> return 0;<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span> }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span> // Bring WritableComparator code local<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span> int end1 = offset1 + length1;<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span> int end2 = offset2 + length2;<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span> for (int i = offset1, j = offset2; i < end1 && j < end2; i++, j++) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span> int a = (buffer1[i] & 0xff);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span> int b = (buffer2[j] & 0xff);<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span> if (a != b) {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span> return a - b;<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span> }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span> }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span> return length1 - length2;<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span> }<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span> }<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span><a name="line.1381"></a>
+<span class="sourceLineNo">1382</span> enum UnsafeComparer implements Comparer<byte[]> {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span> INSTANCE;<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span><a name="line.1384"></a>
+<span class="sourceLineNo">1385</span> static {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span> if (!UNSAFE_UNALIGNED) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span> // It doesn't matter what we throw;<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span> // it's swallowed in getBestComparer().<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span> throw new Error();<a name="line.1389"></a>
<span class="sourceLineNo">1390</span> }<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span> }<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span><a name="line.1392"></a>
-<span class="sourceLineNo">1393</span> /**<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span> * Lexicographically compare two arrays.<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span> * @param buffer1 left operand<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span> * @param buffer2 right operand<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span> * @param offset1 Where to start comparing in the left buffer<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span> * @param offset2 Where to start comparing in the right buffer<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span> * @param length1 How much to compare from the left buffer<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span> * @param length2 How much to compare from the right buffer<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span> * @return 0 if equal, < 0 if left is less than right, etc.<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span> */<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span> @Override<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span> public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2,<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span> int length2) {<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span><a name="line.1406"></a>
-<span class="sourceLineNo">1407</span> // Short circuit equal case<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span> if (buffer1 == buffer2 && offset1 == offset2 && length1 == length2) {<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span> return 0;<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span> }<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span> final int stride = 8;<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span> final int minLength = Math.min(length1, length2);<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span> int strideLimit = minLength & ~(stride - 1);<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span> final long offset1Adj = offset1 + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span> final long offset2Adj = offset2 + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span> int i;<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span><a name="line.1417"></a>
-<span class="sourceLineNo">1418</span> /*<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span> * Compare 8 bytes at a time. Benchmarking on x86 shows a stride of 8 bytes is no slower<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span> * than 4 bytes even on 32-bit. On the other hand, it is substantially faster on 64-bit.<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span> */<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span> for (i = 0; i < strideLimit; i += stride) {<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span> long lw = HBasePlatformDependent.getLong(buffer1, offset1Adj + i);<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span> long rw = HBasePlatformDependent.getLong(buffer2, offset2Adj + i);<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span> if (lw != rw) {<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span> if (!UnsafeAccess.LITTLE_ENDIAN) {<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span> return ((lw + Long.MIN_VALUE) < (rw + Long.MIN_VALUE)) ? -1 : 1;<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span> }<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span><a name="line.1429"></a>
-<span class="sourceLineNo">1430</span> /*<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span> * We want to compare only the first index where left[index] != right[index]. This<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span> * corresponds to the least significant nonzero byte in lw ^ rw, since lw and rw are<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span> * little-endian. Long.numberOfTrailingZeros(diff) tells us the least significant<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span> * nonzero bit, and zeroing out the first three bits of L.nTZ gives us the shift to get<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span> * that least significant nonzero byte. This comparison logic is based on UnsignedBytes<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span> * comparator from guava v21<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span> */<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span> int n = Long.numberOfTrailingZeros(lw ^ rw) & ~0x7;<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span> return ((int) ((lw >>> n) & 0xFF)) - ((int) ((rw >>> n) & 0xFF));<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span> }<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span> }<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span><a name="line.1442"></a>
-<span class="sourceLineNo">1443</span> // The epilogue to cover the last (minLength % stride) elements.<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span> for (; i < minLength; i++) {<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span> int a = (buffer1[offset1 + i] & 0xFF);<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span> int b = (buffer2[offset2 + i] & 0xFF);<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span> if (a != b) {<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span> return a - b;<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span> }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span> }<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span> return length1 - length2;<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span> }<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span> }<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span> }<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span><a name="line.1455"></a>
-<span class="sourceLineNo">1456</span> /**<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span> * Lexicographically determine the equality of two arrays.<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span> * @param left left operand<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span> * @param right right operand<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span> * @return True if equal<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span> */<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span> public static boolean equals(final byte[] left, final byte[] right) {<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span> // Could use Arrays.equals?<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span> // noinspection SimplifiableConditionalExpression<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span> if (left == right) return true;<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span> if (left == null || right == null) return false;<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span> if (left.length != right.length) return false;<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span> if (left.length == 0) return true;<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span><a name="line.1469"></a>
-<span class="sourceLineNo">1470</span> // Since we're often comparing adjacent sorted data,<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span> // it's usual to have equal arrays except for the very last byte<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span> // so check that first<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span> if (left[left.length - 1] != right[right.length - 1]) return false;<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span><a name="line.1474"></a>
-<span class="sourceLineNo">1475</span> return compareTo(left, right) == 0;<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span> }<a name="line.1476"></a>
+<span class="sourceLineNo">1391</span><a name="line.1391"></a>
+<span class="sourceLineNo">1392</span> // sanity check - this should never fail<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span> if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span> throw new AssertionError();<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span> }<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span> }<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span><a name="line.1397"></a>
+<span class="sourceLineNo">1398</span> /**<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span> * Lexicographically compare two arrays.<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span> * @param buffer1 left operand<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span> * @param buffer2 right operand<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span> * @param offset1 Where to start comparing in the left buffer<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span> * @param offset2 Where to start comparing in the right buffer<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span> * @param length1 How much to compare from the left buffer<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span> * @param length2 How much to compare from the right buffer<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span> * @return 0 if equal, < 0 if left is less than right, etc.<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span> */<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span> @Override<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span> public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2,<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span> int length2) {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span><a name="line.1411"></a>
+<span class="sourceLineNo">1412</span> // Short circuit equal case<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span> if (buffer1 == buffer2 && offset1 == offset2 && length1 == length2) {<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span> return 0;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span> }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span> final int stride = 8;<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span> final int minLength = Math.min(length1, length2);<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span> int strideLimit = minLength & ~(stride - 1);<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span> final long offset1Adj = offset1 + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span> final long offset2Adj = offset2 + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span> int i;<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span><a name="line.1422"></a>
+<span class="sourceLineNo">1423</span> /*<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span> * Compare 8 bytes at a time. Benchmarking on x86 shows a stride of 8 bytes is no slower<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span> * than 4 bytes even on 32-bit. On the other hand, it is substantially faster on 64-bit.<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span> */<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span> for (i = 0; i < strideLimit; i += stride) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span> long lw = HBasePlatformDependent.getLong(buffer1, offset1Adj + i);<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span> long rw = HBasePlatformDependent.getLong(buffer2, offset2Adj + i);<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span> if (lw != rw) {<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span> if (!UnsafeAccess.LITTLE_ENDIAN) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span> return ((lw + Long.MIN_VALUE) < (rw + Long.MIN_VALUE)) ? -1 : 1;<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span> }<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span><a name="line.1434"></a>
+<span class="sourceLineNo">1435</span> /*<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span> * We want to compare only the first index where left[index] != right[index]. This<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span> * corresponds to the least significant nonzero byte in lw ^ rw, since lw and rw are<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span> * little-endian. Long.numberOfTrailingZeros(diff) tells us the least significant<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span> * nonzero bit, and zeroing out the first three bits of L.nTZ gives us the shift to get<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span> * that least significant nonzero byte. This comparison logic is based on UnsignedBytes<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span> * comparator from guava v21<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span> */<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span> int n = Long.numberOfTrailingZeros(lw ^ rw) & ~0x7;<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span> return ((int) ((lw >>> n) & 0xFF)) - ((int) ((rw >>> n) & 0xFF));<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span> }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span> }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span><a name="line.1447"></a>
+<span class="sourceLineNo">1448</span> // The epilogue to cover the last (minLength % stride) elements.<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span> for (; i < minLength; i++) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span> int a = (buffer1[offset1 + i] & 0xFF);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span> int b = (buffer2[offset2 + i] & 0xFF);<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span> if (a != b) {<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span> return a - b;<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span> }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span> }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span> return length1 - length2;<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span> }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span> }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span> }<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span><a name="line.1460"></a>
+<span class="sourceLineNo">1461</span> static class CommonPrefixerHolder {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span> static final String UNSAFE_COMMON_PREFIXER_NAME =<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span> CommonPrefixerHolder.class.getName() + "$UnsafeCommonPrefixer";<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span><a name="line.1464"></a>
+<span class="sourceLineNo">1465</span> static final CommonPrefixer BEST_COMMON_PREFIXER = getBestCommonPrefixer();<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span><a name="line.1466"></a>
+<span class="sourceLineNo">1467</span> static CommonPrefixer getBestCommonPrefixer() {<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span> try {<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span> Class<? extends CommonPrefixer> theClass =<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span> Class.forName(UNSAFE_COMMON_PREFIXER_NAME).asSubclass(CommonPrefixer.class);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span><a name="line.1471"></a>
+<span class="sourceLineNo">1472</span> return theClass.getConstructor().newInstance();<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span> } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span> return CommonPrefixerHolder.PureJavaCommonPrefixer.INSTANCE;<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span> }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span> }<a name="line.1476"></a>
<span class="sourceLineNo">1477</span><a name="line.1477"></a>
-<span class="sourceLineNo">1478</span> /**<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span> * Lexicographically determine the equality of two arrays.<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span> * @param left left operand<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span> * @param leftOffset offset into left operand<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span> * @param leftLen length of left operand<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span> * @param right right operand<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span> * @param rightOffset offset into right operand<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span> * @param rightLen length of right operand<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span> * @return True if equal<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span> */<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span> public static boolean equals(final byte[] left, int leftOffset, int leftLen, final byte[] right,<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span> int rightOffset, int rightLen) {<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span> // short circuit case<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span> if (left == right && leftOffset == rightOffset && leftLen == rightLen) {<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span> return true;<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span> }<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span> // different lengths fast check<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span> if (leftLen != rightLen) {<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span> return false;<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span> }<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span> if (leftLen == 0) {<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span> return true;<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span> }<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span><a name="line.1501"></a>
-<span class="sourceLineNo">1502</span> // Since we're often comparing adjacent sorted data,<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span> // it's usual to have equal arrays except for the very last byte<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span> // so check that first<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span> if (left[leftOffset + leftLen - 1] != right[rightOffset + rightLen - 1]) return false;<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span><a name="line.1506"></a>
-<span class="sourceLineNo">1507</span> return LexicographicalComparerHolder.BEST_COMPARER.compareTo(left, leftOffset, leftLen, right,<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span> rightOffset, rightLen) == 0;<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span> }<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span><a name="line.1510"></a>
-<span class="sourceLineNo">1511</span> /**<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span> * Lexicographically determine the equality of two byte[], one as ByteBuffer.<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span> * @param a left operand<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span> * @param buf right operand<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span> * @return True if equal<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span> */<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span> public static boolean equals(byte[] a, ByteBuffer buf) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span> if (a == null) return buf == null;<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span> if (buf == null) return false;<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span> if (a.length != buf.remaining()) return false;<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span><a name="line.1521"></a>
-<span class="sourceLineNo">1522</span> // Thou shalt not modify the original byte buffer in what should be read only operations.<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span> ByteBuffer b = buf.duplicate();<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span> for (byte anA : a) {<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span> if (anA != b.get()) {<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span> return false;<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span> }<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span> }<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span> return true;<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span> }<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span><a name="line.1531"></a>
-<span class="sourceLineNo">1532</span> /**<a name="line.1532"></a>
-<span class="sourceLineNo">1533</span> * Return true if the byte array on the right is a prefix of the byte array on the left.<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span> */<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span> public static boolean startsWith(byte[] bytes, byte[] prefix) {<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span> return bytes != null && prefix != null && bytes.length >= prefix.length<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span> && LexicographicalComparerHolder.BEST_COMPARER.compareTo(bytes, 0, prefix.length, prefix, 0,<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span> prefix.length) == 0;<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span> }<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span><a name="line.1540"></a>
-<span class="sourceLineNo">1541</span> /**<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span> * Calculate a hash code from a given byte array.<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span> * @param b bytes to hash<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span> * @return Runs {@link WritableComparator#hashBytes(byte[], int)} on the passed in array. This<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span> * method is what {@link org.apache.hadoop.io.Text} use calculating hash code.<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span> */<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span> public static int hashCode(final byte[] b) {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span> return hashCode(b, b.length);<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span> }<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span><a name="line.1550"></a>
-<span class="sourceLineNo">1551</span> /**<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span> * Calculate a hash code from a given byte array.<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span> * @param b value<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span> * @param length length of the value<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span> * @return Runs {@link WritableComparator#hashBytes(byte[], int)} on the passed in array. This<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span> * method is what {@link org.apache.hadoop.io.Text} use calculating hash code.<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span> */<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span> public static int hashCode(final byte[] b, final int length) {<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span> return WritableComparator.hashBytes(b, length);<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span> }<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span><a name="line.1561"></a>
-<span class="sourceLineNo">1562</span> /**<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span> * Calculate a hash code from a given byte array suitable for use as a key in maps.<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span> * @param b bytes to hash<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span> * @return A hash of <code>b</code> as an Integer that can be used as key in Maps.<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span> */<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span> public static Integer mapKey(final byte[] b) {<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span> return hashCode(b);<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span> }<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span><a name="line.1570"></a>
-<span class="sourceLineNo">1571</span> /**<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span> * Calculate a hash code from a given byte array suitable for use as a key in maps.<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span> * @param b bytes to hash<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span> * @param length length to hash<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span> * @return A hash of <code>b</code> as an Integer that can be used as key in Maps.<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span> */<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span> public static Integer mapKey(final byte[] b, final int length) {<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span> return hashCode(b, length);<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span> }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span> /**<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span> * Concatenate byte arrays.<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span> * @param a lower half<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span> * @param b upper half<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span> * @return New array that has a in lower half and b in upper half.<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span> */<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span> public static byte[] add(final byte[] a, final byte[] b) {<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span> return add(a, b, EMPTY_BYTE_ARRAY);<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span> }<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span><a name="line.1590"></a>
-<span class="sourceLineNo">1591</span> /**<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span> * Concatenate byte arrays.<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span> * @param a first third<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span> * @param b second third<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span> * @param c third third<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span> * @return New array made from a, b and c<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span> */<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span> public static byte[] add(final byte[] a, final byte[] b, final byte[] c) {<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span> byte[] result = new byte[a.length + b.length + c.length];<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span> System.arraycopy(a, 0, result, 0, a.length);<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span> System.arraycopy(b, 0, result, a.length, b.length);<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span> System.arraycopy(c, 0, result, a.length + b.length, c.length);<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span> return result;<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span> }<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span><a name="line.1605"></a>
-<span class="sourceLineNo">1606</span> /**<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span> * Concatenate byte arrays.<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span> * @param arrays all the arrays to concatenate together.<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span> * @return New array made from the concatenation of the given arrays.<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span> */<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span> public static byte[] add(final byte[][] arrays) {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span> int length = 0;<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span> for (int i = 0; i < arrays.length; i++) {<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span> length += arrays[i].length;<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span> }<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span> byte[] result = new byte[length];<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span> int index = 0;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span> for (int i = 0; i < arrays.length; i++) {<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span> System.arraycopy(arrays[i], 0, result, index, arrays[i].length);<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span> index += arrays[i].length;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span> }<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span> return result;<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span> }<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span><a name="line.1624"></a>
-<span class="sourceLineNo">1625</span> /**<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span> * Make a new byte array from a subset of bytes at the head of another.<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span> * @param a array<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span> * @param length amount of bytes to grab<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span> * @return First <code>length</code> bytes from <code>a</code><a name="line.1629"></a>
-<span class="sourceLineNo">1630</span> */<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span> public static byte[] head(final byte[] a, final int length) {<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span> if (a.length < length) {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span> return null;<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span> }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span> byte[] result = new byte[length];<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span> System.arraycopy(a, 0, result, 0, length);<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span> return result;<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span> }<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span><a name="line.1639"></a>
-<span class="sourceLineNo">1640</span> /**<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span> * Make a new byte array from a subset of bytes at the tail of another.<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span> * @param a array<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span> * @param length amount of bytes to snarf<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span> * @return Last <code>length</code> bytes from <code>a</code><a name="line.1644"></a>
-<span class="sourceLineNo">1645</span> */<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span> public static byte[] tail(final byte[] a, final int length) {<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span> if (a.length < length) {<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span> return null;<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span> }<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span> byte[] result = new byte[length];<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span> System.arraycopy(a, a.length - length, result, 0, length);<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span> return result;<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span> }<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span><a name="line.1654"></a>
-<span class="sourceLineNo">1655</span> /**<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span> * Make a new byte array from a subset of bytes at the head of another, zero padded as desired.<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span> * @param a array<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span> * @param length new array size<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span> * @return Value in <code>a</code> plus <code>length</code> prepended 0 bytes<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span> */<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span> public static byte[] padHead(final byte[] a, final int length) {<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span> byte[] padding = new byte[length];<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span> for (int i = 0; i < length; i++) {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span> padding[i] = 0;<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span> }<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span> return add(padding, a);<a name="line.1666"></a>
+<span class="sourceLineNo">1478</span> static final class PureJavaCommonPrefixer extends CommonPrefixer {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span> static final PureJavaCommonPrefixer INSTANCE = new PureJavaCommonPrefixer();<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span><a name="line.1480"></a>
+<span class="sourceLineNo">1481</span> private PureJavaCommonPrefixer() {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span> }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span><a name="line.1483"></a>
+<span class="sourceLineNo">1484</span> @Override<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span> public int findCommonPrefix(byte[] left, int leftOffset, int leftLength, byte[] right,<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span> int rightOffset, int rightLength) {<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span> int length = Math.min(leftLength, rightLength);<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span> int result = 0;<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span><a name="line.1489"></a>
+<span class="sourceLineNo">1490</span> while (result < length && left[leftOffset + result] == right[rightOffset + result]) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span> result++;<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span> }<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span> return result;<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span> }<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span> }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span><a name="line.1496"></a>
+<span class="sourceLineNo">1497</span> static final class UnsafeCommonPrefixer extends CommonPrefixer {<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span><a name="line.1498"></a>
+<span class="sourceLineNo">1499</span> static {<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span> if (!UNSAFE_UNALIGNED) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span> throw new Error();<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span> }<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span><a name="line.1503"></a>
+<span class="sourceLineNo">1504</span> // sanity check - this should never fail<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span> if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span> throw new AssertionError();<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span> }<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span> }<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span><a name="line.1509"></a>
+<span class="sourceLineNo">1510</span> public UnsafeCommonPrefixer() {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span> }<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span><a name="line.1512"></a>
+<span class="sourceLineNo">1513</span> @Override<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span> public int findCommonPrefix(byte[] left, int leftOffset, int leftLength, byte[] right,<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span> int rightOffset, int rightLength) {<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span> final int stride = 8;<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span> final int minLength = Math.min(leftLength, rightLength);<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span> int strideLimit = minLength & ~(stride - 1);<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span> final long leftOffsetAdj = leftOffset + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span> final long rightOffsetAdj = rightOffset + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span> int result = 0;<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span> int i;<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span> for (i = 0; i < strideLimit; i += stride) {<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span> long lw = HBasePlatformDependent.getLong(left, leftOffsetAdj + i);<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span> long rw = HBasePlatformDependent.getLong(right, rightOffsetAdj + i);<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span> if (lw != rw) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span> if (!UnsafeAccess.LITTLE_ENDIAN) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span> return result + (Long.numberOfLeadingZeros(lw ^ rw) / Bytes.SIZEOF_LONG);<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span> } else {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span> return result + (Long.numberOfTrailingZeros(lw ^ rw) / Bytes.SIZEOF_LONG);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span> }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span> } else {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span> result += Bytes.SIZEOF_LONG;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span> }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span> }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span><a name="line.1537"></a>
+<span class="sourceLineNo">1538</span> // The epilogue to cover the last (minLength % stride) elements.<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span> for (; i < minLength; i++) {<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span> int il = (left[leftOffset + i]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span> int ir = (right[rightOffset + i]);<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span> if (il != ir) {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span> return result;<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span> } else {<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span> result++;<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span> }<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span> }<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span><a name="line.1548"></a>
+<span class="sourceLineNo">1549</span> return result;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span> }<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span> }<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span> }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span><a name="line.1553"></a>
+<span class="sourceLineNo">1554</span> /**<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span> * Lexicographically determine the equality of two arrays.<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span> * @param left left operand<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span> * @param right right operand<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span> * @return True if equal<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span> */<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span> public static boolean equals(final byte[] left, final byte[] right) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span> // Could use Arrays.equals?<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span> // noinspection SimplifiableConditionalExpression<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span> if (left == right) return true;<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span> if (left == null || right == null) return false;<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span> if (left.length != right.length) return false;<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span> if (left.length == 0) return true;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span><a name="line.1567"></a>
+<span class="sourceLineNo">1568</span> // Since we're often comparing adjacent sorted data,<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span> // it's usual to have equal arrays except for the very last byte<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span> // so check that first<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span> if (left[left.length - 1] != right[right.length - 1]) return false;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span><a name="line.1572"></a>
+<span class="sourceLineNo">1573</span> return compareTo(left, right) == 0;<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span> }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span><a name="line.1575"></a>
+<span class="sourceLineNo">1576</span> /**<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span> * Lexicographically determine the equality of two arrays.<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span> * @param left left operand<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span> * @param leftOffset offset into left operand<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span> * @param leftLen length of left operand<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span> * @param right right operand<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span> * @param rightOffset offset into right operand<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span> * @param rightLen length of right operand<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span> * @return True if equal<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span> */<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span> public static boolean equals(final byte[] left, int leftOffset, int leftLen, final byte[] right,<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span> int rightOffset, int rightLen) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span> // short circuit case<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span> if (left == right && leftOffset == rightOffset && leftLen == rightLen) {<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span> return true;<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span> }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span> // different lengths fast check<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span> if (leftLen != rightLen) {<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span> return false;<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span> }<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span> if (leftLen == 0) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span> return true;<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span> }<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span><a name="line.1599"></a>
+<span class="sourceLineNo">1600</span> // Since we're often comparing adjacent sorted data,<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span> // it's usual to have equal arrays except for the very last byte<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span> // so check that first<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span> if (left[leftOffset + leftLen - 1] != right[rightOffset + rightLen - 1]) return false;<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span><a name="line.1604"></a>
+<span class="sourceLineNo">1605</span> return LexicographicalComparerHolder.BEST_COMPARER.compareTo(left, leftOffset, leftLen, right,<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span> rightOffset, rightLen) == 0;<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span> }<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span><a name="line.1608"></a>
+<span class="sourceLineNo">1609</span> /**<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span> * Lexicographically determine the equality of two byte[], one as ByteBuffer.<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span> * @param a left operand<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span> * @param buf right operand<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span> * @return True if equal<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span> */<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span> public static boolean equals(byte[] a, ByteBuffer buf) {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span> if (a == null) return buf == null;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span> if (buf == null) return false;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span> if (a.length != buf.remaining()) return false;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span><a name="line.1619"></a>
+<span class="sourceLineNo">1620</span> // Thou shalt not modify the original byte buffer in what should be read only operations.<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span> ByteBuffer b = buf.duplicate();<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span> for (byte anA : a) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span> if (anA != b.get()) {<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span> return false;<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span> }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span> }<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span> return true;<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span> }<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span><a name="line.1629"></a>
+<span class="sourceLineNo">1630</span> /**<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span> * Return true if the byte array on the right is a prefix of the byte array on the left.<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span> */<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span> public static boolean startsWith(byte[] bytes, byte[] prefix) {<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span> return bytes != null && prefix != null && bytes.length >= prefix.length<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span> && LexicographicalComparerHolder.BEST_COMPARER.compareTo(bytes, 0, prefix.length, prefix, 0,<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span> prefix.length) == 0;<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span> }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span><a name="line.1638"></a>
+<span class="sourceLineNo">1639</span> /**<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span> * Calculate a hash code from a given byte array.<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span> * @param b bytes to hash<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span> * @return Runs {@link WritableComparator#hashBytes(byte[], int)} on the passed in array. This<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span> * method is what {@link org.apache.hadoop.io.Text} use calculating hash code.<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span> */<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span> public static int hashCode(final byte[] b) {<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span> return hashCode(b, b.length);<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span> }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span><a name="line.1648"></a>
+<span class="sourceLineNo">1649</span> /**<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span> * Calculate a hash code from a given byte array.<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span> * @param b value<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span> * @param length length of the value<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span> * @return Runs {@link WritableComparator#hashBytes(byte[], int)} on the passed in array. This<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span> * method is what {@link org.apache.hadoop.io.Text} use calculating hash code.<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span> */<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span> public static int hashCode(final byte[] b, final int length) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span> return WritableComparator.hashBytes(b, length);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span> }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span><a name="line.1659"></a>
+<span class="sourceLineNo">1660</span> /**<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span> * Calculate a hash code from a given byte array suitable for use as a key in maps.<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span> * @param b bytes to hash<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span> * @return A hash of <code>b</code> as an Integer that can be used as key in Maps.<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span> */<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span> public static Integer mapKey(final byte[] b) {<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span> return hashCode(b);<a name="line.1666"></a>
<span class="sourceLineNo">1667</span> }<a name="line.1667"></a>
<span class="sourceLineNo">1668</span><a name="line.1668"></a>
<span class="sourceLineNo">1669</span> /**<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span> * Make a new byte array from a subset of bytes at the tail of another, zero padded as desired.<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span> * @param a array<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span> * @param length new array size<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span> * @return Value in <code>a</code> plus <code>length</code> appended 0 bytes<a name="line.1673"></a>
+<span class="sourceLineNo">1670</span> * Calculate a hash code from a given byte array suitable for use as a key in maps.<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span> * @param b bytes to hash<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span> * @param length length to hash<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span> * @return A hash of <code>b</code> as an Integer that can be used as key in Maps.<a name="line.1673"></a>
<span class="sourceLineNo">1674</span> */<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span> public static byte[] padTail(final byte[] a, final int length) {<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span> byte[] padding = new byte[length];<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span> for (int i = 0; i < length; i++) {<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span> padding[i] = 0;<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span> }<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span> return add(a, padding);<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span> }<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span><a name="line.1682"></a>
-<span class="sourceLineNo">1683</span> /**<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span> * Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span> * ranges for MapReduce jobs.<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span> * @param a Beginning of range<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span> * @param b End of range<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span> * @param num Number of times to split range. Pass 1 if you want to split the range in two; i.e.<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span> * one split.<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span> * @return Array of dividing values<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span> */<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span> public static byte[][] split(final byte[] a, final byte[] b, final int num) {<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span> return split(a, b, false, num);<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span> }<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span><a name="line.1695"></a>
-<span class="sourceLineNo">1696</span> /**<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span> * Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span> * ranges for MapReduce jobs.<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span> * @param a Beginning of range<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span> * @param b End of range<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span> * @param inclusive Whether the end of range is prefix-inclusive or is considered an exclusive<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span> * boundary. Automatic splits are generally exclusive and manual splits with an<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span> * explicit range utilize an inclusive end of range.<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span> * @param num Number of times to split range. Pass 1 if you want to split the range in two;<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span> * i.e. one split.<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span> * @return Array of dividing values<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span> */<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span> public static byte[][] split(final byte[] a, final byte[] b, boolean inclusive, final int num) {<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span> byte[][] ret = new byte[num + 2][];<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span> int i = 0;<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span> Iterable<byte[]> iter = iterateOnSplits(a, b, inclusive, num);<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span> if (iter == null) return null;<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span> for (byte[] elem : iter) {<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span> ret[i++] = elem;<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span> }<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span> return ret;<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span> }<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span><a name="line.1718"></a>
-<span class="sourceLineNo">1719</span> /**<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span> * Iterate over keys within the passed range, splitting at an [a,b) boundary.<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span> */<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span> public static Iterable<byte[]> iterateOnSplits(final byte[] a, final byte[] b, final int num) {<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span> return iterateOnSplits(a, b, false, num);<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span> }<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span><a name="line.1725"></a>
-<span class="sourceLineNo">1726</span> /**<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span> * Iterate over keys within the passed range.<a name="line.1727"></a>
+<span class="sourceLineNo">1675</span> public static Integer mapKey(final byte[] b, final int length) {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span> return hashCode(b, length);<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span> }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span><a name="line.1678"></a>
+<span class="sourceLineNo">1679</span> /**<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span> * Concatenate byte arrays.<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span> * @param a lower half<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span> * @param b upper half<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span> * @return New array that has a in lower half and b in upper half.<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span> */<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span> public static byte[] add(final byte[] a, final byte[] b) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span> return add(a, b, EMPTY_BYTE_ARRAY);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span> }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span><a name="line.1688"></a>
+<span class="sourceLineNo">1689</span> /**<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span> * Concatenate byte arrays.<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span> * @param a first third<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span> * @param b second third<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span> * @param c third third<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span> * @return New array made from a, b and c<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span> */<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span> public static byte[] add(final byte[] a, final byte[] b, final byte[] c) {<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span> byte[] result = new byte[a.length + b.length + c.length];<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span> System.arraycopy(a, 0, result, 0, a.length);<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span> System.arraycopy(b, 0, result, a.length, b.length);<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span> System.arraycopy(c, 0, result, a.length + b.length, c.length);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span> return result;<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span> }<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span><a name="line.1703"></a>
+<span class="sourceLineNo">1704</span> /**<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span> * Concatenate byte arrays.<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span> * @param arrays all the arrays to concatenate together.<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span> * @return New array made from the concatenation of the given arrays.<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span> */<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span> public static byte[] add(final byte[][] arrays) {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span> int length = 0;<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span> for (int i = 0; i < arrays.length; i++) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span> length += arrays[i].length;<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span> }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span> byte[] result = new byte[length];<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span> int index = 0;<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span> for (int i = 0; i < arrays.length; i++) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span> System.arraycopy(arrays[i], 0, result, index, arrays[i].length);<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span> index += arrays[i].length;<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span> }<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span> return result;<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span> }<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span><a name="line.1722"></a>
+<span class="sourceLineNo">1723</span> /**<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span> * Make a new byte array from a subset of bytes at the head of another.<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span> * @param a array<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span> * @param length amount of bytes to grab<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span> * @return First <code>length</code> bytes from <code>a</code><a name="line.1727"></a>
<span class="sourceLineNo">1728</span> */<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span> public static Iterable<byte[]> iterateOnSplits(final byte[] a, final byte[] b, boolean inclusive,<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span> final int num) {<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span> byte[] aPadded;<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span> byte[] bPadded;<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span> if (a.length < b.length) {<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span> aPadded = padTail(a, b.length - a.length);<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span> bPadded = b;<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span> } else if (b.length < a.length) {<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span> aPadded = a;<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span> bPadded = padTail(b, a.length - b.length);<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span> } else {<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span> aPadded = a;<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span> bPadded = b;<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span> }<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span> if (compareTo(aPadded, bPadded) >= 0) {<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span> throw new IllegalArgumentException("b <= a");<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span> }<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span> if (num <= 0) {<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span> throw new IllegalArgumentException("num cannot be <= 0");<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span> }<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span> byte[] prependHeader = { 1, 0 };<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span> final BigInteger startBI = new BigInteger(add(prependHeader, aPadded));<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span> final BigInteger stopBI = new BigInteger(add(prependHeader, bPadded));<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span> BigInteger diffBI = stopBI.subtract(startBI);<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span> if (inclusive) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span> diffBI = diffBI.add(BigInteger.ONE);<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span> }<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span> final BigInteger splitsBI = BigInteger.valueOf(num + 1);<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span> // when diffBI < splitBI, use an additional byte to increase diffBI<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span> if (diffBI.compareTo(splitsBI) < 0) {<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span> byte[] aPaddedAdditional = new byte[aPadded.length + 1];<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span> byte[] bPaddedAdditional = new byte[bPadded.length + 1];<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span> for (int i = 0; i < aPadded.length; i++) {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span> aPaddedAdditional[i] = aPadded[i];<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span> }<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span> for (int j = 0; j < bPadded.length; j++) {<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span> bPaddedAdditional[j] = bPadded[j];<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span> }<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span> aPaddedAdditional[aPadded.length] = 0;<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span> bPaddedAdditional[bPadded.length] = 0;<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span> return iterateOnSplits(aPaddedAdditional, bPaddedAdditional, inclusive, num);<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span> }<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span> final BigInteger intervalBI;<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span> try {<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span> intervalBI = diffBI.divide(splitsBI);<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span> } catch (Exception e) {<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span> LOG.error("Exception caught during division", e);<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span> return null;<a name="line.1776"></a>
+<span class="sourceLineNo">1729</span> public static byte[] head(final byte[] a, final int length) {<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span> if (a.length < length) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span> return null;<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span> }<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span> byte[] result = new byte[length];<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span> System.arraycopy(a, 0, result, 0, length);<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span> return result;<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span> }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span><a name="line.1737"></a>
+<span class="sourceLineNo">1738</span> /**<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span> * Make a new byte array from a subset of bytes at the tail of another.<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span> * @param a array<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span> * @param length amount of bytes to snarf<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span> * @return Last <code>length</code> bytes from <code>a</code><a name="line.1742"></a>
+<span class="sourceLineNo">1743</span> */<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span> public static byte[] tail(final byte[] a, final int length) {<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span> if (a.length < length) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span> return null;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span> }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span> byte[] result = new byte[length];<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span> System.arraycopy(a, a.length - length, result, 0, length);<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span> return result;<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span> }<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span><a name="line.1752"></a>
+<span class="sourceLineNo">1753</span> /**<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span> * Make a new byte array from a subset of bytes at the head of another, zero padded as desired.<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span> * @param a array<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span> * @param length new array size<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span> * @return Value in <code>a</code> plus <code>length</code> prepended 0 bytes<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span> */<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span> public static byte[] padHead(final byte[] a, final int length) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span> byte[] padding = new byte[length];<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span> for (int i = 0; i < length; i++) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span> padding[i] = 0;<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span> }<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span> return add(padding, a);<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span> }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span><a name="line.1766"></a>
+<span class="sourceLineNo">1767</span> /**<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span> * Make a new byte array from a subset of bytes at the tail of another, zero padded as desired.<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span> * @param a array<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span> * @param length new array size<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span> * @return Value in <code>a</code> plus <code>length</code> appended 0 bytes<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span> */<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span> public static byte[] padTail(final byte[] a, final int length) {<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span> byte[] padding = new byte[length];<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span> for (int i = 0; i < length; i++) {<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span> padding[i] = 0;<a name="line.1776"></a>
<span class="sourceLineNo">1777</span> }<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span><a name="line.1778"></a>
-<span class="sourceLineNo">1779</span> final Iterator<byte[]> iterator = new Iterator<byte[]>() {<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span> private int i = -1;<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span><a name="line.1781"></a>
-<span class="sourceLineNo">1782</span> @Override<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span> public boolean hasNext() {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span> return i < num + 1;<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span> }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span><a name="line.1786"></a>
-<span class="sourceLineNo">1787</span> @Override<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span> public byte[] next() {<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span> i++;<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span> if (i == 0) return a;<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span> if (i == num + 1) return b;<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span><a name="line.1792"></a>
-<span class="sourceLineNo">1793</span> BigInteger curBI = startBI.add(intervalBI.multiply(BigInteger.valueOf(i)));<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span> byte[] padded = curBI.toByteArray();<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span> if (padded[1] == 0) padded = tail(padded, padded.length - 2);<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span> else padded = tail(padded, padded.length - 1);<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span> return padded;<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span> }<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span><a name="line.1799"></a>
-<span class="sourceLineNo">1800</span> @Override<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span> public void remove() {<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span> throw new UnsupportedOperationException();<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span> }<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span><a name="line.1804"></a>
-<span class="sourceLineNo">1805</span> };<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span><a name="line.1806"></a>
-<span class="sourceLineNo">1807</span> return new Iterable<byte[]>() {<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span> @Override<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span> public Iterator<byte[]> iterator() {<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span> return iterator;<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span> }<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span> };<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span> }<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span><a name="line.1814"></a>
-<span class="sourceLineNo">1815</span> /**<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span> * Calculate the hash code for a given range of bytes.<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span> * @param bytes array to hash<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span> * @param offset offset to start from<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span> * @param length length to hash<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span> */<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span> public static int hashCode(byte[] bytes, int offset, int length) {<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span> int hash = 1;<a name="line.1822"></a>
-<span class="sourceLineNo">1823</span> for (int i = offset; i < offset + length; i++)<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span> hash = (31 * hash) + bytes[i];<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span> return hash;<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span> }<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span><a name="line.1827"></a>
-<span class="sourceLineNo">1828</span> /**<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span> * Create an array of byte[] given an array of String.<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span> * @param t operands<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span> * @return Array of byte arrays made from passed array of Text<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span> */<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span> public static byte[][] toByteArrays(final String[] t) {<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span> byte[][] result = new byte[t.length][];<a name="line.1834"></a>
-<span class="sourceLineNo">1835</span> for (int i = 0; i < t.length; i++) {<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span> result[i] = Bytes.toBytes(t[i]);<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span> }<a name="line.1837"></a>
-<span class="sourceLineNo">1838</span> return result;<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span> }<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span><a name="line.1840"></a>
-<span class="sourceLineNo">1841</span> /**<a name="line.1841"></a>
-<span class="sourceLineNo">1842</span> * Create an array of byte[] given an array of String.<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span> * @param t operands<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span> * @return Array of binary byte arrays made from passed array of binary strings<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span> */<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span> public static byte[][] toBinaryByteArrays(final String[] t) {<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span> byte[][] result = new byte[t.length][];<a name="line.1847"></a>
-<span class="sourceLineNo">1848</span> for (int i = 0; i < t.length; i++) {<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span> result[i] = Bytes.toBytesBinary(t[i]);<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span> }<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span> return result;<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span> }<a name="line.1852"></a>
-<span class="sourceLineNo">1853</span><a name="line.1853"></a>
-<span class="sourceLineNo">1854</span> /**<a name="line.1854"></a>
-<span class="sourceLineNo">1855</span> * Create a byte[][] where first and only entry is <code>column</code><a name="line.1855"></a>
-<span class="sourceLineNo">1856</span> * @param column operand<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span> * @return A byte array of a byte array where first and only entry is <code>column</code><a name="line.1857"></a>
-<span class="sourceLineNo">1858</span> */<a name="line.1858"></a>
-<span class="sourceLineNo">1859</span> public static byte[][] toByteArrays(final String column) {<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span> return toByteArrays(toBytes(column));<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span> }<a name="line.1861"></a>
-<span class="sourceLineNo">1862</span><a name="line.1862"></a>
-<span class="sourceLineNo">1863</span> /**<a name="line.1863"></a>
-<span class="sourceLineNo">1864</span> * Create a byte[][] where first and only entry is <code>column</code><a name="line.1864"></a>
-<span class="sourceLineNo">1865</span> * @param column operand<a name="line.1865"></a>
-<span class="sourceLineNo">1866</span> * @return A byte array of a byte array where first and only entry is <code>column</code><a name="line.1866"></a>
-<span class="sourceLineNo">1867</span> */<a name="line.1867"></a>
-<span class="sourceLineNo">1868</span> public static byte[][] toByteArrays(final byte[] column) {<a name="line.1868"></a>
-<span class="sourceLineNo">1869</span> byte[][] result = new byte[1][];<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span> result[0] = column;<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span> return result;<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span> }<a name="line.1872"></a>
-<span class="sourceLineNo">1873</span><a name="line.1873"></a>
-<span class="sourceLineNo">1874</span> /**<a name="line.1874"></a>
-<span class="sourceLineNo">1875</span> * Binary search for keys in indexes using Bytes.BYTES_RAWCOMPARATOR.<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span> * @param arr array of byte arrays to search for<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span> * @param key the key you want to find<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span> * @param offset the offset in the key you want to find<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span> * @param length the length of the key<a name="line.1879"></a>
-<span class="sourceLineNo">1880</span> * @return zero-based index of the key, if the key is present in the array. Otherwise, a value -(i<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span> * + 1) such that the key is between arr[i - 1] and arr[i] non-inclusively, where i is in<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span> * [0, i], if we define arr[-1] = -Inf and arr[N] = Inf for an N-element array. The above<a name="line.1882"></a>
-<span class="sourceLineNo">1883</span> * means that this function can return 2N + 1 different values ranging from -(N + 1) to N<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span> * - 1.<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span> */<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span> public static int binarySearch(byte[][] arr, byte[] key, int offset, int length) {<a name="line.1886"></a>
-<span class="sourceLineNo">1887</span> int low = 0;<a name="line.1887"></a>
-<span class="sourceLineNo">1888</span> int high = arr.length - 1;<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span><a name="line.1889"></a>
-<span class="sourceLineNo">1890</span> while (low <= high) {<a name="line.1890"></a>
-<span class="sourceLineNo">1891</span> int mid = low + ((high - low) >> 1);<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span> // we have to compare in this order, because the comparator order<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span> // has special logic when the 'left side' is a special key.<a name="line.1893"></a>
-<span class="sourceLineNo">1894</span> int cmp =<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span> Bytes.BYTES_RAWCOMPARATOR.compare(key, offset, length, arr[mid], 0, arr[mid].length);<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span> // key lives above the midpoint<a name="line.1896"></a>
-<span class="sourceLineNo">1897</span> if (cmp > 0) low = mid + 1;<a name="line.1897"></a>
-<span class="sourceLineNo">1898</span> // key lives below the midpoint<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span> else if (cmp < 0) high = mid - 1;<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span> // BAM. how often does this really happen?<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span> else return mid;<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span> }<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span> return -(low + 1);<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span> }<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span><a name="line.1905"></a>
-<span class="sourceLineNo">1906</span> /**<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span> * Binary search for keys in indexes.<a name="line.1907"></a>
-<span class="sourceLineNo">1908</span> * @param arr array of byte arrays to search for<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span> * @param key the key you want to find<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span> * @param comparator a comparator to compare.<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span> * @return zero-based index of the key, if the key is present in the array. Otherwise, a value -(i<a name="line.1911"></a>
-<span class="sourceLineNo">1912</span> * + 1) such that the key is between arr[i - 1] and arr[i] non-inclusively, where i is in<a name="line.1912"></a>
-<span class="sourceLineNo">1913</span> * [0, i], if we define arr[-1] = -Inf and arr[N] = Inf for an N-element array. The above<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span> * means that this function can return 2N + 1 different values ranging from -(N + 1) to N<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span> * - 1.<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span> * @return the index of the block<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span> */<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span> public static int binarySearch(Cell[] arr, Cell key, CellComparator comparator) {<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span> int low = 0;<a name="line.1919"></a>
-<span class="sourceLineNo">1920</span> int high = arr.length - 1;<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span> while (low <= high) {<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span> int mid = low + ((high - low) >> 1);<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span> // we have to compare in this order, because the comparator order<a name="line.1923"></a>
-<span class="sourceLineNo">1924</span> // has special logic when the 'left side' is a special key.<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span> int cmp = comparator.compare(key, arr[mid]);<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span> // key lives above the midpoint<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span> if (cmp > 0) low = mid + 1;<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span> // key lives below the midpoint<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span> else if (cmp < 0) high = mid - 1;<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span> // BAM. how often does this really happen?<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span> else return mid;<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span> }<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span> return -(low + 1);<a name="line.1933"></a>
-<span class="sourceLineNo">1934</span> }<a name="line.1934"></a>
-<span class="sourceLineNo">1935</span><a name="line.1935"></a>
-<span class="sourceLineNo">1936</span> /**<a name="line.1936"></a>
-<span class="sourceLineNo">1937</span> * Bytewise binary increment/deincrement of long contained in byte array on given amount.<a name="line.1937"></a>
-<span class="sourceLineNo">1938</span> * @param value - array of bytes containing long (length &lt;= SIZEOF_LONG)<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span> * @param amount value will be incremented on (deincremented if negative)<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span> * @return array of bytes containing incremented long (length == SIZEOF_LONG)<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span> */<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span> public static byte[] incrementBytes(byte[] value, long amount) {<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span> byte[] val = value;<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span> if (val.length < SIZEOF_LONG) {<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span> // Hopefully this doesn't happen too often.<a name="line.1945"></a>
-<span class="sourceLineNo">1946</span> byte[] newvalue;<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span> if (val[0] < 0) {<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span> newvalue = new byte[] { -1, -1, -1, -1, -1, -1, -1, -1 };<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span> } else {<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span> newvalue = new byte[SIZEOF_LONG];<a name="line.1950"></a>
-<span class="sourceLineNo">1951</span> }<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span> System.arraycopy(val, 0, newvalue, newvalue.length - val.length, val.length);<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span> val = newvalue;<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span> } else if (val.length > SIZEOF_LONG) {<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span> throw new IllegalArgumentException("Increment Bytes - value too big: " + val.length);<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span> }<a name="line.1956"></a>
-<span class="sourceLineNo">1957</span> if (amount == 0) return val;<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span> if (val[0] < 0) {<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span> return binaryIncrementNeg(val, amount);<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span> }<a name="line.1960"></a>
-<span class="sourceLineNo">1961</span> return binaryIncrementPos(val, amount);<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span> }<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span><a name="line.1963"></a>
-<span class="sourceLineNo">1964</span> /* increment/deincrement for positive value */<a name="line.1964"></a>
-<span class="sourceLineNo">1965</span> private static byte[] binaryIncrementPos(byte[] value, long amount) {<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span> long amo = amount;<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span> int sign = 1;<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span> if (amount < 0) {<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span> amo = -amount;<a name="line.1969"></a>
-<span class="sourceLineNo">1970</span> sign = -1;<a name="line.1970"></a>
-<span class="sourceLineNo">1971</span> }<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span> for (int i = 0; i < value.length; i++) {<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span> int cur = ((int) amo % 256) * sign;<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span> amo = (amo >> 8);<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span> int val = value[value.length - i - 1] & 0x0ff;<a name="line.1975"></a>
-<span class="sourceLineNo">1976</span> int total = val + cur;<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span> if (total > 255) {<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span> amo += sign;<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span> total %= 256;<a name="line.1979"></a>
-<span class="sourceLineNo">1980</span> } else if (total < 0) {<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span> amo -= sign;<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span> }<a name="line.1982"></a>
-<span class="sourceLineNo">1983</span> value[value.length - i - 1] = (byte) total;<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span> if (amo == 0) return value;<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span> }<a name="line.1985"></a>
-<span class="sourceLineNo">1986</span> return value;<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span> }<a name="line.1987"></a>
-<span class="sourceLineNo">1988</span><a name="line.1988"></a>
-<span class="sourceLineNo">1989</span> /* increment/deincrement for negative value */<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span> private static byte[] binaryIncrementNeg(byte[] value, long amount) {<a name="line.1990"></a>
-<span class="sourceLineNo">1991</span> long amo = amount;<a name="line.1991"></a>
-<span class="sourceLineNo">1992</span> int sign = 1;<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span> if (amount < 0) {<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span> amo = -amount;<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span> sign = -1;<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span> }<a name="line.1996"></a>
-<span class="sourceLineNo">1997</span> for (int i = 0; i < value.length; i++) {<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span> int cur = ((int) amo % 256) * sign;<a name="line.1998"></a>
-<span class="sourceLineNo">1999</span> amo = (amo >> 8);<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span> int val = (~value[value.length - i - 1] & 0x0ff) + 1;<a name="line.2000"></a>
-<span class="sourceLineNo">2001</span> int total = cur - val;<a name="line.2001"></a>
-<span class="sourceLineNo">2002</span> if (total >= 0) {<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span> amo += sign;<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span> } else if (total < -256) {<a name="line.2004"></a>
-<span class="sourceLineNo">2005</span> amo -= sign;<a name="line.2005"></a>
-<span class="sourceLineNo">2006</span> total %= 256;<a name="line.2006"></a>
-<span class="sourceLineNo">2007</span> }<a name="line.2007"></a>
-<span class="sourceLineNo">2008</span> value[value.length - i - 1] = (byte) total;<a name="line.2008"></a>
-<span class="sourceLineNo">2009</span> if (amo == 0) return value;<a name="line.2009"></a>
-<span class="sourceLineNo">2010</span> }<a name="line.2010"></a>
-<span class="sourceLineNo">2011</span> return value;<a name="line.2011"></a>
-<span class="sourceLineNo">2012</span> }<a name="line.2012"></a>
-<span class="sourceLineNo">2013</span><a name="line.2013"></a>
-<span class="sourceLineNo">2014</span> /**<a name="line.2014"></a>
-<span class="sourceLineNo">2015</span> * Writes a string as a fixed-size field, padded with zeros.<a name="line.2015"></a>
-<span class="sourceLineNo">2016</span> */<a name="line.2016"></a>
-<span class="sourceLineNo">2017</span> public static void writeStringFixedSize(final DataOutput out, String s, int size)<a name="line.2017"></a>
-<span class="sourceLineNo">2018</span> throws IOException {<a name="line.2018"></a>
-<span class="sourceLineNo">2019</span> byte[] b = toBytes(s);<a name="line.2019"></a>
-<span class="sourceLineNo">2020</span> if (b.length > size) {<a name="line.2020"></a>
-<span class="sourceLineNo">2021</span> throw new IOException("Trying to write " + b.length + " bytes (" + toStringBinary(b)<a name="line.2021"></a>
-<span class="sourceLineNo">2022</span> + ") into a field of length " + size);<a name="line.2022"></a>
-<span class="sourceLineNo">2023</span> }<a name="line.2023"></a>
-<span class="sourceLineNo">2024</span><a name="line.2024"></a>
-<span class="sourceLineNo">2025</span> out.writeBytes(s);<a name="line.2025"></a>
-<span class="sourceLineNo">2026</span> for (int i = 0; i < size - s.length(); ++i)<a name="line.2026"></a>
-<span class="sourceLineNo">2027</span> out.writeByte(0);<a name="line.2027"></a>
-<span class="sourceLineNo">2028</span> }<a name="line.2028"></a>
-<span class="sourceLineNo">2029</span><a name="line.2029"></a>
-<span class="sourceLineNo">2030</span> /**<a name="line.2030"></a>
-<span class="sourceLineNo">2031</span> * Reads a fixed-size field and interprets it as a string padded with zeros.<a name="line.2031"></a>
-<span class="sourceLineNo">2032</span> */<a name="line.2032"></a>
-<span class="sourceLineNo">2033</span> public static String readStringFixedSize(final DataInput in, int size) throws IOException {<a name="line.2033"></a>
-<span class="sourceLineNo">2034</span> byte[] b = new byte[size];<a name="line.2034"></a>
-<span class="sourceLineNo">2035</span> in.readFully(b);<a name="line.2035"></a>
-<span class="sourceLineNo">2036</span> int n = b.length;<a name="line.2036"></a>
-<span class="sourceLineNo">2037</span> while (n > 0 && b[n - 1] == 0)<a name="line.2037"></a>
-<span class="sourceLineNo">2038</span> --n;<a name="line.2038"></a>
-<span class="sourceLineNo">2039</span><a name="line.2039"></a>
-<span class="sourceLineNo">2040</span> return toString(b, 0, n);<a name="line.2040"></a>
-<span class="sourceLineNo">2041</span> }<a name="line.2041"></a>
-<span class="sourceLineNo">2042</span><a name="line.2042"></a>
-<span class="sourceLineNo">2043</span> /**<a name="line.2043"></a>
-<span class="sourceLineNo">2044</span> * Copy the byte array given in parameter and return an instance of a new byte array with the same<a name="line.2044"></a>
-<span class="sourceLineNo">2045</span> * length and the same content.<a name="line.2045"></a>
-<span class="sourceLineNo">2046</span> * @param bytes the byte array to duplicate<a name="line.2046"></a>
-<span class="sourceLineNo">2047</span> * @return a copy of the given byte array<a name="line.2047"></a>
-<span class="sourceLineNo">2048</span> */<a name="line.2048"></a>
-<span class="sourceLineNo">2049</span> public static byte[] copy(byte[] bytes) {<a name="line.2049"></a>
-<span class="sourceLineNo">2050</span> if (bytes == null) return null;<a name="line.2050"></a>
-<span class="sourceLineNo">2051</span> byte[] result = new byte[bytes.length];<a name="line.2051"></a>
-<span class="sourceLineNo">2052</span> System.arraycopy(bytes, 0, result, 0, bytes.length);<a name="line.2052"></a>
-<span class="sourceLineNo">2053</span> return result;<a name="line.2053"></a>
-<span class="sourceLineNo">2054</span> }<a name="line.2054"></a>
-<span class="sourceLineNo">2055</span><a name="line.2055"></a>
-<span class="sourceLineNo">2056</span> /**<a name="line.2056"></a>
-<span class="sourceLineNo">2057</span> * Copy the byte array given in parameter and return an instance of a new byte array with the same<a name="line.2057"></a>
-<span class="sourceLineNo">2058</span> * length and the same content.<a name="line.2058"></a>
-<span class="sourceLineNo">2059</span> * @param bytes the byte array to copy from<a name="line.2059"></a>
-<span class="sourceLineNo">2060</span> * @return a copy of the given designated byte array<a name="line.2060"></a>
-<span class="sourceLineNo">2061</span> */<a name="line.2061"></a>
-<span class="sourceLineNo">2062</span> public static byte[] copy(byte[] bytes, final int offset, final int length) {<a name="line.2062"></a>
-<span class="sourceLineNo">2063</span> if (bytes == null) return null;<a name="line.2063"></a>
-<span class="sourceLineNo">2064</span> byte[] result = new byte[length];<a name="line.2064"></a>
-<span class="sourceLineNo">2065</span> System.arraycopy(bytes, offset, result, 0, length);<a name="line.2065"></a>
-<span class="sourceLineNo">2066</span> return result;<a name="line.2066"></a>
-<span class="sourceLineNo">2067</span> }<a name="line.2067"></a>
-<span class="sourceLineNo">2068</span><a name="line.2068"></a>
-<span class="sourceLineNo">2069</span> /**<a name="line.2069"></a>
-<span class="sourceLineNo">2070</span> * Search sorted array "a" for byte "key". I can't remember if I wrote this or copied it from<a name="line.2070"></a>
-<span class="sourceLineNo">2071</span> * somewhere. (mcorgan)<a name="line.2071"></a>
-<span class="sourceLineNo">2072</span> * @param a Array to search. Entries must be sorted and unique.<a name="line.2072"></a>
-<span class="sourceLineNo">2073</span> * @param fromIndex First index inclusive of "a" to include in the search.<a name="line.2073"></a>
-<span class="sourceLineNo">2074</span> * @param toIndex Last index exclusive of "a" to include in the search.<a name="line.2074"></a>
-<span class="sourceLineNo">2075</span> * @param key The byte to search for.<a name="line.2075"></a>
-<span class="sourceLineNo">2076</span> * @return The index of key if found. If not found, return -(index + 1), where negative indicates<a name="line.2076"></a>
-<span class="sourceLineNo">2077</span> * "not found" and the "index + 1" handles the "-0" case.<a name="line.2077"></a>
-<span class="sourceLineNo">2078</span> */<a name="line.2078"></a>
-<span class="sourceLineNo">2079</span> public static int unsignedBinarySearch(byte[] a, int fromIndex, int toIndex, byte key) {<a name="line.2079"></a>
-<span class="sourceLineNo">2080</span> int unsignedKey = key & 0xff;<a name="line.2080"></a>
-<span class="sourceLineNo">2081</span> int low = fromIndex;<a name="line.2081"></a>
-<span class="sourceLineNo">2082</span> int high = toIndex - 1;<a name="line.2082"></a>
-<span class="sourceLineNo">2083</span><a name="line.2083"></a>
-<span class="sourceLineNo">2084</span> while (low <= high) {<a name="line.2084"></a>
-<span class="sourceLineNo">2085</span> int mid = low + ((high - low) >> 1);<a name="line.2085"></a>
-<span class="sourceLineNo">2086</span> int midVal = a[mid] & 0xff;<a name="line.2086"></a>
-<span class="sourceLineNo">2087</span><a name="line.2087"></a>
-<span class="sourceLineNo">2088</span> if (midVal < unsignedKey) {<a name="line.2088"></a>
-<span class="sourceLineNo">2089</span> low = mid + 1;<a name="line.2089"></a>
-<span class="sourceLineNo">2090</span> } else if (midVal > unsignedKey) {<a name="line.2090"></a>
-<span class="sourceLineNo">2091</span> high = mid - 1;<a name="line.2091"></a>
-<span class="sourceLineNo">2092</span> } else {<a name="line.2092"></a>
-<span class="sourceLineNo">2093</span> return mid; // key found<a name="line.2093"></a>
-<span class="sourceLineNo">2094</span> }<a name="line.2094"></a>
-<span class="sourceLineNo">2095</span> }<a name="line.2095"></a>
-<span class="sourceLineNo">2096</span> return -(low + 1); // key not found.<a name="line.2096"></a>
-<span class="sourceLineNo">2097</span> }<a name="line.2097"></a>
-<span class="sourceLineNo">2098</span><a name="line.2098"></a>
-<span class="sourceLineNo">2099</span> /**<a name="line.2099"></a>
-<span class="sourceLineNo">2100</span> * Treat the byte[] as an unsigned series of bytes, most significant bits first. Start by adding 1<a name="line.2100"></a>
-<span class="sourceLineNo">2101</span> * to the rightmost bit/byte and carry over all overflows to the more significant bits/bytes.<a name="line.2101"></a>
-<span class="sourceLineNo">2102</span> * @param input The byte[] to increment.<a name="line.2102"></a>
-<span class="sourceLineNo">2103</span> * @return The incremented copy of "in". May be same length or 1 byte longer.<a name="line.2103"></a>
-<span class="sourceLineNo">2104</span> */<a name="line.2104"></a>
-<span class="sourceLineNo">2105</span> public static byte[] unsignedCopyAndIncrement(final byte[] input) {<a name="line.2105"></a>
-<span class="sourceLineNo">2106</span> byte[] copy = copy(input);<a name="line.2106"></a>
-<span class="sourceLineNo">2107</span> if (copy == null) {<a name="line.2107"></a>
-<span class="sourceLineNo">2108</span> throw new IllegalArgumentException("cannot increment null array");<a name="line.2108"></a>
-<span class="sourceLineNo">2109</span> }<a name="line.2109"></a>
-<span class="sourceLineNo">2110</span> for (int i = copy.length - 1; i >= 0; --i) {<a name="line.2110"></a>
-<span class="sourceLineNo">2111</span> if (copy[i] == -1) {// -1 is all 1-bits, which is the unsigned maximum<a name="line.2111"></a>
-<span class="sourceLineNo">2112</span> copy[i] = 0;<a name="line.2112"></a>
-<span class="sourceLineNo">2113</span> } else {<a name="line.2113"></a>
-<span class="sourceLineNo">2114</span> ++copy[i];<a name="line.2114"></a>
-<span class="sourceLineNo">2115</span> return copy;<a name="line.2115"></a>
-<span class="sourceLineNo">2116</span> }<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span> }<a name="line.2117"></a>
-<span class="sourceLineNo">2118</span> // we maxed out the array<a name="line.2118"></a>
-<span class="sourceLineNo">2119</span> byte[] out = new byte[copy.length + 1];<a name="line.2119"></a>
-<span class="sourceLineNo">2120</span> out[0] = 1;<a name="line.2120"></a>
-<span class="sourceLineNo">2121</span> System.arraycopy(copy, 0, out, 1, copy.length);<a name="line.2121"></a>
-<span class="sourceLineNo">2122</span> return out;<a name="line.2122"></a>
-<span class="sourceLineNo">2123</span> }<a name="line.2123"></a>
-<span class="sourceLineNo">2124</span><a name="line.2124"></a>
-<span class="sourceLineNo">2125</span> public static boolean equals(List<byte[]> a, List<byte[]> b) {<a name="line.2125"></a>
-<span class="sourceLineNo">2126</span> if (a == null) {<a name="line.2126"></a>
-<span class="sourceLineNo">2127</span> if (b == null) {<a name="line.2127"></a>
-<span class="sourceLineNo">2128</span> return true;<a name="line.2128"></a>
-<span class="sourceLineNo">2129</span> }<a name="line.2129"></a>
-<span class="sourceLineNo">2130</span> return false;<a name="line.2130"></a>
-<span class="sourceLineNo">2131</span> }<a name="line.2131"></a>
-<span class="sourceLineNo">2132</span> if (b == null) {<a name="line.2132"></a>
-<span class="sourceLineNo">2133</span> return false;<a name="line.2133"></a>
-<span class="sourceLineNo">2134</span> }<a name="line.2134"></a>
-<span class="sourceLineNo">2135</span> if (a.size() != b.size()) {<a name="line.2135"></a>
-<span class="sourceLineNo">2136</span> return false;<a name="line.2136"></a>
-<span class="sourceLineNo">2137</span> }<a name="line.2137"></a>
-<span class="sourceLineNo">2138</span> for (int i = 0; i < a.size(); ++i) {<a name="line.2138"></a>
-<span class="sourceLineNo">2139</span> if (!Bytes.equals(a.get(i), b.get(i))) {<a name="line.2139"></a>
-<span class="sourceLineNo">2140</span> return false;<a name="line.2140"></a>
-<span class="sourceLineNo">2141</span> }<a name="line.2141"></a>
-<span class="sourceLineNo">2142</span> }<a name="line.2142"></a>
-<span class="sourceLineNo">2143</span> return true;<a name="line.2143"></a>
-<span class="sourceLineNo">2144</span> }<a name="line.2144"></a>
-<span class="sourceLineNo">2145</span><a name="line.2145"></a>
-<span class="sourceLineNo">2146</span> public static boolean isSorted(Collection<byte[]> arrays) {<a name="line.2146"></a>
-<span class="sourceLineNo">2147</span> if (!CollectionUtils.isEmpty(arrays)) {<a name="line.2147"></a>
-<span class="sourceLineNo">2148</span> byte[] previous = new byte[0];<a name="line.2148"></a>
-<span class="sourceLineNo">2149</span> for (byte[] array : arrays) {<a name="line.2149"></a>
-<span class="sourceLineNo">2150</span> if (Bytes.compareTo(previous, array) > 0) {<a name="line.2150"></a>
-<span class="sourceLineNo">2151</span> return false;<a name="line.2151"></a>
-<span class="sourceLineNo">2152</span> }<a name="line.2152"></a>
-<span class="sourceLineNo">2153</span> previous = array;<a name="line.2153"></a>
-<span class="sourceLineNo">2154</span> }<a name="line.2154"></a>
-<span class="sourceLineNo">2155</span> }<a name="line.2155"></a>
-<span class="sourceLineNo">2156</span> return true;<a name="line.2156"></a>
-<span class="sourceLineNo">2157</span> }<a name="line.2157"></a>
-<span class="sourceLineNo">2158</span><a name="line.2158"></a>
-<span class="sourceLineNo">2159</span> public static List<byte[]> getUtf8ByteArrays(List<String> strings) {<a name="line.2159"></a>
-<span class="sourceLineNo">2160</span> if (CollectionUtils.isEmpty(strings)) {<a name="line.2160"></a>
-<span class="sourceLineNo">2161</span> return Collections.emptyList();<a name="line.2161"></a>
-<span class="sourceLineNo">2162</span> }<a name="line.2162"></a>
-<span class="sourceLineNo">2163</span> List<byte[]> byteArrays = new ArrayList<>(strings.size());<a name="line.2163"></a>
-<span class="sourceLineNo">2164</span> strings.forEach(s -> byteArrays.add(Bytes.toBytes(s)));<a name="line.2164"></a>
-<span class="sourceLineNo">2165</span> return byteArrays;<a name="line.2165"></a>
-<span class="sourceLineNo">2166</span> }<a name="line.2166"></a>
-<span class="sourceLineNo">2167</span><a name="line.2167"></a>
-<span class="sourceLineNo">2168</span> /**<a name="line.2168"></a>
-<span class="sourceLineNo">2169</span> * Returns the index of the first appearance of the value {@code target} in {@code array}.<a name="line.2169"></a>
-<span class="sourceLineNo">2170</span> * @param array an array of {@code byte} values, possibly empty<a name="line.2170"></a>
-<span class="sourceLineNo">2171</span> * @param target a primitive {@code byte} value<a name="line.2171"></a>
-<span class="sourceLineNo">2172</span> * @return the least index {@code i} for which {@code array[i] == target}, or {@code -1} if no<a name="line.2172"></a>
-<span class="sourceLineNo">2173</span> * such index exists.<a name="line.2173"></a>
-<span class="sourceLineNo">2174</span> */<a name="line.2174"></a>
-<span class="sourceLineNo">2175</span> public static int indexOf(byte[] array, byte target) {<a name="line.2175"></a>
-<span class="sourceLineNo">2176</span> for (int i = 0; i < array.length; i++) {<a name="line.2176"></a>
-<span class="sourceLineNo">2177</span> if (array[i] == target) {<a name="line.2177"></a>
-<span class="sourceLineNo">2178</span> return i;<a name="line.2178"></a>
-<span class="sourceLineNo">2179</span> }<a name="line.2179"></a>
-<span class="sourceLineNo">2180</span> }<a name="line.2180"></a>
-<span class="sourceLineNo">2181</span> return -1;<a name="line.2181"></a>
-<span class="sourceLineNo">2182</span> }<a name="line.2182"></a>
-<span class="sourceLineNo">2183</span><a name="line.2183"></a>
-<span class="sourceLineNo">2184</span> /**<a name="line.2184"></a>
-<span class="sourceLineNo">2185</span> * Returns the start position of the first occurrence of the specified {@code<a name="line.2185"></a>
-<span class="sourceLineNo">2186</span> * target} within {@code array}, or {@code -1} if there is no such occurrence.<a name="line.2186"></a>
-<span class="sourceLineNo">2187</span> * <p><a name="line.2187"></a>
-<span class="sourceLineNo">2188</span> * More formally, returns the lowest index {@code i} such that {@code<a name="line.2188"></a>
-<span class="sourceLineNo">2189</span> * java.util.Arrays.copyOfRange(array, i, i + target.length)} contains exactly the same elements<a name="line.2189"></a>
-<span class="sourceLineNo">2190</span> * as {@code target}.<a name="line.2190"></a>
-<span class="sourceLineNo">2191</span> * @param array the array to search for the sequence {@code target}<a name="line.2191"></a>
-<span class="sourceLineNo">2192</span> * @param target the array to search for as a sub-sequence of {@code array}<a name="line.2192"></a>
-<span class="sourceLineNo">2193</span> */<a name="line.2193"></a>
-<span class="sourceLineNo">2194</span> public static int indexOf(byte[] array, byte[] target) {<a name="line.2194"></a>
-<span class="sourceLineNo">2195</span> checkNotNull(array, "array");<a name="line.2195"></a>
-<span class="sourceLineNo">2196</span> checkNotNull(target, "target");<a name="line.2196"></a>
-<span class="sourceLineNo">2197</span> if (target.length == 0) {<a name="line.2197"></a>
-<span class="sourceLineNo">2198</span> return 0;<a name="line.2198"></a>
-<span class="sourceLineNo">2199</span> }<a name="line.2199"></a>
-<span class="sourceLineNo">2200</span><a name="line.2200"></a>
-<span class="sourceLineNo">2201</span> outer: for (int i = 0; i < array.length - target.length + 1; i++) {<a name="line.2201"></a>
-<span class="sourceLineNo">2202</span> for (int j = 0; j < target.length; j++) {<a name="line.2202"></a>
-<span class="sourceLineNo">2203</span> if (array[i + j] != target[j]) {<a name="line.2203"></a>
-<span class="sourceLineNo">2204</span> continue outer;<a name="line.2204"></a>
-<span class="sourceLineNo">2205</span> }<a name="line.2205"></a>
-<span class="sourceLineNo">2206</span> }<a name="line.2206"></a>
-<span class="sourceLineNo">2207</span> return i;<a name="line.2207"></a>
-<span class="sourceLineNo">2208</span> }<a name="line.2208"></a>
-<span class="sourceLineNo">2209</span> return -1;<a name="line.2209"></a>
-<span class="sourceLineNo">2210</span> }<a name="line.2210"></a>
-<span class="sourceLineNo">2211</span><a name="line.2211"></a>
-<span class="sourceLineNo">2212</span> /**<a name="line.2212"></a>
-<span class="sourceLineNo">2213</span> * Return true if target is present as an element anywhere in the given array.<a name="line.2213"></a>
-<span class="sourceLineNo">2214</span> * @param array an array of {@code byte} values, possibly empty<a name="line.2214"></a>
-<span class="sourceLineNo">2215</span> * @param target a primitive {@code byte} value<a name="line.2215"></a>
-<span class="sourceLineNo">2216</span> * @return {@code true} if {@code target} is present as an element anywhere in {@code array}.<a name="line.2216"></a>
-<span class="sourceLineNo">2217</span> */<a name="line.2217"></a>
-<span class="sourceLineNo">2218</span> public static boolean contains(byte[] array, byte target) {<a name="line.2218"></a>
-<span class="sourceLineNo">2219</span> return indexOf(array, target) > -1;<a name="line.2219"></a>
-<span class="sourceLineNo">2220</span> }<a name="line.2220"></a>
-<span class="sourceLineNo">2221</span><a name="line.2221"></a>
-<span class="sourceLineNo">2222</span> /**<a name="line.2222"></a>
-<span class="sourceLineNo">2223</span> * Return true if target is present as an element anywhere in the given array.<a name="line.2223"></a>
-<span class="sourceLineNo">2224</span> * @param array an array of {@code byte} values, possibly empty<a name="line.2224"></a>
-<span class="sourceLineNo">2225</span> * @param target an array of {@code byte}<a name="line.2225"></a>
-<span class="sourceLineNo">2226</span> * @return {@code true} if {@code target} is present anywhere in {@code array}<a name="line.2226"></a>
-<span class="sourceLineNo">2227</span> */<a name="line.2227"></a>
-<span class="sourceLineNo">2228</span> public static boolean contains(byte[] array, byte[] target) {<a name="line.2228"></a>
-<span class="sourceLineNo">2229</span> return indexOf(array, target) > -1;<a name="line.2229"></a>
-<span class="sourceLineNo">2230</span> }<a name="line.2230"></a>
-<span class="sourceLineNo">2231</span><a name="line.2231"></a>
-<span class="sourceLineNo">2232</span> /**<a name="line.2232"></a>
-<span class="sourceLineNo">2233</span> * Fill given array with zeros.<a name="line.2233"></a>
-<span class="sourceLineNo">2234</span> * @param b array which needs to be filled with zeros<a name="line.2234"></a>
-<span class="sourceLineNo">2235</span> */<a name="line.2235"></a>
-<span class="sourceLineNo">2236</span> public static void zero(byte[] b) {<a name="line.2236"></a>
-<span class="sourceLineNo">2237</span> zero(b, 0, b.length);<a name="line.2237"></a>
-<span class="sourceLineNo">2238</span> }<a name="line.2238"></a>
-<span class="sourceLineNo">2239</span><a name="line.2239"></a>
-<span class="sourceLineNo">2240</span> /**<a name="line.2240"></a>
-<span class="sourceLineNo">2241</span> * Fill given array with zeros at the specified position.<a name="line.2241"></a>
-<span class="sourceLineNo">2242</span> */<a name="line.2242"></a>
-<span class="sourceLineNo">2243</span> public static void zero(byte[] b, int offset, int length) {<a name="line.2243"></a>
-<span class="sourceLineNo">2244</span> checkPositionIndex(offset, b.length, "offset");<a name="line.2244"></a>
-<span class="sourceLineNo">2245</span> checkArgument(length > 0, "length must be greater than 0");<a name="line.2245"></a>
-<span class="sourceLineNo">2246</span> checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2246"></a>
-<span class="sourceLineNo">2247</span> Arrays.fill(b, offset, offset + length, (byte) 0);<a name="line.2247"></a>
-<span class="sourceLineNo">2248</span> }<a name="line.2248"></a>
-<span class="sourceLineNo">2249</span><a name="line.2249"></a>
-<span class="sourceLineNo">2250</span> // Pseudorandom random number generator, do not use SecureRandom here<a name="line.2250"></a>
-<span class="sourceLineNo">2251</span> private static final Random RNG = new Random();<a name="line.2251"></a>
-<span class="sourceLineNo">2252</span><a name="line.2252"></a>
-<span class="sourceLineNo">2253</span> /**<a name="line.2253"></a>
-<span class="sourceLineNo">2254</span> * Fill given array with random bytes.<a name="line.2254"></a>
-<span class="sourceLineNo">2255</span> * @param b array which needs to be filled with random bytes<a name="line.2255"></a>
-<span class="sourceLineNo">2256</span> * <p><a name="line.2256"></a>
-<span class="sourceLineNo">2257</span> * If you want random bytes generated by a strong source of randomness use<a name="line.2257"></a>
-<span class="sourceLineNo">2258</span> * {@link Bytes#secureRandom(byte[])}.<a name="line.2258"></a>
-<span class="sourceLineNo">2259</span> * @param b array which needs to be filled with random bytes<a name="line.2259"></a>
-<span class="sourceLineNo">2260</span> */<a name="line.2260"></a>
-<span class="sourceLineNo">2261</span> public static void random(byte[] b) {<a name="line.2261"></a>
-<span class="sourceLineNo">2262</span> RNG.nextBytes(b);<a name="line.2262"></a>
-<span class="sourceLineNo">2263</span> }<a name="line.2263"></a>
-<span class="sourceLineNo">2264</span><a name="line.2264"></a>
-<span class="sourceLineNo">2265</span> /**<a name="line.2265"></a>
-<span class="sourceLineNo">2266</span> * Fill given array with random bytes at the specified position.<a name="line.2266"></a>
-<span class="sourceLineNo">2267</span> * <p><a name="line.2267"></a>
-<span class="sourceLineNo">2268</span> * If you want random bytes generated by a strong source of randomness use<a name="line.2268"></a>
-<span class="sourceLineNo">2269</span> * {@link Bytes#secureRandom(byte[], int, int)}.<a name="line.2269"></a>
-<span class="sourceLineNo">2270</span> * @param b array which needs to be filled with random bytes<a name="line.2270"></a>
-<span class="sourceLineNo">2271</span> * @param offset staring offset in array<a name="line.2271"></a>
-<span class="sourceLineNo">2272</span> * @param length number of bytes to fill<a name="line.2272"></a>
-<span class="sourceLineNo">2273</span> */<a name="line.2273"></a>
-<span class="sourceLineNo">2274</span> public static void random(byte[] b, int offset, int length) {<a name="line.2274"></a>
-<span class="sourceLineNo">2275</span> checkPositionIndex(offset, b.length, "offset");<a name="line.2275"></a>
-<span class="sourceLineNo">2276</span> checkArgument(length > 0, "length must be greater than 0");<a name="line.2276"></a>
-<span class="sourceLineNo">2277</span> checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2277"></a>
-<span class="sourceLineNo">2278</span> byte[] buf = new byte[length];<a name="line.2278"></a>
-<span class="sourceLineNo">2279</span> RNG.nextBytes(buf);<a name="line.2279"></a>
-<span class="sourceLineNo">2280</span> System.arraycopy(buf, 0, b, offset, length);<a name="line.2280"></a>
-<span class="sourceLineNo">2281</span> }<a name="line.2281"></a>
-<span class="sourceLineNo">2282</span><a name="line.2282"></a>
-<span class="sourceLineNo">2283</span> // Bytes.secureRandom may be used to create key material.<a name="line.2283"></a>
-<span class="sourceLineNo">2284</span> private static final SecureRandom SECURE_RNG = new SecureRandom();<a name="line.2284"></a>
-<span class="sourceLineNo">2285</span><a name="line.2285"></a>
-<span class="sourceLineNo">2286</span> /**<a name="line.2286"></a>
-<span class="sourceLineNo">2287</span> * Fill given array with random bytes using a strong random number generator.<a name="line.2287"></a>
-<span class="sourceLineNo">2288</span> * @param b array which needs to be filled with random bytes<a name="line.2288"></a>
-<span class="sourceLineNo">2289</span> */<a name="line.2289"></a>
-<span class="sourceLineNo">2290</span> public static void secureRandom(byte[] b) {<a name="line.2290"></a>
-<span class="sourceLineNo">2291</span> SECURE_RNG.nextBytes(b);<a name="line.2291"></a>
-<span class="sourceLineNo">2292</span> }<a name="line.2292"></a>
-<span class="sourceLineNo">2293</span><a name="line.2293"></a>
-<span class="sourceLineNo">2294</span> /**<a name="line.2294"></a>
-<span class="sourceLineNo">2295</span> * Fill given array with random bytes at the specified position using a strong random number<a name="line.2295"></a>
-<span class="sourceLineNo">2296</span> * generator.<a name="line.2296"></a>
-<span class="sourceLineNo">2297</span> * @param b array which needs to be filled with random bytes<a name="line.2297"></a>
-<span class="sourceLineNo">2298</span> * @param offset staring offset in array<a name="line.2298"></a>
-<span class="sourceLineNo">2299</span> * @param length number of bytes to fill<a name="line.2299"></a>
-<span class="sourceLineNo">2300</span> */<a name="line.2300"></a>
-<span class="sourceLineNo">2301</span> public static void secureRandom(byte[] b, int offset, int length) {<a name="line.2301"></a>
-<span class="sourceLineNo">2302</span> checkPositionIndex(offset, b.length, "offset");<a name="line.2302"></a>
-<span class="sourceLineNo">2303</span> checkArgument(length > 0, "length must be greater than 0");<a name="line.2303"></a>
-<span class="sourceLineNo">2304</span> checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2304"></a>
-<span class="sourceLineNo">2305</span> byte[] buf = new byte[length];<a name="line.2305"></a>
-<span class="sourceLineNo">2306</span> SECURE_RNG.nextBytes(buf);<a name="line.2306"></a>
-<span class="sourceLineNo">2307</span> System.arraycopy(buf, 0, b, offset, length);<a name="line.2307"></a>
+<span class="sourceLineNo">1778</span> return add(a, padding);<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span> }<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span><a name="line.1780"></a>
+<span class="sourceLineNo">1781</span> /**<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span> * Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span> * ranges for MapReduce jobs.<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span> * @param a Beginning of range<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span> * @param b End of range<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span> * @param num Number of times to split range. Pass 1 if you want to split the range in two; i.e.<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span> * one split.<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span> * @return Array of dividing values<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span> */<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span> public static byte[][] split(final byte[] a, final byte[] b, final int num) {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span> return split(a, b, false, num);<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span> }<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span><a name="line.1793"></a>
+<span class="sourceLineNo">1794</span> /**<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span> * Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span> * ranges for MapReduce jobs.<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span> * @param a Beginning of range<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span> * @param b End of range<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span> * @param inclusive Whether the end of range is prefix-inclusive or is considered an exclusive<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span> * boundary. Automatic splits are generally exclusive and manual splits with an<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span> * explicit range utilize an inclusive end of range.<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span> * @param num Number of times to split range. Pass 1 if you want to split the range in two;<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span> * i.e. one split.<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span> * @return Array of dividing values<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span> */<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span> public static byte[][] split(final byte[] a, final byte[] b, boolean inclusive, final int num) {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span> byte[][] ret = new byte[num + 2][];<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span> int i = 0;<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span> Iterable<byte[]> iter = iterateOnSplits(a, b, inclusive, num);<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span> if (iter == null) return null;<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span> for (byte[] elem : iter) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span> ret[i++] = elem;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span> }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span> return ret;<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span> }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span><a name="line.1816"></a>
+<span class="sourceLineNo">1817</span> /**<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span> * Iterate over keys within the passed range, splitting at an [a,b) boundary.<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span> */<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span> public static Iterable<byte[]> iterateOnSplits(final byte[] a, final byte[] b, final int num) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span> return iterateOnSplits(a, b, false, num);<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span> }<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span><a name="line.1823"></a>
+<span class="sourceLineNo">1824</span> /**<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span> * Iterate over keys within the passed range.<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span> */<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span> public static Iterable<byte[]> iterateOnSplits(final byte[] a, final byte[] b, boolean inclusive,<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span> final int num) {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span> byte[] aPadded;<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span> byte[] bPadded;<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span> if (a.length < b.length) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span> aPadded = padTail(a, b.length - a.length);<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span> bPadded = b;<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span> } else if (b.length < a.length) {<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span> aPadded = a;<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span> bPadded = padTail(b, a.length - b.length);<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span> } else {<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span> aPadded = a;<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span> bPadded = b;<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span> }<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span> if (compareTo(aPadded, bPadded) >= 0) {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span> throw new IllegalArgumentException("b <= a");<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span> }<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span> if (num <= 0) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span> throw new IllegalArgumentException("num cannot be <= 0");<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span> }<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span> byte[] prependHeader = { 1, 0 };<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span> final BigInteger startBI = new BigInteger(add(prependHeader, aPadded));<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span> final BigInteger stopBI = new BigInteger(add(prependHeader, bPadded));<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span> BigInteger diffBI = stopBI.subtract(startBI);<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span> if (inclusive) {<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span> diffBI = diffBI.add(BigInteger.ONE);<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span> }<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span> final BigInteger splitsBI = BigInteger.valueOf(num + 1);<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span> // when diffBI < splitBI, use an additional byte to increase diffBI<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span> if (diffBI.compareTo(splitsBI) < 0) {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span> byte[] aPaddedAdditional = new byte[aPadded.length + 1];<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span> byte[] bPaddedAdditional = new byte[bPadded.length + 1];<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span> for (int i = 0; i < aPadded.length; i++) {<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span> aPaddedAdditional[i] = aPadded[i];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span> }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span> for (int j = 0; j < bPadded.length; j++) {<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span> bPaddedAdditional[j] = bPadded[j];<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span> }<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span> aPaddedAdditional[aPadded.length] = 0;<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span> bPaddedAdditional[bPadded.length] = 0;<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span> return iterateOnSplits(aPaddedAdditional, bPaddedAdditional, inclusive, num);<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span> }<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span> final BigInteger intervalBI;<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span> try {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span> intervalBI = diffBI.divide(splitsBI);<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span> } catch (Exception e) {<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span> LOG.error("Exception caught during division", e);<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span> return null;<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span> }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span><a name="line.1876"></a>
+<span class="sourceLineNo">1877</span> final Iterator<byte[]> iterator = new Iterator<byte[]>() {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span> private int i = -1;<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span><a name="line.1879"></a>
+<span class="sourceLineNo">1880</span> @Override<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span> public boolean hasNext() {<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span> return i < num + 1;<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span> }<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span><a name="line.1884"></a>
+<span class="sourceLineNo">1885</span> @Override<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span> public byte[] next() {<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span> i++;<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span> if (i == 0) return a;<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span> if (i == num + 1) return b;<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span> BigInteger curBI = startBI.add(intervalBI.multiply(BigInteger.valueOf(i)));<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span> byte[] padded = curBI.toByteArray();<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span> if (padded[1] == 0) padded = tail(padded, padded.length - 2);<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span> else padded = tail(padded, padded.length - 1);<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span> return padded;<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span> }<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span><a name="line.1897"></a>
+<span class="sourceLineNo">1898</span> @Override<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span> public void remove() {<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span> throw new UnsupportedOperationException();<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span> }<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span><a name="line.1902"></a>
+<span class="sourceLineNo">1903</span> };<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span><a name="line.1904"></a>
+<span class="sourceLineNo">1905</span> return new Iterable<byte[]>() {<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span> @Override<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span> public Iterator<byte[]> iterator() {<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span> return iterator;<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span> }<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span> };<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span> }<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span><a name="line.1912"></a>
+<span class="sourceLineNo">1913</span> /**<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span> * Calculate the hash code for a given range of bytes.<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span> * @param bytes array to hash<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span> * @param offset offset to start from<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span> * @param length length to hash<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span> */<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span> public static int hashCode(byte[] bytes, int offset, int length) {<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span> int hash = 1;<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span> for (int i = offset; i < offset + length; i++)<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span> hash = (31 * hash) + bytes[i];<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span> return hash;<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span> }<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span><a name="line.1925"></a>
+<span class="sourceLineNo">1926</span> /**<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span> * Create an array of byte[] given an array of String.<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span> * @param t operands<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span> * @return Array of byte arrays made from passed array of Text<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span> */<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span> public static byte[][] toByteArrays(final String[] t) {<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span> byte[][] result = new byte[t.length][];<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span> for (int i = 0; i < t.length; i++) {<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span> result[i] = Bytes.toBytes(t[i]);<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span> }<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span> return result;<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span> }<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span><a name="line.1938"></a>
+<span class="sourceLineNo">1939</span> /**<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span> * Create an array of byte[] given an array of String.<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span> * @param t operands<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span> * @return Array of binary byte arrays made from passed array of binary strings<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span> */<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span> public static byte[][] toBinaryByteArrays(final String[] t) {<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span> byte[][] result = new byte[t.length][];<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span> for (int i = 0; i < t.length; i++) {<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span> result[i] = Bytes.toBytesBinary(t[i]);<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span> }<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span> return result;<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span> }<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span><a name="line.1951"></a>
+<span class="sourceLineNo">1952</span> /**<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span> * Create a byte[][] where first and only entry is <code>column</code><a name="line.1953"></a>
+<span class="sourceLineNo">1954</span> * @param column operand<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span> * @return A byte array of a byte array where first and only entry is <code>column</code><a name="line.1955"></a>
+<span class="sourceLineNo">1956</span> */<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span> public static byte[][] toByteArrays(final String column) {<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span> return toByteArrays(toBytes(column));<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span> }<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span><a name="line.1960"></a>
+<span class="sourceLineNo">1961</span> /**<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span> * Create a byte[][] where first and only entry is <code>column</code><a name="line.1962"></a>
+<span class="sourceLineNo">1963</span> * @param column operand<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span> * @return A byte array of a byte array where first and only entry is <code>column</code><a name="line.1964"></a>
+<span class="sourceLineNo">1965</span> */<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span> public static byte[][] toByteArrays(final byte[] column) {<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span> byte[][] result = new byte[1][];<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span> result[0] = column;<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span> return result;<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span> }<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span><a name="line.1971"></a>
+<span class="sourceLineNo">1972</span> /**<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span> * Binary search for keys in indexes using Bytes.BYTES_RAWCOMPARATOR.<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span> * @param arr array of byte arrays to search for<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span> * @param key the key you want to find<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span> * @param offset the offset in the key you want to find<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span> * @param length the length of the key<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span> * @return zero-based index of the key, if the key is present in the array. Otherwise, a value -(i<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span> * + 1) such that the key is between arr[i - 1] and arr[i] non-inclusively, where i is in<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span> * [0, i], if we define arr[-1] = -Inf and arr[N] = Inf for an N-element array. The above<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span> * means that this function can return 2N + 1 different values ranging from -(N + 1) to N<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span> * - 1.<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span> */<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span> public static int binarySearch(byte[][] arr, byte[] key, int offset, int length) {<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span> int low = 0;<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span> int high = arr.length - 1;<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span><a name="line.1987"></a>
+<span class="sourceLineNo">1988</span> while (low <= high) {<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span> int mid = low + ((high - low) >> 1);<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span> // we have to compare in this order, because the comparator order<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span> // has special logic when the 'left side' is a special key.<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span> int cmp =<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span> Bytes.BYTES_RAWCOMPARATOR.compare(key, offset, length, arr[mid], 0, arr[mid].length);<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span> // key lives above the midpoint<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span> if (cmp > 0) low = mid + 1;<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span> // key lives below the midpoint<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span> else if (cmp < 0) high = mid - 1;<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span> // BAM. how often does this really happen?<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span> else return mid;<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span> }<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span> return -(low + 1);<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span> }<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span><a name="line.2003"></a>
+<span class="sourceLineNo">2004</span> /**<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span> * Binary search for keys in indexes.<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span> * @param arr array of byte arrays to search for<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span> * @param key the key you want to find<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span> * @param comparator a comparator to compare.<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span> * @return zero-based index of the key, if the key is present in the array. Otherwise, a value -(i<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span> * + 1) such that the key is between arr[i - 1] and arr[i] non-inclusively, where i is in<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span> * [0, i], if we define arr[-1] = -Inf and arr[N] = Inf for an N-element array. The above<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span> * means that this function can return 2N + 1 different values ranging from -(N + 1) to N<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span> * - 1.<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span> * @return the index of the block<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span> */<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span> public static int binarySearch(Cell[] arr, Cell key, CellComparator comparator) {<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span> int low = 0;<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span> int high = arr.length - 1;<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span> while (low <= high) {<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span> int mid = low + ((high - low) >> 1);<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span> // we have to compare in this order, because the comparator order<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span> // has special logic when the 'left side' is a special key.<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span> int cmp = comparator.compare(key, arr[mid]);<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span> // key lives above the midpoint<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span> if (cmp > 0) low = mid + 1;<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span> // key lives below the midpoint<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span> else if (cmp < 0) high = mid - 1;<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span> // BAM. how often does this really happen?<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span> else return mid;<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span> }<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span> return -(low + 1);<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span> }<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span><a name="line.2033"></a>
+<span class="sourceLineNo">2034</span> /**<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span> * Bytewise binary increment/deincrement of long contained in byte array on given amount.<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span> * @param value - array of bytes containing long (length &lt;= SIZEOF_LONG)<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span> * @param amount value will be incremented on (deincremented if negative)<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span> * @return array of bytes containing incremented long (length == SIZEOF_LONG)<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span> */<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span> public static byte[] incrementBytes(byte[] value, long amount) {<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span> byte[] val = value;<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span> if (val.length < SIZEOF_LONG) {<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span> // Hopefully this doesn't happen too often.<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span> byte[] newvalue;<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span> if (val[0] < 0) {<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span> newvalue = new byte[] { -1, -1, -1, -1, -1, -1, -1, -1 };<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span> } else {<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span> newvalue = new byte[SIZEOF_LONG];<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span> }<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span> System.arraycopy(val, 0, newvalue, newvalue.length - val.length, val.length);<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span> val = newvalue;<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span> } else if (val.length > SIZEOF_LONG) {<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span> throw new IllegalArgumentException("Increment Bytes - value too big: " + val.length);<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span> }<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span> if (amount == 0) return val;<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span> if (val[0] < 0) {<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span> return binaryIncrementNeg(val, amount);<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span> }<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span> return binaryIncrementPos(val, amount);<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span> }<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span><a name="line.2061"></a>
+<span class="sourceLineNo">2062</span> /* increment/deincrement for positive value */<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span> private static byte[] binaryIncrementPos(byte[] value, long amount) {<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span> long amo = amount;<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span> int sign = 1;<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span> if (amount < 0) {<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span> amo = -amount;<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span> sign = -1;<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span> }<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span> for (int i = 0; i < value.length; i++) {<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span> int cur = ((int) amo % 256) * sign;<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span> amo = (amo >> 8);<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span> int val = value[value.length - i - 1] & 0x0ff;<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span> int total = val + cur;<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span> if (total > 255) {<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span> amo += sign;<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span> total %= 256;<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span> } else if (total < 0) {<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span> amo -= sign;<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span> }<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span> value[value.length - i - 1] = (byte) total;<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span> if (amo == 0) return value;<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span> }<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span> return value;<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span> }<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span><a name="line.2086"></a>
+<span class="sourceLineNo">2087</span> /* increment/deincrement for negative value */<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span> private static byte[] binaryIncrementNeg(byte[] value, long amount) {<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span> long amo = amount;<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span> int sign = 1;<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span> if (amount < 0) {<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span> amo = -amount;<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span> sign = -1;<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span> }<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span> for (int i = 0; i < value.length; i++) {<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span> int cur = ((int) amo % 256) * sign;<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span> amo = (amo >> 8);<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span> int val = (~value[value.length - i - 1] & 0x0ff) + 1;<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span> int total = cur - val;<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span> if (total >= 0) {<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span> amo += sign;<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span> } else if (total < -256) {<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span> amo -= sign;<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span> total %= 256;<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span> }<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span> value[value.length - i - 1] = (byte) total;<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span> if (amo == 0) return value;<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span> }<a name="line.2108"></a>
+<span class="sourceLineNo">2109</span> return value;<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span> }<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span><a name="line.2111"></a>
+<span class="sourceLineNo">2112</span> /**<a name="line.2112"></a>
+<span class="sourceLineNo">2113</span> * Writes a string as a fixed-size field, padded with zeros.<a name="line.2113"></a>
+<span class="sourceLineNo">2114</span> */<a name="line.2114"></a>
+<span class="sourceLineNo">2115</span> public static void writeStringFixedSize(final DataOutput out, String s, int size)<a name="line.2115"></a>
+<span class="sourceLineNo">2116</span> throws IOException {<a name="line.2116"></a>
+<span class="sourceLineNo">2117</span> byte[] b = toBytes(s);<a name="line.2117"></a>
+<span class="sourceLineNo">2118</span> if (b.length > size) {<a name="line.2118"></a>
+<span class="sourceLineNo">2119</span> throw new IOException("Trying to write " + b.length + " bytes (" + toStringBinary(b)<a name="line.2119"></a>
+<span class="sourceLineNo">2120</span> + ") into a field of length " + size);<a name="line.2120"></a>
+<span class="sourceLineNo">2121</span> }<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span><a name="line.2122"></a>
+<span class="sourceLineNo">2123</span> out.writeBytes(s);<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span> for (int i = 0; i < size - s.length(); ++i)<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span> out.writeByte(0);<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span> }<a name="line.2126"></a>
+<span class="sourceLineNo">2127</span><a name="line.2127"></a>
+<span class="sourceLineNo">2128</span> /**<a name="line.2128"></a>
+<span class="sourceLineNo">2129</span> * Reads a fixed-size field and interprets it as a string padded with zeros.<a name="line.2129"></a>
+<span class="sourceLineNo">2130</span> */<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span> public static String readStringFixedSize(final DataInput in, int size) throws IOException {<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span> byte[] b = new byte[size];<a name="line.2132"></a>
+<span class="sourceLineNo">2133</span> in.readFully(b);<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span> int n = b.length;<a name="line.2134"></a>
+<span class="sourceLineNo">2135</span> while (n > 0 && b[n - 1] == 0)<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span> --n;<a name="line.2136"></a>
+<span class="sourceLineNo">2137</span><a name="line.2137"></a>
+<span class="sourceLineNo">2138</span> return toString(b, 0, n);<a name="line.2138"></a>
+<span class="sourceLineNo">2139</span> }<a name="line.2139"></a>
+<span class="sourceLineNo">2140</span><a name="line.2140"></a>
+<span class="sourceLineNo">2141</span> /**<a name="line.2141"></a>
+<span class="sourceLineNo">2142</span> * Copy the byte array given in parameter and return an instance of a new byte array with the same<a name="line.2142"></a>
+<span class="sourceLineNo">2143</span> * length and the same content.<a name="line.2143"></a>
+<span class="sourceLineNo">2144</span> * @param bytes the byte array to duplicate<a name="line.2144"></a>
+<span class="sourceLineNo">2145</span> * @return a copy of the given byte array<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span> */<a name="line.2146"></a>
+<span class="sourceLineNo">2147</span> public static byte[] copy(byte[] bytes) {<a name="line.2147"></a>
+<span class="sourceLineNo">2148</span> if (bytes == null) return null;<a name="line.2148"></a>
+<span class="sourceLineNo">2149</span> byte[] result = new byte[bytes.length];<a name="line.2149"></a>
+<span class="sourceLineNo">2150</span> System.arraycopy(bytes, 0, result, 0, bytes.length);<a name="line.2150"></a>
+<span class="sourceLineNo">2151</span> return result;<a name="line.2151"></a>
+<span class="sourceLineNo">2152</span> }<a name="line.2152"></a>
+<span class="sourceLineNo">2153</span><a name="line.2153"></a>
+<span class="sourceLineNo">2154</span> /**<a name="line.2154"></a>
+<span class="sourceLineNo">2155</span> * Copy the byte array given in parameter and return an instance of a new byte array with the same<a name="line.2155"></a>
+<span class="sourceLineNo">2156</span> * length and the same content.<a name="line.2156"></a>
+<span class="sourceLineNo">2157</span> * @param bytes the byte array to copy from<a name="line.2157"></a>
+<span class="sourceLineNo">2158</span> * @return a copy of the given designated byte array<a name="line.2158"></a>
+<span class="sourceLineNo">2159</span> */<a name="line.2159"></a>
+<span class="sourceLineNo">2160</span> public static byte[] copy(byte[] bytes, final int offset, final int length) {<a name="line.2160"></a>
+<span class="sourceLineNo">2161</span> if (bytes == null) return null;<a name="line.2161"></a>
+<span class="sourceLineNo">2162</span> byte[] result = new byte[length];<a name="line.2162"></a>
+<span class="sourceLineNo">2163</span> System.arraycopy(bytes, offset, result, 0, length);<a name="line.2163"></a>
+<span class="sourceLineNo">2164</span> return result;<a name="line.2164"></a>
+<span class="sourceLineNo">2165</span> }<a name="line.2165"></a>
+<span class="sourceLineNo">2166</span><a name="line.2166"></a>
+<span class="sourceLineNo">2167</span> /**<a name="line.2167"></a>
+<span class="sourceLineNo">2168</span> * Search sorted array "a" for byte "key". I can't remember if I wrote this or copied it from<a name="line.2168"></a>
+<span class="sourceLineNo">2169</span> * somewhere. (mcorgan)<a name="line.2169"></a>
+<span class="sourceLineNo">2170</span> * @param a Array to search. Entries must be sorted and unique.<a name="line.2170"></a>
+<span class="sourceLineNo">2171</span> * @param fromIndex First index inclusive of "a" to include in the search.<a name="line.2171"></a>
+<span class="sourceLineNo">2172</span> * @param toIndex Last index exclusive of "a" to include in the search.<a name="line.2172"></a>
+<span class="sourceLineNo">2173</span> * @param key The byte to search for.<a name="line.2173"></a>
+<span class="sourceLineNo">2174</span> * @return The index of key if found. If not found, return -(index + 1), where negative indicates<a name="line.2174"></a>
+<span class="sourceLineNo">2175</span> * "not found" and the "index + 1" handles the "-0" case.<a name="line.2175"></a>
+<span class="sourceLineNo">2176</span> */<a name="line.2176"></a>
+<span class="sourceLineNo">2177</span> public static int unsignedBinarySearch(byte[] a, int fromIndex, int toIndex, byte key) {<a name="line.2177"></a>
+<span class="sourceLineNo">2178</span> int unsignedKey = key & 0xff;<a name="line.2178"></a>
+<span class="sourceLineNo">2179</span> int low = fromIndex;<a name="line.2179"></a>
+<span class="sourceLineNo">2180</span> int high = toIndex - 1;<a name="line.2180"></a>
+<span class="sourceLineNo">2181</span><a name="line.2181"></a>
+<span class="sourceLineNo">2182</span> while (low <= high) {<a name="line.2182"></a>
+<span class="sourceLineNo">2183</span> int mid = low + ((high - low) >> 1);<a name="line.2183"></a>
+<span class="sourceLineNo">2184</span> int midVal = a[mid] & 0xff;<a name="line.2184"></a>
+<span class="sourceLineNo">2185</span><a name="line.2185"></a>
+<span class="sourceLineNo">2186</span> if (midVal < unsignedKey) {<a name="line.2186"></a>
+<span class="sourceLineNo">2187</span> low = mid + 1;<a name="line.2187"></a>
+<span class="sourceLineNo">2188</span> } else if (midVal > unsignedKey) {<a name="line.2188"></a>
+<span class="sourceLineNo">2189</span> high = mid - 1;<a name="line.2189"></a>
+<span class="sourceLineNo">2190</span> } else {<a name="line.2190"></a>
+<span class="sourceLineNo">2191</span> return mid; // key found<a name="line.2191"></a>
+<span class="sourceLineNo">2192</span> }<a name="line.2192"></a>
+<span class="sourceLineNo">2193</span> }<a name="line.2193"></a>
+<span class="sourceLineNo">2194</span> return -(low + 1); // key not found.<a name="line.2194"></a>
+<span class="sourceLineNo">2195</span> }<a name="line.2195"></a>
+<span class="sourceLineNo">2196</span><a name="line.2196"></a>
+<span class="sourceLineNo">2197</span> /**<a name="line.2197"></a>
+<span class="sourceLineNo">2198</span> * Treat the byte[] as an unsigned series of bytes, most significant bits first. Start by adding 1<a name="line.2198"></a>
+<span class="sourceLineNo">2199</span> * to the rightmost bit/byte and carry over all overflows to the more significant bits/bytes.<a name="line.2199"></a>
+<span class="sourceLineNo">2200</span> * @param input The byte[] to increment.<a name="line.2200"></a>
+<span class="sourceLineNo">2201</span> * @return The incremented copy of "in". May be same length or 1 byte longer.<a name="line.2201"></a>
+<span class="sourceLineNo">2202</span> */<a name="line.2202"></a>
+<span class="sourceLineNo">2203</span> public static byte[] unsignedCopyAndIncrement(final byte[] input) {<a name="line.2203"></a>
+<span class="sourceLineNo">2204</span> byte[] copy = copy(input);<a name="line.2204"></a>
+<span class="sourceLineNo">2205</span> if (copy == null) {<a name="line.2205"></a>
+<span class="sourceLineNo">2206</span> throw new IllegalArgumentException("cannot increment null array");<a name="line.2206"></a>
+<span class="sourceLineNo">2207</span> }<a name="line.2207"></a>
+<span class="sourceLineNo">2208</span> for (int i = copy.length - 1; i >= 0; --i) {<a name="line.2208"></a>
+<span class="sourceLineNo">2209</span> if (copy[i] == -1) {// -1 is all 1-bits, which is the unsigned maximum<a name="line.2209"></a>
+<span class="sourceLineNo">2210</span> copy[i] = 0;<a name="line.2210"></a>
+<span class="sourceLineNo">2211</span> } else {<a name="line.2211"></a>
+<span class="sourceLineNo">2212</span> ++copy[i];<a name="line.2212"></a>
+<span class="sourceLineNo">2213</span> return copy;<a name="line.2213"></a>
+<span class="sourceLineNo">2214</span> }<a name="line.2214"></a>
+<span class="sourceLineNo">2215</span> }<a name="line.2215"></a>
+<span class="sourceLineNo">2216</span> // we maxed out the array<a name="line.2216"></a>
+<span class="sourceLineNo">2217</span> byte[] out = new byte[copy.length + 1];<a name="line.2217"></a>
+<span class="sourceLineNo">2218</span> out[0] = 1;<a name="line.2218"></a>
+<span class="sourceLineNo">2219</span> System.arraycopy(copy, 0, out, 1, copy.length);<a name="line.2219"></a>
+<span class="sourceLineNo">2220</span> return out;<a name="line.2220"></a>
+<span class="sourceLineNo">2221</span> }<a name="line.2221"></a>
+<span class="sourceLineNo">2222</span><a name="line.2222"></a>
+<span class="sourceLineNo">2223</span> public static boolean equals(List<byte[]> a, List<byte[]> b) {<a name="line.2223"></a>
+<span class="sourceLineNo">2224</span> if (a == null) {<a name="line.2224"></a>
+<span class="sourceLineNo">2225</span> if (b == null) {<a name="line.2225"></a>
+<span class="sourceLineNo">2226</span> return true;<a name="line.2226"></a>
+<span class="sourceLineNo">2227</span> }<a name="line.2227"></a>
+<span class="sourceLineNo">2228</span> return false;<a name="line.2228"></a>
+<span class="sourceLineNo">2229</span> }<a name="line.2229"></a>
+<span class="sourceLineNo">2230</span> if (b == null) {<a name="line.2230"></a>
+<span class="sourceLineNo">2231</span> return false;<a name="line.2231"></a>
+<span class="sourceLineNo">2232</span> }<a name="line.2232"></a>
+<span class="sourceLineNo">2233</span> if (a.size() != b.size()) {<a name="line.2233"></a>
+<span class="sourceLineNo">2234</span> return false;<a name="line.2234"></a>
+<span class="sourceLineNo">2235</span> }<a name="line.2235"></a>
+<span class="sourceLineNo">2236</span> for (int i = 0; i < a.size(); ++i) {<a name="line.2236"></a>
+<span class="sourceLineNo">2237</span> if (!Bytes.equals(a.get(i), b.get(i))) {<a name="line.2237"></a>
+<span class="sourceLineNo">2238</span> return false;<a name="line.2238"></a>
+<span class="sourceLineNo">2239</span> }<a name="line.2239"></a>
+<span class="sourceLineNo">2240</span> }<a name="line.2240"></a>
+<span class="sourceLineNo">2241</span> return true;<a name="line.2241"></a>
+<span class="sourceLineNo">2242</span> }<a name="line.2242"></a>
+<span class="sourceLineNo">2243</span><a name="line.2243"></a>
+<span class="sourceLineNo">2244</span> public static boolean isSorted(Collection<byte[]> arrays) {<a name="line.2244"></a>
+<span class="sourceLineNo">2245</span> if (!CollectionUtils.isEmpty(arrays)) {<a name="line.2245"></a>
+<span class="sourceLineNo">2246</span> byte[] previous = new byte[0];<a name="line.2246"></a>
+<span class="sourceLineNo">2247</span> for (byte[] array : arrays) {<a name="line.2247"></a>
+<span class="sourceLineNo">2248</span> if (Bytes.compareTo(previous, array) > 0) {<a name="line.2248"></a>
+<span class="sourceLineNo">2249</span> return false;<a name="line.2249"></a>
+<span class="sourceLineNo">2250</span> }<a name="line.2250"></a>
+<span class="sourceLineNo">2251</span> previous = array;<a name="line.2251"></a>
+<span class="sourceLineNo">2252</span> }<a name="line.2252"></a>
+<span class="sourceLineNo">2253</span> }<a name="line.2253"></a>
+<span class="sourceLineNo">2254</span> return true;<a name="line.2254"></a>
+<span class="sourceLineNo">2255</span> }<a name="line.2255"></a>
+<span class="sourceLineNo">2256</span><a name="line.2256"></a>
+<span class="sourceLineNo">2257</span> public static List<byte[]> getUtf8ByteArrays(List<String> strings) {<a name="line.2257"></a>
+<span class="sourceLineNo">2258</span> if (CollectionUtils.isEmpty(strings)) {<a name="line.2258"></a>
+<span class="sourceLineNo">2259</span> return Collections.emptyList();<a name="line.2259"></a>
+<span class="sourceLineNo">2260</span> }<a name="line.2260"></a>
+<span class="sourceLineNo">2261</span> List<byte[]> byteArrays = new ArrayList<>(strings.size());<a name="line.2261"></a>
+<span class="sourceLineNo">2262</span> strings.forEach(s -> byteArrays.add(Bytes.toBytes(s)));<a name="line.2262"></a>
+<span class="sourceLineNo">2263</span> return byteArrays;<a name="line.2263"></a>
+<span class="sourceLineNo">2264</span> }<a name="line.2264"></a>
+<span class="sourceLineNo">2265</span><a name="line.2265"></a>
+<span class="sourceLineNo">2266</span> /**<a name="line.2266"></a>
+<span class="sourceLineNo">2267</span> * Returns the index of the first appearance of the value {@code target} in {@code array}.<a name="line.2267"></a>
+<span class="sourceLineNo">2268</span> * @param array an array of {@code byte} values, possibly empty<a name="line.2268"></a>
+<span class="sourceLineNo">2269</span> * @param target a primitive {@code byte} value<a name="line.2269"></a>
+<span class="sourceLineNo">2270</span> * @return the least index {@code i} for which {@code array[i] == target}, or {@code -1} if no<a name="line.2270"></a>
+<span class="sourceLineNo">2271</span> * such index exists.<a name="line.2271"></a>
+<span class="sourceLineNo">2272</span> */<a name="line.2272"></a>
+<span class="sourceLineNo">2273</span> public static int indexOf(byte[] array, byte target) {<a name="line.2273"></a>
+<span class="sourceLineNo">2274</span> for (int i = 0; i < array.length; i++) {<a name="line.2274"></a>
+<span class="sourceLineNo">2275</span> if (array[i] == target) {<a name="line.2275"></a>
+<span class="sourceLineNo">2276</span> return i;<a name="line.2276"></a>
+<span class="sourceLineNo">2277</span> }<a name="line.2277"></a>
+<span class="sourceLineNo">2278</span> }<a name="line.2278"></a>
+<span class="sourceLineNo">2279</span> return -1;<a name="line.2279"></a>
+<span class="sourceLineNo">2280</span> }<a name="line.2280"></a>
+<span class="sourceLineNo">2281</span><a name="line.2281"></a>
+<span class="sourceLineNo">2282</span> /**<a name="line.2282"></a>
+<span class="sourceLineNo">2283</span> * Returns the start position of the first occurrence of the specified {@code<a name="line.2283"></a>
+<span class="sourceLineNo">2284</span> * target} within {@code array}, or {@code -1} if there is no such occurrence.<a name="line.2284"></a>
+<span class="sourceLineNo">2285</span> * <p><a name="line.2285"></a>
+<span class="sourceLineNo">2286</span> * More formally, returns the lowest index {@code i} such that {@code<a name="line.2286"></a>
+<span class="sourceLineNo">2287</span> * java.util.Arrays.copyOfRange(array, i, i + target.length)} contains exactly the same elements<a name="line.2287"></a>
+<span class="sourceLineNo">2288</span> * as {@code target}.<a name="line.2288"></a>
+<span class="sourceLineNo">2289</span> * @param array the array to search for the sequence {@code target}<a name="line.2289"></a>
+<span class="sourceLineNo">2290</span> * @param target the array to search for as a sub-sequence of {@code array}<a name="line.2290"></a>
+<span class="sourceLineNo">2291</span> */<a name="line.2291"></a>
+<span class="sourceLineNo">2292</span> public static int indexOf(byte[] array, byte[] target) {<a name="line.2292"></a>
+<span class="sourceLineNo">2293</span> checkNotNull(array, "array");<a name="line.2293"></a>
+<span class="sourceLineNo">2294</span> checkNotNull(target, "target");<a name="line.2294"></a>
+<span class="sourceLineNo">2295</span> if (target.length == 0) {<a name="line.2295"></a>
+<span class="sourceLineNo">2296</span> return 0;<a name="line.2296"></a>
+<span class="sourceLineNo">2297</span> }<a name="line.2297"></a>
+<span class="sourceLineNo">2298</span><a name="line.2298"></a>
+<span class="sourceLineNo">2299</span> outer: for (int i = 0; i < array.length - target.length + 1; i++) {<a name="line.2299"></a>
+<span class="sourceLineNo">2300</span> for (int j = 0; j < target.length; j++) {<a name="line.2300"></a>
+<span class="sourceLineNo">2301</span> if (array[i + j] != target[j]) {<a name="line.2301"></a>
+<span class="sourceLineNo">2302</span> continue outer;<a name="line.2302"></a>
+<span class="sourceLineNo">2303</span> }<a name="line.2303"></a>
+<span class="sourceLineNo">2304</span> }<a name="line.2304"></a>
+<span class="sourceLineNo">2305</span> return i;<a name="line.2305"></a>
+<span class="sourceLineNo">2306</span> }<a name="line.2306"></a>
+<span class="sourceLineNo">2307</span> return -1;<a name="line.2307"></a>
<span class="sourceLineNo">2308</span> }<a name="line.2308"></a>
<span class="sourceLineNo">2309</span><a name="line.2309"></a>
<span class="sourceLineNo">2310</span> /**<a name="line.2310"></a>
-<span class="sourceLineNo">2311</span> * Create a max byte array with the specified max byte count<a name="line.2311"></a>
-<span class="sourceLineNo">2312</span> * @param maxByteCount the length of returned byte array<a name="line.2312"></a>
-<span class="sourceLineNo">2313</span> * @return the created max byte array<a name="line.2313"></a>
-<span class="sourceLineNo">2314</span> */<a name="line.2314"></a>
-<span class="sourceLineNo">2315</span> public static byte[] createMaxByteArray(int maxByteCount) {<a name="line.2315"></a>
-<span class="sourceLineNo">2316</span> byte[] maxByteArray = new byte[maxByteCount];<a name="line.2316"></a>
-<span class="sourceLineNo">2317</span> for (int i = 0; i < maxByteArray.length; i++) {<a name="line.2317"></a>
-<span class="sourceLineNo">2318</span> maxByteArray[i] = (byte) 0xff;<a name="line.2318"></a>
-<span class="sourceLineNo">2319</span> }<a name="line.2319"></a>
-<span class="sourceLineNo">2320</span> return maxByteArray;<a name="line.2320"></a>
-<span class="sourceLineNo">2321</span> }<a name="line.2321"></a>
-<span class="sourceLineNo">2322</span><a name="line.2322"></a>
-<span class="sourceLineNo">2323</span> /**<a name="line.2323"></a>
-<span class="sourceLineNo">2324</span> * Create a byte array which is multiple given bytes<a name="line.2324"></a>
-<span class="sourceLineNo">2325</span> * @return byte array<a name="line.2325"></a>
-<span class="sourceLineNo">2326</span> */<a name="line.2326"></a>
-<span class="sourceLineNo">2327</span> public static byte[] multiple(byte[] srcBytes, int multiNum) {<a name="line.2327"></a>
-<span class="sourceLineNo">2328</span> if (multiNum <= 0) {<a name="line.2328"></a>
-<span class="sourceLineNo">2329</span> return new byte[0];<a name="line.2329"></a>
-<span class="sourceLineNo">2330</span> }<a name="line.2330"></a>
-<span class="sourceLineNo">2331</span> byte[] result = new byte[srcBytes.length * multiNum];<a name="line.2331"></a>
-<span class="sourceLineNo">2332</span> for (int i = 0; i < multiNum; i++) {<a name="line.2332"></a>
-<span class="sourceLineNo">2333</span> System.arraycopy(srcBytes, 0, result, i * srcBytes.length, srcBytes.length);<a name="line.2333"></a>
-<span class="sourceLineNo">2334</span> }<a name="line.2334"></a>
-<span class="sourceLineNo">2335</span> return result;<a name="line.2335"></a>
+<span class="sourceLineNo">2311</span> * Return true if target is present as an element anywhere in the given array.<a name="line.2311"></a>
+<span class="sourceLineNo">2312</span> * @param array an array of {@code byte} values, possibly empty<a name="line.2312"></a>
+<span class="sourceLineNo">2313</span> * @param target a primitive {@code byte} value<a name="line.2313"></a>
+<span class="sourceLineNo">2314</span> * @return {@code true} if {@code target} is present as an element anywhere in {@code array}.<a name="line.2314"></a>
+<span class="sourceLineNo">2315</span> */<a name="line.2315"></a>
+<span class="sourceLineNo">2316</span> public static boolean contains(byte[] array, byte target) {<a name="line.2316"></a>
+<span class="sourceLineNo">2317</span> return indexOf(array, target) > -1;<a name="line.2317"></a>
+<span class="sourceLineNo">2318</span> }<a name="line.2318"></a>
+<span class="sourceLineNo">2319</span><a name="line.2319"></a>
+<span class="sourceLineNo">2320</span> /**<a name="line.2320"></a>
+<span class="sourceLineNo">2321</span> * Return true if target is present as an element anywhere in the given array.<a name="line.2321"></a>
+<span class="sourceLineNo">2322</span> * @param array an array of {@code byte} values, possibly empty<a name="line.2322"></a>
+<span class="sourceLineNo">2323</span> * @param target an array of {@code byte}<a name="line.2323"></a>
+<span class="sourceLineNo">2324</span> * @return {@code true} if {@code target} is present anywhere in {@code array}<a name="line.2324"></a>
+<span class="sourceLineNo">2325</span> */<a name="line.2325"></a>
+<span class="sourceLineNo">2326</span> public static boolean contains(byte[] array, byte[] target) {<a name="line.2326"></a>
+<span class="sourceLineNo">2327</span> return indexOf(array, target) > -1;<a name="line.2327"></a>
+<span class="sourceLineNo">2328</span> }<a name="line.2328"></a>
+<span class="sourceLineNo">2329</span><a name="line.2329"></a>
+<span class="sourceLineNo">2330</span> /**<a name="line.2330"></a>
+<span class="sourceLineNo">2331</span> * Fill given array with zeros.<a name="line.2331"></a>
+<span class="sourceLineNo">2332</span> * @param b array which needs to be filled with zeros<a name="line.2332"></a>
+<span class="sourceLineNo">2333</span> */<a name="line.2333"></a>
+<span class="sourceLineNo">2334</span> public static void zero(byte[] b) {<a name="line.2334"></a>
+<span class="sourceLineNo">2335</span> zero(b, 0, b.length);<a name="line.2335"></a>
<span class="sourceLineNo">2336</span> }<a name="line.2336"></a>
<span class="sourceLineNo">2337</span><a name="line.2337"></a>
-<span class="sourceLineNo">2338</span> private static final char[] HEX_CHARS =<a name="line.2338"></a>
-<span class="sourceLineNo">2339</span> { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };<a name="line.2339"></a>
-<span class="sourceLineNo">2340</span><a name="line.2340"></a>
-<span class="sourceLineNo">2341</span> /**<a name="line.2341"></a>
-<span class="sourceLineNo">2342</span> * Convert a byte range into a hex string<a name="line.2342"></a>
-<span class="sourceLineNo">2343</span> */<a name="line.2343"></a>
-<span class="sourceLineNo">2344</span> public static String toHex(byte[] b, int offset, int length) {<a name="line.2344"></a>
-<span class="sourceLineNo">2345</span> checkArgument(length <= Integer.MAX_VALUE / 2);<a name="line.2345"></a>
-<span class="sourceLineNo">2346</span> int numChars = length * 2;<a name="line.2346"></a>
-<span class="sourceLineNo">2347</span> char[] ch = new char[numChars];<a name="line.2347"></a>
-<span class="sourceLineNo">2348</span> for (int i = 0; i < numChars; i += 2) {<a name="line.2348"></a>
-<span class="sourceLineNo">2349</span> byte d = b[offset + i / 2];<a name="line.2349"></a>
-<span class="sourceLineNo">2350</span> ch[i] = HEX_CHARS[(d >> 4) & 0x0F];<a name="line.2350"></a>
-<span class="sourceLineNo">2351</span> ch[i + 1] = HEX_CHARS[d & 0x0F];<a name="line.2351"></a>
-<span class="sourceLineNo">2352</span> }<a name="line.2352"></a>
-<span class="sourceLineNo">2353</span> return new String(ch);<a name="line.2353"></a>
-<span class="sourceLineNo">2354</span> }<a name="line.2354"></a>
-<span class="sourceLineNo">2355</span><a name="line.2355"></a>
-<span class="sourceLineNo">2356</span> /**<a name="line.2356"></a>
-<span class="sourceLineNo">2357</span> * Convert a byte array into a hex string<a name="line.2357"></a>
+<span class="sourceLineNo">2338</span> /**<a name="line.2338"></a>
+<span class="sourceLineNo">2339</span> * Fill given array with zeros at the specified position.<a name="line.2339"></a>
+<span class="sourceLineNo">2340</span> */<a name="line.2340"></a>
+<span class="sourceLineNo">2341</span> public static void zero(byte[] b, int offset, int length) {<a name="line.2341"></a>
+<span class="sourceLineNo">2342</span> checkPositionIndex(offset, b.length, "offset");<a name="line.2342"></a>
+<span class="sourceLineNo">2343</span> checkArgument(length > 0, "length must be greater than 0");<a name="line.2343"></a>
+<span class="sourceLineNo">2344</span> checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2344"></a>
+<span class="sourceLineNo">2345</span> Arrays.fill(b, offset, offset + length, (byte) 0);<a name="line.2345"></a>
+<span class="sourceLineNo">2346</span> }<a name="line.2346"></a>
+<span class="sourceLineNo">2347</span><a name="line.2347"></a>
+<span class="sourceLineNo">2348</span> // Pseudorandom random number generator, do not use SecureRandom here<a name="line.2348"></a>
+<span class="sourceLineNo">2349</span> private static final Random RNG = new Random();<a name="line.2349"></a>
+<span class="sourceLineNo">2350</span><a name="line.2350"></a>
+<span class="sourceLineNo">2351</span> /**<a name="line.2351"></a>
+<span class="sourceLineNo">2352</span> * Fill given array with random bytes.<a name="line.2352"></a>
+<span class="sourceLineNo">2353</span> * @param b array which needs to be filled with random bytes<a name="line.2353"></a>
+<span class="sourceLineNo">2354</span> * <p><a name="line.2354"></a>
+<span class="sourceLineNo">2355</span> * If you want random bytes generated by a strong source of randomness use<a name="line.2355"></a>
+<span class="sourceLineNo">2356</span> * {@link Bytes#secureRandom(byte[])}.<a name="line.2356"></a>
+<span class="sourceLineNo">2357</span> * @param b array which needs to be filled with random bytes<a name="line.2357"></a>
<span class="sourceLineNo">2358</span> */<a name="line.2358"></a>
-<span class="sourceLineNo">2359</span> public static String toHex(byte[] b) {<a name="line.2359"></a>
-<span class="sourceLineNo">2360</span> return toHex(b, 0, b.length);<a name="line.2360"></a>
+<span class="sourceLineNo">2359</span> public static void random(byte[] b) {<a name="line.2359"></a>
+<span class="sourceLineNo">2360</span> RNG.nextBytes(b);<a name="line.2360"></a>
<span class="sourceLineNo">2361</span> }<a name="line.2361"></a>
<span class="sourceLineNo">2362</span><a name="line.2362"></a>
-<span class="sourceLineNo">2363</span> private static int hexCharToNibble(char ch) {<a name="line.2363"></a>
-<span class="sourceLineNo">2364</span> if (ch <= '9' && ch >= '0') {<a name="line.2364"></a>
-<span class="sourceLineNo">2365</span> return ch - '0';<a name="line.2365"></a>
-<span class="sourceLineNo">2366</span> } else if (ch >= 'a' && ch <= 'f') {<a name="line.2366"></a>
-<span class="sourceLineNo">2367</span> return ch - 'a' + 10;<a name="line.2367"></a>
-<span class="sourceLineNo">2368</span> } else if (ch >= 'A' && ch <= 'F') {<a name="line.2368"></a>
-<span class="sourceLineNo">2369</span> return ch - 'A' + 10;<a name="line.2369"></a>
-<span class="sourceLineNo">2370</span> }<a name="line.2370"></a>
-<span class="sourceLineNo">2371</span> throw new IllegalArgumentException("Invalid hex char: " + ch);<a name="line.2371"></a>
-<span class="sourceLineNo">2372</span> }<a name="line.2372"></a>
-<span class="sourceLineNo">2373</span><a name="line.2373"></a>
-<span class="sourceLineNo">2374</span> private static byte hexCharsToByte(char c1, char c2) {<a name="line.2374"></a>
-<span class="sourceLineNo">2375</span> return (byte) ((hexCharToNibble(c1) << 4) | hexCharToNibble(c2));<a name="line.2375"></a>
-<span class="sourceLineNo">2376</span> }<a name="line.2376"></a>
-<span class="sourceLineNo">2377</span><a name="line.2377"></a>
-<span class="sourceLineNo">2378</span> /**<a name="line.2378"></a>
-<span class="sourceLineNo">2379</span> * Create a byte array from a string of hash digits. The length of the string must be a multiple<a name="line.2379"></a>
-<span class="sourceLineNo">2380</span> * of 2<a name="line.2380"></a>
-<span class="sourceLineNo">2381</span> */<a name="line.2381"></a>
-<span class="sourceLineNo">2382</span> public static byte[] fromHex(String hex) {<a name="line.2382"></a>
-<span class="sourceLineNo">2383</span> checkArgument(hex.length() % 2 == 0, "length must be a multiple of 2");<a name="line.2383"></a>
-<span class="sourceLineNo">2384</span> int len = hex.length();<a name="line.2384"></a>
-<span class="sourceLineNo">2385</span> byte[] b = new byte[len / 2];<a name="line.2385"></a>
-<span class="sourceLineNo">2386</span> for (int i = 0; i < len; i += 2) {<a name="line.2386"></a>
-<span class="sourceLineNo">2387</span> b[i / 2] = hexCharsToByte(hex.charAt(i), hex.charAt(i + 1));<a name="line.2387"></a>
-<span class="sourceLineNo">2388</span> }<a name="line.2388"></a>
-<span class="sourceLineNo">2389</span> return b;<a name="line.2389"></a>
+<span class="sourceLineNo">2363</span> /**<a name="line.2363"></a>
+<span class="sourceLineNo">2364</span> * Fill given array with random bytes at the specified position.<a name="line.2364"></a>
+<span class="sourceLineNo">2365</span> * <p><a name="line.2365"></a>
+<span class="sourceLineNo">2366</span> * If you want random bytes generated by a strong source of randomness use<a name="line.2366"></a>
+<span class="sourceLineNo">2367</span> * {@link Bytes#secureRandom(byte[], int, int)}.<a name="line.2367"></a>
+<span class="sourceLineNo">2368</span> * @param b array which needs to be filled with random bytes<a name="line.2368"></a>
+<span class="sourceLineNo">2369</span> * @param offset staring offset in array<a name="line.2369"></a>
+<span class="sourceLineNo">2370</span> * @param length number of bytes to fill<a name="line.2370"></a>
+<span class="sourceLineNo">2371</span> */<a name="line.2371"></a>
+<span class="sourceLineNo">2372</span> public static void random(byte[] b, int offset, int length) {<a name="line.2372"></a>
+<span class="sourceLineNo">2373</span> checkPositionIndex(offset, b.length, "offset");<a name="line.2373"></a>
+<span class="sourceLineNo">2374</span> checkArgument(length > 0, "length must be greater than 0");<a name="line.2374"></a>
+<span class="sourceLineNo">2375</span> checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2375"></a>
+<span class="sourceLineNo">2376</span> byte[] buf = new byte[length];<a name="line.2376"></a>
+<span class="sourceLineNo">2377</span> RNG.nextBytes(buf);<a name="line.2377"></a>
+<span class="sourceLineNo">2378</span> System.arraycopy(buf, 0, b, offset, length);<a name="line.2378"></a>
+<span class="sourceLineNo">2379</span> }<a name="line.2379"></a>
+<span class="sourceLineNo">2380</span><a name="line.2380"></a>
+<span class="sourceLineNo">2381</span> // Bytes.secureRandom may be used to create key material.<a name="line.2381"></a>
+<span class="sourceLineNo">2382</span> private static final SecureRandom SECURE_RNG = new SecureRandom();<a name="line.2382"></a>
+<span class="sourceLineNo">2383</span><a name="line.2383"></a>
+<span class="sourceLineNo">2384</span> /**<a name="line.2384"></a>
+<span class="sourceLineNo">2385</span> * Fill given array with random bytes using a strong random number generator.<a name="line.2385"></a>
+<span class="sourceLineNo">2386</span> * @param b array which needs to be filled with random bytes<a name="line.2386"></a>
+<span class="sourceLineNo">2387</span> */<a name="line.2387"></a>
+<span class="sourceLineNo">2388</span> public static void secureRandom(byte[] b) {<a name="line.2388"></a>
+<span class="sourceLineNo">2389</span> SECURE_RNG.nextBytes(b);<a name="line.2389"></a>
<span class="sourceLineNo">2390</span> }<a name="line.2390"></a>
<span class="sourceLineNo">2391</span><a name="line.2391"></a>
<span class="sourceLineNo">2392</span> /**<a name="line.2392"></a>
-<span class="sourceLineNo">2393</span> * Find index of passed delimiter.<a name="line.2393"></a>
-<span class="sourceLineNo">2394</span> * @return Index of delimiter having started from start of <code>b</code> moving rightward.<a name="line.2394"></a>
-<span class="sourceLineNo">2395</span> */<a name="line.2395"></a>
-<span class="sourceLineNo">2396</span> public static int searchDelimiterIndex(final byte[] b, int offset, final int length,<a name="line.2396"></a>
-<span class="sourceLineNo">2397</span> final int delimiter) {<a name="line.2397"></a>
-<span class="sourceLineNo">2398</span> if (b == null) {<a name="line.2398"></a>
-<span class="sourceLineNo">2399</span> throw new IllegalArgumentException("Passed buffer is null");<a name="line.2399"></a>
-<span class="sourceLineNo">2400</span> }<a name="line.2400"></a>
-<span class="sourceLineNo">2401</span> int result = -1;<a name="line.2401"></a>
-<span class="sourceLineNo">2402</span> for (int i = offset; i < length + offset; i++) {<a name="line.2402"></a>
-<span class="sourceLineNo">2403</span> if (b[i] == delimiter) {<a name="line.2403"></a>
-<span class="sourceLineNo">2404</span> result = i;<a name="line.2404"></a>
-<span class="sourceLineNo">2405</span> break;<a name="line.2405"></a>
-<span class="sourceLineNo">2406</span> }<a name="line.2406"></a>
-<span class="sourceLineNo">2407</span> }<a name="line.2407"></a>
-<span class="sourceLineNo">2408</span> return result;<a name="line.2408"></a>
-<span class="sourceLineNo">2409</span> }<a name="line.2409"></a>
-<span class="sourceLineNo">2410</span><a name="line.2410"></a>
-<span class="sourceLineNo">2411</span> /**<a name="line.2411"></a>
-<span class="sourceLineNo">2412</span> * Find index of passed delimiter walking from end of buffer backwards.<a name="line.2412"></a>
-<span class="sourceLineNo">2413</span> * @return Index of delimiter<a name="line.2413"></a>
-<span class="sourceLineNo">2414</span> */<a name="line.2414"></a>
-<span class="sourceLineNo">2415</span> public static int searchDelimiterIndexInReverse(final byte[] b, final int offset,<a name="line.2415"></a>
-<span class="sourceLineNo">2416</span> final int length, final int delimiter) {<a name="line.2416"></a>
-<span class="sourceLineNo">2417</span> if (b == null) {<a name="line.2417"></a>
-<span class="sourceLineNo">2418</span> throw new IllegalArgumentException("Passed buffer is null");<a name="line.2418"></a>
-<span class="sourceLineNo">2419</span> }<a name="line.2419"></a>
-<span class="sourceLineNo">2420</span> int result = -1;<a name="line.2420"></a>
-<span class="sourceLineNo">2421</span> for (int i = (offset + length) - 1; i >= offset; i--) {<a name="line.2421"></a>
-<span class="sourceLineNo">2422</span> if (b[i] == delimiter) {<a name="line.2422"></a>
-<span class="sourceLineNo">2423</span> result = i;<a name="line.2423"></a>
-<span class="sourceLineNo">2424</span> break;<a name="line.2424"></a>
-<span class="sourceLineNo">2425</span> }<a name="line.2425"></a>
-<span class="sourceLineNo">2426</span> }<a name="line.2426"></a>
-<span class="sourceLineNo">2427</span> return result;<a name="line.2427"></a>
-<span class="sourceLineNo">2428</span> }<a name="line.2428"></a>
-<span class="sourceLineNo">2429</span><a name="line.2429"></a>
-<span class="sourceLineNo">2430</span> public static int findCommonPrefix(byte[] left, byte[] right, int leftLength, int rightLength,<a name="line.2430"></a>
-<span class="sourceLineNo">2431</span> int leftOffset, int rightOffset) {<a name="line.2431"></a>
-<span class="sourceLineNo">2432</span> int length = Math.min(leftLength, rightLength);<a name="line.2432"></a>
-<span class="sourceLineNo">2433</span> int result = 0;<a name="line.2433"></a>
-<span class="sourceLineNo">2434</span><a name="line.2434"></a>
-<span class="sourceLineNo">2435</span> while (result < length && left[leftOffset + result] == right[rightOffset + result]) {<a name="line.2435"></a>
-<span class="sourceLineNo">2436</span> result++;<a name="line.2436"></a>
-<span class="sourceLineNo">2437</span> }<a name="line.2437"></a>
-<span class="sourceLineNo">2438</span> return result;<a name="line.2438"></a>
-<span class="sourceLineNo">2439</span> }<a name="line.2439"></a>
-<span class="sourceLineNo">2440</span>}<a name="line.2440"></a>
+<span class="sourceLineNo">2393</span> * Fill given array with random bytes at the specified position using a strong random number<a name="line.2393"></a>
+<span class="sourceLineNo">2394</span> * generator.<a name="line.2394"></a>
+<span class="sourceLineNo">2395</span> * @param b array which needs to be filled with random bytes<a name="line.2395"></a>
+<span class="sourceLineNo">2396</span> * @param offset staring offset in array<a name="line.2396"></a>
+<span class="sourceLineNo">2397</span> * @param length number of bytes to fill<a name="line.2397"></a>
+<span class="sourceLineNo">2398</span> */<a name="line.2398"></a>
+<span class="sourceLineNo">2399</span> public static void secureRandom(byte[] b, int offset, int length) {<a name="line.2399"></a>
+<span class="sourceLineNo">2400</span> checkPositionIndex(offset, b.length, "offset");<a name="line.2400"></a>
+<span class="sourceLineNo">2401</span> checkArgument(length > 0, "length must be greater than 0");<a name="line.2401"></a>
+<span class="sourceLineNo">2402</span> checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2402"></a>
+<span class="sourceLineNo">2403</span> byte[] buf = new byte[length];<a name="line.2403"></a>
+<span class="sourceLineNo">2404</span> SECURE_RNG.nextBytes(buf);<a name="line.2404"></a>
+<span class="sourceLineNo">2405</span> System.arraycopy(buf, 0, b, offset, length);<a name="line.2405"></a>
+<span class="sourceLineNo">2406</span> }<a name="line.2406"></a>
+<span class="sourceLineNo">2407</span><a name="line.2407"></a>
+<span class="sourceLineNo">2408</span> /**<a name="line.2408"></a>
+<span class="sourceLineNo">2409</span> * Create a max byte array with the specified max byte count<a name="line.2409"></a>
+<span class="sourceLineNo">2410</span> * @param maxByteCount the length of returned byte array<a name="line.2410"></a>
+<span class="sourceLineNo">2411</span> * @return the created max byte array<a name="line.2411"></a>
+<span class="sourceLineNo">2412</span> */<a name="line.2412"></a>
+<span class="sourceLineNo">2413</span> public static byte[] createMaxByteArray(int maxByteCount) {<a name="line.2413"></a>
+<span class="sourceLineNo">2414</span> byte[] maxByteArray = new byte[maxByteCount];<a name="line.2414"></a>
+<span class="sourceLineNo">2415</span> for (int i = 0; i < maxByteArray.length; i++) {<a name="line.2415"></a>
+<span class="sourceLineNo">2416</span> maxByteArray[i] = (byte) 0xff;<a name="line.2416"></a>
+<span class="sourceLineNo">2417</span> }<a name="line.2417"></a>
+<span class="sourceLineNo">2418</span> return maxByteArray;<a name="line.2418"></a>
+<span class="sourceLineNo">2419</span> }<a name="line.2419"></a>
+<span class="sourceLineNo">2420</span><a name="line.2420"></a>
+<span class="sourceLineNo">2421</span> /**<a name="line.2421"></a>
+<span class="sourceLineNo">2422</span> * Create a byte array which is multiple given bytes<a name="line.2422"></a>
+<span class="sourceLineNo">2423</span> * @return byte array<a name="line.2423"></a>
+<span class="sourceLineNo">2424</span> */<a name="line.2424"></a>
+<span class="sourceLineNo">2425</span> public static byte[] multiple(byte[] srcBytes, int multiNum) {<a name="line.2425"></a>
+<span class="sourceLineNo">2426</span> if (multiNum <= 0) {<a name="line.2426"></a>
+<span class="sourceLineNo">2427</span> return new byte[0];<a name="line.2427"></a>
+<span class="sourceLineNo">2428</span> }<a name="line.2428"></a>
+<span class="sourceLineNo">2429</span> byte[] result = new byte[srcBytes.length * multiNum];<a name="line.2429"></a>
+<span class="sourceLineNo">2430</span> for (int i = 0; i < multiNum; i++) {<a name="line.2430"></a>
+<span class="sourceLineNo">2431</span> System.arraycopy(srcBytes, 0, result, i * srcBytes.length, srcBytes.length);<a name="line.2431"></a>
+<span class="sourceLineNo">2432</span> }<a name="line.2432"></a>
+<span class="sourceLineNo">2433</span> return result;<a name="line.2433"></a>
+<span class="sourceLineNo">2434</span> }<a name="line.2434"></a>
+<span class="sourceLineNo">2435</span><a name="line.2435"></a>
+<span class="sourceLineNo">2436</span> private static final char[] HEX_CHARS =<a name="line.2436"></a>
+<span class="sourceLineNo">2437</span> { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };<a name="line.2437"></a>
+<span class="sourceLineNo">2438</span><a name="line.2438"></a>
+<span class="sourceLineNo">2439</span> /**<a name="line.2439"></a>
+<span class="sourceLineNo">2440</span> * Convert a byte range into a hex string<a name="line.2440"></a>
+<span class="sourceLineNo">2441</span> */<a name="line.2441"></a>
+<span class="sourceLineNo">2442</span> public static String toHex(byte[] b, int offset, int length) {<a name="line.2442"></a>
+<span class="sourceLineNo">2443</span> checkArgument(length <= Integer.MAX_VALUE / 2);<a name="line.2443"></a>
+<span class="sourceLineNo">2444</span> int numChars = length * 2;<a name="line.2444"></a>
+<span class="sourceLineNo">2445</span> char[] ch = new char[numChars];<a name="line.2445"></a>
+<span class="sourceLineNo">2446</span> for (int i = 0; i < numChars; i += 2) {<a name="line.2446"></a>
+<span class="sourceLineNo">2447</span> byte d = b[offset + i / 2];<a name="line.2447"></a>
+<span class="sourceLineNo">2448</span> ch[i] = HEX_CHARS[(d >> 4) & 0x0F];<a name="line.2448"></a>
+<span class="sourceLineNo">2449</span> ch[i + 1] = HEX_CHARS[d & 0x0F];<a name="line.2449"></a>
+<span class="sourceLineNo">2450</span> }<a name="line.2450"></a>
+<span class="sourceLineNo">2451</span> return new String(ch);<a name="line.2451"></a>
+<span class="sourceLineNo">2452</span> }<a name="line.2452"></a>
+<span class="sourceLineNo">2453</span><a name="line.2453"></a>
+<span class="sourceLineNo">2454</span> /**<a name="line.2454"></a>
+<span class="sourceLineNo">2455</span> * Convert a byte array into a hex string<a name="line.2455"></a>
+<span class="sourceLineNo">2456</span> */<a name="line.2456"></a>
+<span class="sourceLineNo">2457</span> public static String toHex(byte[] b) {<a name="line.2457"></a>
+<span class="sourceLineNo">2458</span> return toHex(b, 0, b.length);<a name="line.2458"></a>
+<span class="sourceLineNo">2459</span> }<a name="line.2459"></a>
+<span class="sourceLineNo">2460</span><a name="line.2460"></a>
+<span class="sourceLineNo">2461</span> private static int hexCharToNibble(char ch) {<a name="line.2461"></a>
+<span class="sourceLineNo">2462</span> if (ch <= '9' && ch >= '0') {<a name="line.2462"></a>
+<span class="sourceLineNo">2463</span> return ch - '0';<a name="line.2463"></a>
+<span class="sourceLineNo">2464</span> } else if (ch >= 'a' && ch <= 'f') {<a name="line.2464"></a>
+<span class="sourceLineNo">2465</span> return ch - 'a' + 10;<a name="line.2465"></a>
+<span class="sourceLineNo">2466</span> } else if (ch >= 'A' && ch <= 'F') {<a name="line.2466"></a>
+<span class="sourceLineNo">2467</span> return ch - 'A' + 10;<a name="line.2467"></a>
+<span class="sourceLineNo">2468</span> }<a name="line.2468"></a>
+<span class="sourceLineNo">2469</span> throw new IllegalArgumentException("Invalid hex char: " + ch);<a name="line.2469"></a>
+<span class="sourceLineNo">2470</span> }<a name="line.2470"></a>
+<span class="sourceLineNo">2471</span><a name="line.2471"></a>
+<span class="sourceLineNo">2472</span> private static byte hexCharsToByte(char c1, char c2) {<a name="line.2472"></a>
+<span class="sourceLineNo">2473</span> return (byte) ((hexCharToNibble(c1) << 4) | hexCharToNibble(c2));<a name="line.2473"></a>
+<span class="sourceLineNo">2474</span> }<a name="line.2474"></a>
+<span class="sourceLineNo">2475</span><a name="line.2475"></a>
+<span class="sourceLineNo">2476</span> /**<a name="line.2476"></a>
+<span class="sourceLineNo">2477</span> * Create a byte array from a string of hash digits. The length of the string must be a multiple<a name="line.2477"></a>
+<span class="sourceLineNo">2478</span> * of 2<a name="line.2478"></a>
+<span class="sourceLineNo">2479</span> */<a name="line.2479"></a>
+<span class="sourceLineNo">2480</span> public static byte[] fromHex(String hex) {<a name="line.2480"></a>
+<span class="sourceLineNo">2481</span> checkArgument(hex.length() % 2 == 0, "length must be a multiple of 2");<a name="line.2481"></a>
+<span class="sourceLineNo">2482</span> int len = hex.length();<a name="line.2482"></a>
+<span class="sourceLineNo">2483</span> byte[] b = new byte[len / 2];<a name="line.2483"></a>
+<span class="sourceLineNo">2484</span> for (int i = 0; i < len; i += 2) {<a name="line.2484"></a>
+<span class="sourceLineNo">2485</span> b[i / 2] = hexCharsToByte(hex.charAt(i), hex.charAt(i + 1));<a name="line.2485"></a>
+<span class="sourceLineNo">2486</span> }<a name="line.2486"></a>
+<span class="sourceLineNo">2487</span> return b;<a name="line.2487"></a>
+<span class="sourceLineNo">2488</span> }<a name="line.2488"></a>
+<span class="sourceLineNo">2489</span><a name="line.2489"></a>
+<span class="sourceLineNo">2490</span> /**<a name="line.2490"></a>
+<span class="sourceLineNo">2491</span> * Find index of passed delimiter.<a name="line.2491"></a>
+<span class="sourceLineNo">2492</span> * @return Index of delimiter having started from start of <code>b</code> moving rightward.<a name="line.2492"></a>
+<span class="sourceLineNo">2493</span> */<a name="line.2493"></a>
+<span class="sourceLineNo">2494</span> public static int searchDelimiterIndex(final byte[] b, int offset, final int length,<a name="line.2494"></a>
+<span class="sourceLineNo">2495</span> final int delimiter) {<a name="line.2495"></a>
+<span class="sourceLineNo">2496</span> if (b == null) {<a name="line.2496"></a>
+<span class="sourceLineNo">2497</span> throw new IllegalArgumentException("Passed buffer is null");<a name="line.2497"></a>
+<span class="sourceLineNo">2498</span> }<a name="line.2498"></a>
+<span class="sourceLineNo">2499</span> int result = -1;<a name="line.2499"></a>
+<span class="sourceLineNo">2500</span> for (int i = offset; i < length + offset; i++) {<a name="line.2500"></a>
+<span class="sourceLineNo">2501</span> if (b[i] == delimiter) {<a name="line.2501"></a>
+<span class="sourceLineNo">2502</span> result = i;<a name="line.2502"></a>
+<span class="sourceLineNo">2503</span> break;<a name="line.2503"></a>
+<span class="sourceLineNo">2504</span> }<a name="line.2504"></a>
+<span class="sourceLineNo">2505</span> }<a name="line.2505"></a>
+<span class="sourceLineNo">2506</span> return result;<a name="line.2506"></a>
+<span class="sourceLineNo">2507</span> }<a name="line.2507"></a>
+<span class="sourceLineNo">2508</span><a name="line.2508"></a>
+<span class="sourceLineNo">2509</span> /**<a name="line.2509"></a>
+<span class="sourceLineNo">2510</span> * Find index of passed delimiter walking from end of buffer backwards.<a name="line.2510"></a>
+<span class="sourceLineNo">2511</span> * @return Index of delimiter<a name="line.2511"></a>
+<span class="sourceLineNo">2512</span> */<a name="line.2512"></a>
+<span class="sourceLineNo">2513</span> public static int searchDelimiterIndexInReverse(final byte[] b, final int offset,<a name="line.2513"></a>
+<span class="sourceLineNo">2514</span> final int length, final int delimiter) {<a name="line.2514"></a>
+<span class="sourceLineNo">2515</span> if (b == null) {<a name="line.2515"></a>
+<span class="sourceLineNo">2516</span> throw new IllegalArgumentException("Passed buffer is null");<a name="line.2516"></a>
+<span class="sourceLineNo">2517</span> }<a name="line.2517"></a>
+<span class="sourceLineNo">2518</span> int result = -1;<a name="line.2518"></a>
+<span class="sourceLineNo">2519</span> for (int i = (offset + length) - 1; i >= offset; i--) {<a name="line.2519"></a>
+<span class="sourceLineNo">2520</span> if (b[i] == delimiter) {<a name="line.2520"></a>
+<span class="sourceLineNo">2521</span> result = i;<a name="line.2521"></a>
+<span class="sourceLineNo">2522</span> break;<a name="line.2522"></a>
+<span class="sourceLineNo">2523</span> }<a name="line.2523"></a>
+<span class="sourceLineNo">2524</span> }<a name="line.2524"></a>
+<span class="sourceLineNo">2525</span> return result;<a name="line.2525"></a>
+<span class="sourceLineNo">2526</span> }<a name="line.2526"></a>
+<span class="sourceLineNo">2527</span><a name="line.2527"></a>
+<span class="sourceLineNo">2528</span> public static int findCommonPrefix(byte[] left, byte[] right, int leftLength, int rightLength,<a name="line.2528"></a>
+<span class="sourceLineNo">2529</span> int leftOffset, int rightOffset) {<a name="line.2529"></a>
+<span class="sourceLineNo">2530</span> return CommonPrefixerHolder.BEST_COMMON_PREFIXER.findCommonPrefix(left, leftOffset, leftLength,<a name="line.2530"></a>
+<span class="sourceLineNo">2531</span> right, rightOffset, rightLength);<a name="line.2531"></a>
+<span class="sourceLineNo">2532</span> }<a name="line.2532"></a>
+<span class="sourceLineNo">2533</span>}<a name="line.2533"></a>
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/util/Bytes.RowEndKeyComparator.html b/apidocs/src-html/org/apache/hadoop/hbase/util/Bytes.RowEndKeyComparator.html
index a6f66fed2df..651c12b7938 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/util/Bytes.RowEndKeyComparator.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/util/Bytes.RowEndKeyComparator.html
@@ -1187,1265 +1187,1358 @@
<span class="sourceLineNo">1179</span><a name="line.1179"></a>
<span class="sourceLineNo">1180</span> }<a name="line.1180"></a>
<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span> static Comparer<byte[]> lexicographicalComparerJavaImpl() {<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span> return LexicographicalComparerHolder.PureJavaComparer.INSTANCE;<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span> }<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span><a name="line.1185"></a>
-<span class="sourceLineNo">1186</span> static class ConverterHolder {<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span> static final String UNSAFE_CONVERTER_NAME =<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span> ConverterHolder.class.getName() + "$UnsafeConverter";<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span><a name="line.1189"></a>
-<span class="sourceLineNo">1190</span> static final Converter BEST_CONVERTER = getBestConverter();<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span> /**<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span> * Returns the Unsafe-using Converter, or falls back to the pure-Java implementation if unable<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span> * to do so.<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span> */<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span> static Converter getBestConverter() {<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span> try {<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span> Class<?> theClass = Class.forName(UNSAFE_CONVERTER_NAME);<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span><a name="line.1199"></a>
-<span class="sourceLineNo">1200</span> // yes, UnsafeComparer does implement Comparer<byte[]><a name="line.1200"></a>
-<span class="sourceLineNo">1201</span> @SuppressWarnings("unchecked")<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span> Converter converter = (Converter) theClass.getConstructor().newInstance();<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span> return converter;<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span> } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span> return PureJavaConverter.INSTANCE;<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span> }<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span> }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span> protected static final class PureJavaConverter extends Converter {<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span> static final PureJavaConverter INSTANCE = new PureJavaConverter();<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span><a name="line.1211"></a>
-<span class="sourceLineNo">1212</span> private PureJavaConverter() {<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span> }<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span> @Override<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span> long toLong(byte[] bytes, int offset, int length) {<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span> long l = 0;<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span> for (int i = offset; i < offset + length; i++) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span> l <<= 8;<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span> l ^= bytes[i] & 0xFF;<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span> }<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span> return l;<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span> }<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span><a name="line.1224"></a>
-<span class="sourceLineNo">1225</span> @Override<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span> int putLong(byte[] bytes, int offset, long val) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span> for (int i = offset + 7; i > offset; i--) {<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span> bytes[i] = (byte) val;<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span> val >>>= 8;<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span> }<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span> bytes[offset] = (byte) val;<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span> return offset + SIZEOF_LONG;<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span> }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span><a name="line.1234"></a>
-<span class="sourceLineNo">1235</span> @Override<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span> int toInt(byte[] bytes, int offset, int length) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span> int n = 0;<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span> for (int i = offset; i < (offset + length); i++) {<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span> n <<= 8;<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span> n ^= bytes[i] & 0xFF;<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span> }<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span> return n;<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span> }<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span><a name="line.1244"></a>
-<span class="sourceLineNo">1245</span> @Override<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span> int putInt(byte[] bytes, int offset, int val) {<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span> for (int i = offset + 3; i > offset; i--) {<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span> bytes[i] = (byte) val;<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span> val >>>= 8;<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span> }<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span> bytes[offset] = (byte) val;<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span> return offset + SIZEOF_INT;<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span> }<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span><a name="line.1254"></a>
-<span class="sourceLineNo">1255</span> @Override<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span> short toShort(byte[] bytes, int offset, int length) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span> short n = 0;<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span> n = (short) ((n ^ bytes[offset]) & 0xFF);<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span> n = (short) (n << 8);<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span> n ^= (short) (bytes[offset + 1] & 0xFF);<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span> return n;<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span> }<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span><a name="line.1263"></a>
-<span class="sourceLineNo">1264</span> @Override<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span> int putShort(byte[] bytes, int offset, short val) {<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span> bytes[offset + 1] = (byte) val;<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span> val >>= 8;<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span> bytes[offset] = (byte) val;<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span> return offset + SIZEOF_SHORT;<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span> }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span> }<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span><a name="line.1272"></a>
-<span class="sourceLineNo">1273</span> protected static final class UnsafeConverter extends Converter {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span><a name="line.1274"></a>
-<span class="sourceLineNo">1275</span> public UnsafeConverter() {<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span> }<a name="line.1276"></a>
+<span class="sourceLineNo">1182</span> static abstract class CommonPrefixer {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span> abstract int findCommonPrefix(byte[] left, int leftOffset, int leftLength, byte[] right,<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span> int rightOffset, int rightLength);<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span> }<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span><a name="line.1186"></a>
+<span class="sourceLineNo">1187</span> static Comparer<byte[]> lexicographicalComparerJavaImpl() {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span> return LexicographicalComparerHolder.PureJavaComparer.INSTANCE;<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span> }<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span><a name="line.1190"></a>
+<span class="sourceLineNo">1191</span> static class ConverterHolder {<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span> static final String UNSAFE_CONVERTER_NAME =<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span> ConverterHolder.class.getName() + "$UnsafeConverter";<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span><a name="line.1194"></a>
+<span class="sourceLineNo">1195</span> static final Converter BEST_CONVERTER = getBestConverter();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span><a name="line.1196"></a>
+<span class="sourceLineNo">1197</span> /**<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span> * Returns the Unsafe-using Converter, or falls back to the pure-Java implementation if unable<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span> * to do so.<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span> */<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span> static Converter getBestConverter() {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span> try {<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span> Class<?> theClass = Class.forName(UNSAFE_CONVERTER_NAME);<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span><a name="line.1204"></a>
+<span class="sourceLineNo">1205</span> // yes, UnsafeComparer does implement Comparer<byte[]><a name="line.1205"></a>
+<span class="sourceLineNo">1206</span> @SuppressWarnings("unchecked")<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span> Converter converter = (Converter) theClass.getConstructor().newInstance();<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span> return converter;<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span> } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span> return PureJavaConverter.INSTANCE;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span> }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span> }<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span><a name="line.1213"></a>
+<span class="sourceLineNo">1214</span> protected static final class PureJavaConverter extends Converter {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span> static final PureJavaConverter INSTANCE = new PureJavaConverter();<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span> private PureJavaConverter() {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span> }<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span><a name="line.1219"></a>
+<span class="sourceLineNo">1220</span> @Override<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span> long toLong(byte[] bytes, int offset, int length) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span> long l = 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span> for (int i = offset; i < offset + length; i++) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span> l <<= 8;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span> l ^= bytes[i] & 0xFF;<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span> }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span> return l;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span> }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span><a name="line.1229"></a>
+<span class="sourceLineNo">1230</span> @Override<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span> int putLong(byte[] bytes, int offset, long val) {<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span> for (int i = offset + 7; i > offset; i--) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span> bytes[i] = (byte) val;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span> val >>>= 8;<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span> }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span> bytes[offset] = (byte) val;<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span> return offset + SIZEOF_LONG;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span> }<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span><a name="line.1239"></a>
+<span class="sourceLineNo">1240</span> @Override<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span> int toInt(byte[] bytes, int offset, int length) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span> int n = 0;<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span> for (int i = offset; i < (offset + length); i++) {<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span> n <<= 8;<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span> n ^= bytes[i] & 0xFF;<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span> }<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span> return n;<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span> }<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span><a name="line.1249"></a>
+<span class="sourceLineNo">1250</span> @Override<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span> int putInt(byte[] bytes, int offset, int val) {<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span> for (int i = offset + 3; i > offset; i--) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span> bytes[i] = (byte) val;<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span> val >>>= 8;<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span> }<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span> bytes[offset] = (byte) val;<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span> return offset + SIZEOF_INT;<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span> }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span> @Override<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span> short toShort(byte[] bytes, int offset, int length) {<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span> short n = 0;<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span> n = (short) ((n ^ bytes[offset]) & 0xFF);<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span> n = (short) (n << 8);<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span> n ^= (short) (bytes[offset + 1] & 0xFF);<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span> return n;<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span> }<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span> @Override<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span> int putShort(byte[] bytes, int offset, short val) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span> bytes[offset + 1] = (byte) val;<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span> val >>= 8;<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span> bytes[offset] = (byte) val;<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span> return offset + SIZEOF_SHORT;<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span> }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span> }<a name="line.1276"></a>
<span class="sourceLineNo">1277</span><a name="line.1277"></a>
-<span class="sourceLineNo">1278</span> static {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span> if (!UNSAFE_UNALIGNED) {<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span> // It doesn't matter what we throw;<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span> // it's swallowed in getBestComparer().<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span> throw new Error();<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span> }<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span><a name="line.1284"></a>
-<span class="sourceLineNo">1285</span> // sanity check - this should never fail<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span> if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span> throw new AssertionError();<a name="line.1287"></a>
+<span class="sourceLineNo">1278</span> protected static final class UnsafeConverter extends Converter {<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span><a name="line.1279"></a>
+<span class="sourceLineNo">1280</span> public UnsafeConverter() {<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span> }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span> static {<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span> if (!UNSAFE_UNALIGNED) {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span> // It doesn't matter what we throw;<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span> // it's swallowed in getBestComparer().<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span> throw new Error();<a name="line.1287"></a>
<span class="sourceLineNo">1288</span> }<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span> }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span><a name="line.1290"></a>
-<span class="sourceLineNo">1291</span> @Override<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span> long toLong(byte[] bytes, int offset, int length) {<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span> return UnsafeAccess.toLong(bytes, offset);<a name="line.1293"></a>
+<span class="sourceLineNo">1289</span><a name="line.1289"></a>
+<span class="sourceLineNo">1290</span> // sanity check - this should never fail<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span> if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span> throw new AssertionError();<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span> }<a name="line.1293"></a>
<span class="sourceLineNo">1294</span> }<a name="line.1294"></a>
<span class="sourceLineNo">1295</span><a name="line.1295"></a>
<span class="sourceLineNo">1296</span> @Override<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span> int putLong(byte[] bytes, int offset, long val) {<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span> return UnsafeAccess.putLong(bytes, offset, val);<a name="line.1298"></a>
+<span class="sourceLineNo">1297</span> long toLong(byte[] bytes, int offset, int length) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span> return UnsafeAccess.toLong(bytes, offset);<a name="line.1298"></a>
<span class="sourceLineNo">1299</span> }<a name="line.1299"></a>
<span class="sourceLineNo">1300</span><a name="line.1300"></a>
<span class="sourceLineNo">1301</span> @Override<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span> int toInt(byte[] bytes, int offset, int length) {<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span> return UnsafeAccess.toInt(bytes, offset);<a name="line.1303"></a>
+<span class="sourceLineNo">1302</span> int putLong(byte[] bytes, int offset, long val) {<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span> return UnsafeAccess.putLong(bytes, offset, val);<a name="line.1303"></a>
<span class="sourceLineNo">1304</span> }<a name="line.1304"></a>
<span class="sourceLineNo">1305</span><a name="line.1305"></a>
<span class="sourceLineNo">1306</span> @Override<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span> int putInt(byte[] bytes, int offset, int val) {<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span> return UnsafeAccess.putInt(bytes, offset, val);<a name="line.1308"></a>
+<span class="sourceLineNo">1307</span> int toInt(byte[] bytes, int offset, int length) {<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span> return UnsafeAccess.toInt(bytes, offset);<a name="line.1308"></a>
<span class="sourceLineNo">1309</span> }<a name="line.1309"></a>
<span class="sourceLineNo">1310</span><a name="line.1310"></a>
<span class="sourceLineNo">1311</span> @Override<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span> short toShort(byte[] bytes, int offset, int length) {<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span> return UnsafeAccess.toShort(bytes, offset);<a name="line.1313"></a>
+<span class="sourceLineNo">1312</span> int putInt(byte[] bytes, int offset, int val) {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span> return UnsafeAccess.putInt(bytes, offset, val);<a name="line.1313"></a>
<span class="sourceLineNo">1314</span> }<a name="line.1314"></a>
<span class="sourceLineNo">1315</span><a name="line.1315"></a>
<span class="sourceLineNo">1316</span> @Override<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span> int putShort(byte[] bytes, int offset, short val) {<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span> return UnsafeAccess.putShort(bytes, offset, val);<a name="line.1318"></a>
+<span class="sourceLineNo">1317</span> short toShort(byte[] bytes, int offset, int length) {<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span> return UnsafeAccess.toShort(bytes, offset);<a name="line.1318"></a>
<span class="sourceLineNo">1319</span> }<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span> }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span> }<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span><a name="line.1322"></a>
-<span class="sourceLineNo">1323</span> /**<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span> * Provides a lexicographical comparer implementation; either a Java implementation or a faster<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span> * implementation based on {@code Unsafe}.<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span> * <p><a name="line.1326"></a>
-<span class="sourceLineNo">1327</span> * Uses reflection to gracefully fall back to the Java implementation if {@code Unsafe} isn't<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span> * available.<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span> */<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span> static class LexicographicalComparerHolder {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span> static final String UNSAFE_COMPARER_NAME =<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span> LexicographicalComparerHolder.class.getName() + "$UnsafeComparer";<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span> static final Comparer<byte[]> BEST_COMPARER = getBestComparer();<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span><a name="line.1335"></a>
-<span class="sourceLineNo">1336</span> /**<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span> * Returns the Unsafe-using Comparer, or falls back to the pure-Java implementation if unable to<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span> * do so.<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span> */<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span> static Comparer<byte[]> getBestComparer() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span> try {<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span> Class<?> theClass = Class.forName(UNSAFE_COMPARER_NAME);<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span> // yes, UnsafeComparer does implement Comparer<byte[]><a name="line.1344"></a>
-<span class="sourceLineNo">1345</span> @SuppressWarnings("unchecked")<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span> Comparer<byte[]> comparer = (Comparer<byte[]>) theClass.getEnumConstants()[0];<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span> return comparer;<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span> } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span> return lexicographicalComparerJavaImpl();<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span> }<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span> }<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span><a name="line.1352"></a>
-<span class="sourceLineNo">1353</span> enum PureJavaComparer implements Comparer<byte[]> {<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span> INSTANCE;<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span><a name="line.1355"></a>
-<span class="sourceLineNo">1356</span> @Override<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span> public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2,<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span> int length2) {<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span> // Short circuit equal case<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span> if (buffer1 == buffer2 && offset1 == offset2 && length1 == length2) {<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span> return 0;<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span> }<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span> // Bring WritableComparator code local<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span> int end1 = offset1 + length1;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span> int end2 = offset2 + length2;<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span> for (int i = offset1, j = offset2; i < end1 && j < end2; i++, j++) {<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span> int a = (buffer1[i] & 0xff);<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span> int b = (buffer2[j] & 0xff);<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span> if (a != b) {<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span> return a - b;<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span> }<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span> }<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span> return length1 - length2;<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span> }<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span> }<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span><a name="line.1376"></a>
-<span class="sourceLineNo">1377</span> enum UnsafeComparer implements Comparer<byte[]> {<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span> INSTANCE;<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span><a name="line.1379"></a>
-<span class="sourceLineNo">1380</span> static {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span> if (!UNSAFE_UNALIGNED) {<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span> // It doesn't matter what we throw;<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span> // it's swallowed in getBestComparer().<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span> throw new Error();<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span> }<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span><a name="line.1386"></a>
-<span class="sourceLineNo">1387</span> // sanity check - this should never fail<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span> if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span> throw new AssertionError();<a name="line.1389"></a>
+<span class="sourceLineNo">1320</span><a name="line.1320"></a>
+<span class="sourceLineNo">1321</span> @Override<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span> int putShort(byte[] bytes, int offset, short val) {<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span> return UnsafeAccess.putShort(bytes, offset, val);<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span> }<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span> }<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span> }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span> /**<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span> * Provides a lexicographical comparer implementation; either a Java implementation or a faster<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span> * implementation based on {@code Unsafe}.<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span> * <p><a name="line.1331"></a>
+<span class="sourceLineNo">1332</span> * Uses reflection to gracefully fall back to the Java implementation if {@code Unsafe} isn't<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span> * available.<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span> */<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span> static class LexicographicalComparerHolder {<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span> static final String UNSAFE_COMPARER_NAME =<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span> LexicographicalComparerHolder.class.getName() + "$UnsafeComparer";<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span><a name="line.1338"></a>
+<span class="sourceLineNo">1339</span> static final Comparer<byte[]> BEST_COMPARER = getBestComparer();<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span><a name="line.1340"></a>
+<span class="sourceLineNo">1341</span> /**<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span> * Returns the Unsafe-using Comparer, or falls back to the pure-Java implementation if unable to<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span> * do so.<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span> */<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span> static Comparer<byte[]> getBestComparer() {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span> try {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span> Class<?> theClass = Class.forName(UNSAFE_COMPARER_NAME);<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span><a name="line.1348"></a>
+<span class="sourceLineNo">1349</span> // yes, UnsafeComparer does implement Comparer<byte[]><a name="line.1349"></a>
+<span class="sourceLineNo">1350</span> @SuppressWarnings("unchecked")<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span> Comparer<byte[]> comparer = (Comparer<byte[]>) theClass.getEnumConstants()[0];<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span> return comparer;<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span> } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span> return lexicographicalComparerJavaImpl();<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span> }<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span> }<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span><a name="line.1357"></a>
+<span class="sourceLineNo">1358</span> enum PureJavaComparer implements Comparer<byte[]> {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span> INSTANCE;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span><a name="line.1360"></a>
+<span class="sourceLineNo">1361</span> @Override<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span> public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2,<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span> int length2) {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span> // Short circuit equal case<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span> if (buffer1 == buffer2 && offset1 == offset2 && length1 == length2) {<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span> return 0;<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span> }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span> // Bring WritableComparator code local<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span> int end1 = offset1 + length1;<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span> int end2 = offset2 + length2;<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span> for (int i = offset1, j = offset2; i < end1 && j < end2; i++, j++) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span> int a = (buffer1[i] & 0xff);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span> int b = (buffer2[j] & 0xff);<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span> if (a != b) {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span> return a - b;<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span> }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span> }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span> return length1 - length2;<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span> }<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span> }<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span><a name="line.1381"></a>
+<span class="sourceLineNo">1382</span> enum UnsafeComparer implements Comparer<byte[]> {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span> INSTANCE;<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span><a name="line.1384"></a>
+<span class="sourceLineNo">1385</span> static {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span> if (!UNSAFE_UNALIGNED) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span> // It doesn't matter what we throw;<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span> // it's swallowed in getBestComparer().<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span> throw new Error();<a name="line.1389"></a>
<span class="sourceLineNo">1390</span> }<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span> }<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span><a name="line.1392"></a>
-<span class="sourceLineNo">1393</span> /**<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span> * Lexicographically compare two arrays.<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span> * @param buffer1 left operand<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span> * @param buffer2 right operand<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span> * @param offset1 Where to start comparing in the left buffer<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span> * @param offset2 Where to start comparing in the right buffer<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span> * @param length1 How much to compare from the left buffer<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span> * @param length2 How much to compare from the right buffer<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span> * @return 0 if equal, < 0 if left is less than right, etc.<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span> */<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span> @Override<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span> public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2,<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span> int length2) {<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span><a name="line.1406"></a>
-<span class="sourceLineNo">1407</span> // Short circuit equal case<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span> if (buffer1 == buffer2 && offset1 == offset2 && length1 == length2) {<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span> return 0;<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span> }<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span> final int stride = 8;<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span> final int minLength = Math.min(length1, length2);<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span> int strideLimit = minLength & ~(stride - 1);<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span> final long offset1Adj = offset1 + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span> final long offset2Adj = offset2 + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span> int i;<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span><a name="line.1417"></a>
-<span class="sourceLineNo">1418</span> /*<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span> * Compare 8 bytes at a time. Benchmarking on x86 shows a stride of 8 bytes is no slower<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span> * than 4 bytes even on 32-bit. On the other hand, it is substantially faster on 64-bit.<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span> */<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span> for (i = 0; i < strideLimit; i += stride) {<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span> long lw = HBasePlatformDependent.getLong(buffer1, offset1Adj + i);<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span> long rw = HBasePlatformDependent.getLong(buffer2, offset2Adj + i);<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span> if (lw != rw) {<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span> if (!UnsafeAccess.LITTLE_ENDIAN) {<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span> return ((lw + Long.MIN_VALUE) < (rw + Long.MIN_VALUE)) ? -1 : 1;<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span> }<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span><a name="line.1429"></a>
-<span class="sourceLineNo">1430</span> /*<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span> * We want to compare only the first index where left[index] != right[index]. This<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span> * corresponds to the least significant nonzero byte in lw ^ rw, since lw and rw are<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span> * little-endian. Long.numberOfTrailingZeros(diff) tells us the least significant<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span> * nonzero bit, and zeroing out the first three bits of L.nTZ gives us the shift to get<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span> * that least significant nonzero byte. This comparison logic is based on UnsignedBytes<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span> * comparator from guava v21<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span> */<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span> int n = Long.numberOfTrailingZeros(lw ^ rw) & ~0x7;<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span> return ((int) ((lw >>> n) & 0xFF)) - ((int) ((rw >>> n) & 0xFF));<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span> }<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span> }<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span><a name="line.1442"></a>
-<span class="sourceLineNo">1443</span> // The epilogue to cover the last (minLength % stride) elements.<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span> for (; i < minLength; i++) {<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span> int a = (buffer1[offset1 + i] & 0xFF);<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span> int b = (buffer2[offset2 + i] & 0xFF);<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span> if (a != b) {<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span> return a - b;<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span> }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span> }<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span> return length1 - length2;<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span> }<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span> }<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span> }<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span><a name="line.1455"></a>
-<span class="sourceLineNo">1456</span> /**<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span> * Lexicographically determine the equality of two arrays.<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span> * @param left left operand<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span> * @param right right operand<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span> * @return True if equal<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span> */<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span> public static boolean equals(final byte[] left, final byte[] right) {<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span> // Could use Arrays.equals?<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span> // noinspection SimplifiableConditionalExpression<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span> if (left == right) return true;<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span> if (left == null || right == null) return false;<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span> if (left.length != right.length) return false;<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span> if (left.length == 0) return true;<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span><a name="line.1469"></a>
-<span class="sourceLineNo">1470</span> // Since we're often comparing adjacent sorted data,<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span> // it's usual to have equal arrays except for the very last byte<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span> // so check that first<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span> if (left[left.length - 1] != right[right.length - 1]) return false;<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span><a name="line.1474"></a>
-<span class="sourceLineNo">1475</span> return compareTo(left, right) == 0;<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span> }<a name="line.1476"></a>
+<span class="sourceLineNo">1391</span><a name="line.1391"></a>
+<span class="sourceLineNo">1392</span> // sanity check - this should never fail<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span> if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span> throw new AssertionError();<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span> }<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span> }<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span><a name="line.1397"></a>
+<span class="sourceLineNo">1398</span> /**<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span> * Lexicographically compare two arrays.<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span> * @param buffer1 left operand<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span> * @param buffer2 right operand<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span> * @param offset1 Where to start comparing in the left buffer<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span> * @param offset2 Where to start comparing in the right buffer<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span> * @param length1 How much to compare from the left buffer<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span> * @param length2 How much to compare from the right buffer<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span> * @return 0 if equal, < 0 if left is less than right, etc.<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span> */<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span> @Override<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span> public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2,<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span> int length2) {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span><a name="line.1411"></a>
+<span class="sourceLineNo">1412</span> // Short circuit equal case<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span> if (buffer1 == buffer2 && offset1 == offset2 && length1 == length2) {<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span> return 0;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span> }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span> final int stride = 8;<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span> final int minLength = Math.min(length1, length2);<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span> int strideLimit = minLength & ~(stride - 1);<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span> final long offset1Adj = offset1 + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span> final long offset2Adj = offset2 + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span> int i;<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span><a name="line.1422"></a>
+<span class="sourceLineNo">1423</span> /*<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span> * Compare 8 bytes at a time. Benchmarking on x86 shows a stride of 8 bytes is no slower<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span> * than 4 bytes even on 32-bit. On the other hand, it is substantially faster on 64-bit.<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span> */<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span> for (i = 0; i < strideLimit; i += stride) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span> long lw = HBasePlatformDependent.getLong(buffer1, offset1Adj + i);<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span> long rw = HBasePlatformDependent.getLong(buffer2, offset2Adj + i);<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span> if (lw != rw) {<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span> if (!UnsafeAccess.LITTLE_ENDIAN) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span> return ((lw + Long.MIN_VALUE) < (rw + Long.MIN_VALUE)) ? -1 : 1;<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span> }<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span><a name="line.1434"></a>
+<span class="sourceLineNo">1435</span> /*<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span> * We want to compare only the first index where left[index] != right[index]. This<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span> * corresponds to the least significant nonzero byte in lw ^ rw, since lw and rw are<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span> * little-endian. Long.numberOfTrailingZeros(diff) tells us the least significant<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span> * nonzero bit, and zeroing out the first three bits of L.nTZ gives us the shift to get<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span> * that least significant nonzero byte. This comparison logic is based on UnsignedBytes<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span> * comparator from guava v21<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span> */<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span> int n = Long.numberOfTrailingZeros(lw ^ rw) & ~0x7;<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span> return ((int) ((lw >>> n) & 0xFF)) - ((int) ((rw >>> n) & 0xFF));<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span> }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span> }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span><a name="line.1447"></a>
+<span class="sourceLineNo">1448</span> // The epilogue to cover the last (minLength % stride) elements.<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span> for (; i < minLength; i++) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span> int a = (buffer1[offset1 + i] & 0xFF);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span> int b = (buffer2[offset2 + i] & 0xFF);<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span> if (a != b) {<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span> return a - b;<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span> }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span> }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span> return length1 - length2;<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span> }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span> }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span> }<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span><a name="line.1460"></a>
+<span class="sourceLineNo">1461</span> static class CommonPrefixerHolder {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span> static final String UNSAFE_COMMON_PREFIXER_NAME =<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span> CommonPrefixerHolder.class.getName() + "$UnsafeCommonPrefixer";<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span><a name="line.1464"></a>
+<span class="sourceLineNo">1465</span> static final CommonPrefixer BEST_COMMON_PREFIXER = getBestCommonPrefixer();<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span><a name="line.1466"></a>
+<span class="sourceLineNo">1467</span> static CommonPrefixer getBestCommonPrefixer() {<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span> try {<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span> Class<? extends CommonPrefixer> theClass =<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span> Class.forName(UNSAFE_COMMON_PREFIXER_NAME).asSubclass(CommonPrefixer.class);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span><a name="line.1471"></a>
+<span class="sourceLineNo">1472</span> return theClass.getConstructor().newInstance();<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span> } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span> return CommonPrefixerHolder.PureJavaCommonPrefixer.INSTANCE;<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span> }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span> }<a name="line.1476"></a>
<span class="sourceLineNo">1477</span><a name="line.1477"></a>
-<span class="sourceLineNo">1478</span> /**<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span> * Lexicographically determine the equality of two arrays.<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span> * @param left left operand<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span> * @param leftOffset offset into left operand<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span> * @param leftLen length of left operand<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span> * @param right right operand<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span> * @param rightOffset offset into right operand<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span> * @param rightLen length of right operand<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span> * @return True if equal<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span> */<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span> public static boolean equals(final byte[] left, int leftOffset, int leftLen, final byte[] right,<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span> int rightOffset, int rightLen) {<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span> // short circuit case<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span> if (left == right && leftOffset == rightOffset && leftLen == rightLen) {<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span> return true;<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span> }<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span> // different lengths fast check<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span> if (leftLen != rightLen) {<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span> return false;<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span> }<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span> if (leftLen == 0) {<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span> return true;<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span> }<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span><a name="line.1501"></a>
-<span class="sourceLineNo">1502</span> // Since we're often comparing adjacent sorted data,<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span> // it's usual to have equal arrays except for the very last byte<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span> // so check that first<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span> if (left[leftOffset + leftLen - 1] != right[rightOffset + rightLen - 1]) return false;<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span><a name="line.1506"></a>
-<span class="sourceLineNo">1507</span> return LexicographicalComparerHolder.BEST_COMPARER.compareTo(left, leftOffset, leftLen, right,<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span> rightOffset, rightLen) == 0;<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span> }<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span><a name="line.1510"></a>
-<span class="sourceLineNo">1511</span> /**<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span> * Lexicographically determine the equality of two byte[], one as ByteBuffer.<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span> * @param a left operand<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span> * @param buf right operand<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span> * @return True if equal<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span> */<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span> public static boolean equals(byte[] a, ByteBuffer buf) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span> if (a == null) return buf == null;<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span> if (buf == null) return false;<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span> if (a.length != buf.remaining()) return false;<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span><a name="line.1521"></a>
-<span class="sourceLineNo">1522</span> // Thou shalt not modify the original byte buffer in what should be read only operations.<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span> ByteBuffer b = buf.duplicate();<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span> for (byte anA : a) {<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span> if (anA != b.get()) {<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span> return false;<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span> }<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span> }<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span> return true;<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span> }<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span><a name="line.1531"></a>
-<span class="sourceLineNo">1532</span> /**<a name="line.1532"></a>
-<span class="sourceLineNo">1533</span> * Return true if the byte array on the right is a prefix of the byte array on the left.<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span> */<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span> public static boolean startsWith(byte[] bytes, byte[] prefix) {<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span> return bytes != null && prefix != null && bytes.length >= prefix.length<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span> && LexicographicalComparerHolder.BEST_COMPARER.compareTo(bytes, 0, prefix.length, prefix, 0,<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span> prefix.length) == 0;<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span> }<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span><a name="line.1540"></a>
-<span class="sourceLineNo">1541</span> /**<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span> * Calculate a hash code from a given byte array.<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span> * @param b bytes to hash<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span> * @return Runs {@link WritableComparator#hashBytes(byte[], int)} on the passed in array. This<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span> * method is what {@link org.apache.hadoop.io.Text} use calculating hash code.<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span> */<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span> public static int hashCode(final byte[] b) {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span> return hashCode(b, b.length);<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span> }<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span><a name="line.1550"></a>
-<span class="sourceLineNo">1551</span> /**<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span> * Calculate a hash code from a given byte array.<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span> * @param b value<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span> * @param length length of the value<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span> * @return Runs {@link WritableComparator#hashBytes(byte[], int)} on the passed in array. This<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span> * method is what {@link org.apache.hadoop.io.Text} use calculating hash code.<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span> */<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span> public static int hashCode(final byte[] b, final int length) {<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span> return WritableComparator.hashBytes(b, length);<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span> }<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span><a name="line.1561"></a>
-<span class="sourceLineNo">1562</span> /**<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span> * Calculate a hash code from a given byte array suitable for use as a key in maps.<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span> * @param b bytes to hash<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span> * @return A hash of <code>b</code> as an Integer that can be used as key in Maps.<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span> */<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span> public static Integer mapKey(final byte[] b) {<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span> return hashCode(b);<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span> }<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span><a name="line.1570"></a>
-<span class="sourceLineNo">1571</span> /**<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span> * Calculate a hash code from a given byte array suitable for use as a key in maps.<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span> * @param b bytes to hash<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span> * @param length length to hash<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span> * @return A hash of <code>b</code> as an Integer that can be used as key in Maps.<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span> */<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span> public static Integer mapKey(final byte[] b, final int length) {<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span> return hashCode(b, length);<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span> }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span> /**<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span> * Concatenate byte arrays.<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span> * @param a lower half<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span> * @param b upper half<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span> * @return New array that has a in lower half and b in upper half.<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span> */<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span> public static byte[] add(final byte[] a, final byte[] b) {<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span> return add(a, b, EMPTY_BYTE_ARRAY);<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span> }<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span><a name="line.1590"></a>
-<span class="sourceLineNo">1591</span> /**<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span> * Concatenate byte arrays.<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span> * @param a first third<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span> * @param b second third<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span> * @param c third third<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span> * @return New array made from a, b and c<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span> */<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span> public static byte[] add(final byte[] a, final byte[] b, final byte[] c) {<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span> byte[] result = new byte[a.length + b.length + c.length];<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span> System.arraycopy(a, 0, result, 0, a.length);<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span> System.arraycopy(b, 0, result, a.length, b.length);<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span> System.arraycopy(c, 0, result, a.length + b.length, c.length);<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span> return result;<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span> }<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span><a name="line.1605"></a>
-<span class="sourceLineNo">1606</span> /**<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span> * Concatenate byte arrays.<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span> * @param arrays all the arrays to concatenate together.<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span> * @return New array made from the concatenation of the given arrays.<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span> */<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span> public static byte[] add(final byte[][] arrays) {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span> int length = 0;<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span> for (int i = 0; i < arrays.length; i++) {<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span> length += arrays[i].length;<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span> }<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span> byte[] result = new byte[length];<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span> int index = 0;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span> for (int i = 0; i < arrays.length; i++) {<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span> System.arraycopy(arrays[i], 0, result, index, arrays[i].length);<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span> index += arrays[i].length;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span> }<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span> return result;<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span> }<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span><a name="line.1624"></a>
-<span class="sourceLineNo">1625</span> /**<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span> * Make a new byte array from a subset of bytes at the head of another.<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span> * @param a array<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span> * @param length amount of bytes to grab<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span> * @return First <code>length</code> bytes from <code>a</code><a name="line.1629"></a>
-<span class="sourceLineNo">1630</span> */<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span> public static byte[] head(final byte[] a, final int length) {<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span> if (a.length < length) {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span> return null;<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span> }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span> byte[] result = new byte[length];<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span> System.arraycopy(a, 0, result, 0, length);<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span> return result;<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span> }<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span><a name="line.1639"></a>
-<span class="sourceLineNo">1640</span> /**<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span> * Make a new byte array from a subset of bytes at the tail of another.<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span> * @param a array<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span> * @param length amount of bytes to snarf<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span> * @return Last <code>length</code> bytes from <code>a</code><a name="line.1644"></a>
-<span class="sourceLineNo">1645</span> */<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span> public static byte[] tail(final byte[] a, final int length) {<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span> if (a.length < length) {<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span> return null;<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span> }<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span> byte[] result = new byte[length];<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span> System.arraycopy(a, a.length - length, result, 0, length);<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span> return result;<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span> }<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span><a name="line.1654"></a>
-<span class="sourceLineNo">1655</span> /**<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span> * Make a new byte array from a subset of bytes at the head of another, zero padded as desired.<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span> * @param a array<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span> * @param length new array size<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span> * @return Value in <code>a</code> plus <code>length</code> prepended 0 bytes<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span> */<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span> public static byte[] padHead(final byte[] a, final int length) {<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span> byte[] padding = new byte[length];<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span> for (int i = 0; i < length; i++) {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span> padding[i] = 0;<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span> }<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span> return add(padding, a);<a name="line.1666"></a>
+<span class="sourceLineNo">1478</span> static final class PureJavaCommonPrefixer extends CommonPrefixer {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span> static final PureJavaCommonPrefixer INSTANCE = new PureJavaCommonPrefixer();<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span><a name="line.1480"></a>
+<span class="sourceLineNo">1481</span> private PureJavaCommonPrefixer() {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span> }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span><a name="line.1483"></a>
+<span class="sourceLineNo">1484</span> @Override<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span> public int findCommonPrefix(byte[] left, int leftOffset, int leftLength, byte[] right,<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span> int rightOffset, int rightLength) {<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span> int length = Math.min(leftLength, rightLength);<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span> int result = 0;<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span><a name="line.1489"></a>
+<span class="sourceLineNo">1490</span> while (result < length && left[leftOffset + result] == right[rightOffset + result]) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span> result++;<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span> }<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span> return result;<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span> }<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span> }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span><a name="line.1496"></a>
+<span class="sourceLineNo">1497</span> static final class UnsafeCommonPrefixer extends CommonPrefixer {<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span><a name="line.1498"></a>
+<span class="sourceLineNo">1499</span> static {<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span> if (!UNSAFE_UNALIGNED) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span> throw new Error();<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span> }<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span><a name="line.1503"></a>
+<span class="sourceLineNo">1504</span> // sanity check - this should never fail<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span> if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span> throw new AssertionError();<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span> }<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span> }<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span><a name="line.1509"></a>
+<span class="sourceLineNo">1510</span> public UnsafeCommonPrefixer() {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span> }<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span><a name="line.1512"></a>
+<span class="sourceLineNo">1513</span> @Override<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span> public int findCommonPrefix(byte[] left, int leftOffset, int leftLength, byte[] right,<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span> int rightOffset, int rightLength) {<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span> final int stride = 8;<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span> final int minLength = Math.min(leftLength, rightLength);<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span> int strideLimit = minLength & ~(stride - 1);<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span> final long leftOffsetAdj = leftOffset + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span> final long rightOffsetAdj = rightOffset + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span> int result = 0;<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span> int i;<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span> for (i = 0; i < strideLimit; i += stride) {<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span> long lw = HBasePlatformDependent.getLong(left, leftOffsetAdj + i);<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span> long rw = HBasePlatformDependent.getLong(right, rightOffsetAdj + i);<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span> if (lw != rw) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span> if (!UnsafeAccess.LITTLE_ENDIAN) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span> return result + (Long.numberOfLeadingZeros(lw ^ rw) / Bytes.SIZEOF_LONG);<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span> } else {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span> return result + (Long.numberOfTrailingZeros(lw ^ rw) / Bytes.SIZEOF_LONG);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span> }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span> } else {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span> result += Bytes.SIZEOF_LONG;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span> }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span> }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span><a name="line.1537"></a>
+<span class="sourceLineNo">1538</span> // The epilogue to cover the last (minLength % stride) elements.<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span> for (; i < minLength; i++) {<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span> int il = (left[leftOffset + i]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span> int ir = (right[rightOffset + i]);<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span> if (il != ir) {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span> return result;<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span> } else {<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span> result++;<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span> }<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span> }<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span><a name="line.1548"></a>
+<span class="sourceLineNo">1549</span> return result;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span> }<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span> }<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span> }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span><a name="line.1553"></a>
+<span class="sourceLineNo">1554</span> /**<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span> * Lexicographically determine the equality of two arrays.<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span> * @param left left operand<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span> * @param right right operand<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span> * @return True if equal<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span> */<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span> public static boolean equals(final byte[] left, final byte[] right) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span> // Could use Arrays.equals?<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span> // noinspection SimplifiableConditionalExpression<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span> if (left == right) return true;<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span> if (left == null || right == null) return false;<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span> if (left.length != right.length) return false;<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span> if (left.length == 0) return true;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span><a name="line.1567"></a>
+<span class="sourceLineNo">1568</span> // Since we're often comparing adjacent sorted data,<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span> // it's usual to have equal arrays except for the very last byte<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span> // so check that first<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span> if (left[left.length - 1] != right[right.length - 1]) return false;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span><a name="line.1572"></a>
+<span class="sourceLineNo">1573</span> return compareTo(left, right) == 0;<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span> }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span><a name="line.1575"></a>
+<span class="sourceLineNo">1576</span> /**<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span> * Lexicographically determine the equality of two arrays.<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span> * @param left left operand<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span> * @param leftOffset offset into left operand<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span> * @param leftLen length of left operand<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span> * @param right right operand<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span> * @param rightOffset offset into right operand<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span> * @param rightLen length of right operand<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span> * @return True if equal<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span> */<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span> public static boolean equals(final byte[] left, int leftOffset, int leftLen, final byte[] right,<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span> int rightOffset, int rightLen) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span> // short circuit case<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span> if (left == right && leftOffset == rightOffset && leftLen == rightLen) {<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span> return true;<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span> }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span> // different lengths fast check<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span> if (leftLen != rightLen) {<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span> return false;<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span> }<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span> if (leftLen == 0) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span> return true;<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span> }<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span><a name="line.1599"></a>
+<span class="sourceLineNo">1600</span> // Since we're often comparing adjacent sorted data,<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span> // it's usual to have equal arrays except for the very last byte<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span> // so check that first<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span> if (left[leftOffset + leftLen - 1] != right[rightOffset + rightLen - 1]) return false;<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span><a name="line.1604"></a>
+<span class="sourceLineNo">1605</span> return LexicographicalComparerHolder.BEST_COMPARER.compareTo(left, leftOffset, leftLen, right,<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span> rightOffset, rightLen) == 0;<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span> }<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span><a name="line.1608"></a>
+<span class="sourceLineNo">1609</span> /**<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span> * Lexicographically determine the equality of two byte[], one as ByteBuffer.<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span> * @param a left operand<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span> * @param buf right operand<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span> * @return True if equal<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span> */<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span> public static boolean equals(byte[] a, ByteBuffer buf) {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span> if (a == null) return buf == null;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span> if (buf == null) return false;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span> if (a.length != buf.remaining()) return false;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span><a name="line.1619"></a>
+<span class="sourceLineNo">1620</span> // Thou shalt not modify the original byte buffer in what should be read only operations.<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span> ByteBuffer b = buf.duplicate();<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span> for (byte anA : a) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span> if (anA != b.get()) {<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span> return false;<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span> }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span> }<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span> return true;<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span> }<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span><a name="line.1629"></a>
+<span class="sourceLineNo">1630</span> /**<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span> * Return true if the byte array on the right is a prefix of the byte array on the left.<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span> */<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span> public static boolean startsWith(byte[] bytes, byte[] prefix) {<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span> return bytes != null && prefix != null && bytes.length >= prefix.length<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span> && LexicographicalComparerHolder.BEST_COMPARER.compareTo(bytes, 0, prefix.length, prefix, 0,<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span> prefix.length) == 0;<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span> }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span><a name="line.1638"></a>
+<span class="sourceLineNo">1639</span> /**<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span> * Calculate a hash code from a given byte array.<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span> * @param b bytes to hash<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span> * @return Runs {@link WritableComparator#hashBytes(byte[], int)} on the passed in array. This<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span> * method is what {@link org.apache.hadoop.io.Text} use calculating hash code.<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span> */<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span> public static int hashCode(final byte[] b) {<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span> return hashCode(b, b.length);<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span> }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span><a name="line.1648"></a>
+<span class="sourceLineNo">1649</span> /**<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span> * Calculate a hash code from a given byte array.<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span> * @param b value<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span> * @param length length of the value<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span> * @return Runs {@link WritableComparator#hashBytes(byte[], int)} on the passed in array. This<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span> * method is what {@link org.apache.hadoop.io.Text} use calculating hash code.<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span> */<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span> public static int hashCode(final byte[] b, final int length) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span> return WritableComparator.hashBytes(b, length);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span> }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span><a name="line.1659"></a>
+<span class="sourceLineNo">1660</span> /**<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span> * Calculate a hash code from a given byte array suitable for use as a key in maps.<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span> * @param b bytes to hash<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span> * @return A hash of <code>b</code> as an Integer that can be used as key in Maps.<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span> */<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span> public static Integer mapKey(final byte[] b) {<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span> return hashCode(b);<a name="line.1666"></a>
<span class="sourceLineNo">1667</span> }<a name="line.1667"></a>
<span class="sourceLineNo">1668</span><a name="line.1668"></a>
<span class="sourceLineNo">1669</span> /**<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span> * Make a new byte array from a subset of bytes at the tail of another, zero padded as desired.<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span> * @param a array<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span> * @param length new array size<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span> * @return Value in <code>a</code> plus <code>length</code> appended 0 bytes<a name="line.1673"></a>
+<span class="sourceLineNo">1670</span> * Calculate a hash code from a given byte array suitable for use as a key in maps.<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span> * @param b bytes to hash<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span> * @param length length to hash<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span> * @return A hash of <code>b</code> as an Integer that can be used as key in Maps.<a name="line.1673"></a>
<span class="sourceLineNo">1674</span> */<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span> public static byte[] padTail(final byte[] a, final int length) {<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span> byte[] padding = new byte[length];<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span> for (int i = 0; i < length; i++) {<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span> padding[i] = 0;<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span> }<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span> return add(a, padding);<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span> }<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span><a name="line.1682"></a>
-<span class="sourceLineNo">1683</span> /**<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span> * Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span> * ranges for MapReduce jobs.<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span> * @param a Beginning of range<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span> * @param b End of range<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span> * @param num Number of times to split range. Pass 1 if you want to split the range in two; i.e.<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span> * one split.<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span> * @return Array of dividing values<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span> */<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span> public static byte[][] split(final byte[] a, final byte[] b, final int num) {<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span> return split(a, b, false, num);<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span> }<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span><a name="line.1695"></a>
-<span class="sourceLineNo">1696</span> /**<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span> * Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span> * ranges for MapReduce jobs.<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span> * @param a Beginning of range<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span> * @param b End of range<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span> * @param inclusive Whether the end of range is prefix-inclusive or is considered an exclusive<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span> * boundary. Automatic splits are generally exclusive and manual splits with an<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span> * explicit range utilize an inclusive end of range.<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span> * @param num Number of times to split range. Pass 1 if you want to split the range in two;<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span> * i.e. one split.<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span> * @return Array of dividing values<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span> */<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span> public static byte[][] split(final byte[] a, final byte[] b, boolean inclusive, final int num) {<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span> byte[][] ret = new byte[num + 2][];<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span> int i = 0;<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span> Iterable<byte[]> iter = iterateOnSplits(a, b, inclusive, num);<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span> if (iter == null) return null;<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span> for (byte[] elem : iter) {<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span> ret[i++] = elem;<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span> }<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span> return ret;<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span> }<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span><a name="line.1718"></a>
-<span class="sourceLineNo">1719</span> /**<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span> * Iterate over keys within the passed range, splitting at an [a,b) boundary.<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span> */<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span> public static Iterable<byte[]> iterateOnSplits(final byte[] a, final byte[] b, final int num) {<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span> return iterateOnSplits(a, b, false, num);<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span> }<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span><a name="line.1725"></a>
-<span class="sourceLineNo">1726</span> /**<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span> * Iterate over keys within the passed range.<a name="line.1727"></a>
+<span class="sourceLineNo">1675</span> public static Integer mapKey(final byte[] b, final int length) {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span> return hashCode(b, length);<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span> }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span><a name="line.1678"></a>
+<span class="sourceLineNo">1679</span> /**<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span> * Concatenate byte arrays.<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span> * @param a lower half<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span> * @param b upper half<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span> * @return New array that has a in lower half and b in upper half.<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span> */<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span> public static byte[] add(final byte[] a, final byte[] b) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span> return add(a, b, EMPTY_BYTE_ARRAY);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span> }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span><a name="line.1688"></a>
+<span class="sourceLineNo">1689</span> /**<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span> * Concatenate byte arrays.<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span> * @param a first third<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span> * @param b second third<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span> * @param c third third<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span> * @return New array made from a, b and c<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span> */<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span> public static byte[] add(final byte[] a, final byte[] b, final byte[] c) {<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span> byte[] result = new byte[a.length + b.length + c.length];<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span> System.arraycopy(a, 0, result, 0, a.length);<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span> System.arraycopy(b, 0, result, a.length, b.length);<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span> System.arraycopy(c, 0, result, a.length + b.length, c.length);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span> return result;<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span> }<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span><a name="line.1703"></a>
+<span class="sourceLineNo">1704</span> /**<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span> * Concatenate byte arrays.<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span> * @param arrays all the arrays to concatenate together.<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span> * @return New array made from the concatenation of the given arrays.<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span> */<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span> public static byte[] add(final byte[][] arrays) {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span> int length = 0;<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span> for (int i = 0; i < arrays.length; i++) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span> length += arrays[i].length;<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span> }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span> byte[] result = new byte[length];<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span> int index = 0;<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span> for (int i = 0; i < arrays.length; i++) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span> System.arraycopy(arrays[i], 0, result, index, arrays[i].length);<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span> index += arrays[i].length;<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span> }<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span> return result;<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span> }<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span><a name="line.1722"></a>
+<span class="sourceLineNo">1723</span> /**<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span> * Make a new byte array from a subset of bytes at the head of another.<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span> * @param a array<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span> * @param length amount of bytes to grab<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span> * @return First <code>length</code> bytes from <code>a</code><a name="line.1727"></a>
<span class="sourceLineNo">1728</span> */<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span> public static Iterable<byte[]> iterateOnSplits(final byte[] a, final byte[] b, boolean inclusive,<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span> final int num) {<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span> byte[] aPadded;<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span> byte[] bPadded;<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span> if (a.length < b.length) {<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span> aPadded = padTail(a, b.length - a.length);<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span> bPadded = b;<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span> } else if (b.length < a.length) {<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span> aPadded = a;<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span> bPadded = padTail(b, a.length - b.length);<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span> } else {<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span> aPadded = a;<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span> bPadded = b;<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span> }<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span> if (compareTo(aPadded, bPadded) >= 0) {<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span> throw new IllegalArgumentException("b <= a");<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span> }<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span> if (num <= 0) {<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span> throw new IllegalArgumentException("num cannot be <= 0");<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span> }<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span> byte[] prependHeader = { 1, 0 };<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span> final BigInteger startBI = new BigInteger(add(prependHeader, aPadded));<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span> final BigInteger stopBI = new BigInteger(add(prependHeader, bPadded));<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span> BigInteger diffBI = stopBI.subtract(startBI);<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span> if (inclusive) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span> diffBI = diffBI.add(BigInteger.ONE);<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span> }<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span> final BigInteger splitsBI = BigInteger.valueOf(num + 1);<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span> // when diffBI < splitBI, use an additional byte to increase diffBI<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span> if (diffBI.compareTo(splitsBI) < 0) {<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span> byte[] aPaddedAdditional = new byte[aPadded.length + 1];<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span> byte[] bPaddedAdditional = new byte[bPadded.length + 1];<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span> for (int i = 0; i < aPadded.length; i++) {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span> aPaddedAdditional[i] = aPadded[i];<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span> }<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span> for (int j = 0; j < bPadded.length; j++) {<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span> bPaddedAdditional[j] = bPadded[j];<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span> }<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span> aPaddedAdditional[aPadded.length] = 0;<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span> bPaddedAdditional[bPadded.length] = 0;<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span> return iterateOnSplits(aPaddedAdditional, bPaddedAdditional, inclusive, num);<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span> }<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span> final BigInteger intervalBI;<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span> try {<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span> intervalBI = diffBI.divide(splitsBI);<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span> } catch (Exception e) {<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span> LOG.error("Exception caught during division", e);<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span> return null;<a name="line.1776"></a>
+<span class="sourceLineNo">1729</span> public static byte[] head(final byte[] a, final int length) {<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span> if (a.length < length) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span> return null;<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span> }<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span> byte[] result = new byte[length];<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span> System.arraycopy(a, 0, result, 0, length);<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span> return result;<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span> }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span><a name="line.1737"></a>
+<span class="sourceLineNo">1738</span> /**<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span> * Make a new byte array from a subset of bytes at the tail of another.<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span> * @param a array<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span> * @param length amount of bytes to snarf<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span> * @return Last <code>length</code> bytes from <code>a</code><a name="line.1742"></a>
+<span class="sourceLineNo">1743</span> */<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span> public static byte[] tail(final byte[] a, final int length) {<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span> if (a.length < length) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span> return null;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span> }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span> byte[] result = new byte[length];<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span> System.arraycopy(a, a.length - length, result, 0, length);<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span> return result;<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span> }<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span><a name="line.1752"></a>
+<span class="sourceLineNo">1753</span> /**<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span> * Make a new byte array from a subset of bytes at the head of another, zero padded as desired.<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span> * @param a array<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span> * @param length new array size<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span> * @return Value in <code>a</code> plus <code>length</code> prepended 0 bytes<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span> */<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span> public static byte[] padHead(final byte[] a, final int length) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span> byte[] padding = new byte[length];<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span> for (int i = 0; i < length; i++) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span> padding[i] = 0;<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span> }<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span> return add(padding, a);<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span> }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span><a name="line.1766"></a>
+<span class="sourceLineNo">1767</span> /**<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span> * Make a new byte array from a subset of bytes at the tail of another, zero padded as desired.<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span> * @param a array<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span> * @param length new array size<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span> * @return Value in <code>a</code> plus <code>length</code> appended 0 bytes<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span> */<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span> public static byte[] padTail(final byte[] a, final int length) {<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span> byte[] padding = new byte[length];<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span> for (int i = 0; i < length; i++) {<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span> padding[i] = 0;<a name="line.1776"></a>
<span class="sourceLineNo">1777</span> }<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span><a name="line.1778"></a>
-<span class="sourceLineNo">1779</span> final Iterator<byte[]> iterator = new Iterator<byte[]>() {<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span> private int i = -1;<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span><a name="line.1781"></a>
-<span class="sourceLineNo">1782</span> @Override<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span> public boolean hasNext() {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span> return i < num + 1;<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span> }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span><a name="line.1786"></a>
-<span class="sourceLineNo">1787</span> @Override<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span> public byte[] next() {<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span> i++;<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span> if (i == 0) return a;<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span> if (i == num + 1) return b;<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span><a name="line.1792"></a>
-<span class="sourceLineNo">1793</span> BigInteger curBI = startBI.add(intervalBI.multiply(BigInteger.valueOf(i)));<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span> byte[] padded = curBI.toByteArray();<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span> if (padded[1] == 0) padded = tail(padded, padded.length - 2);<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span> else padded = tail(padded, padded.length - 1);<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span> return padded;<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span> }<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span><a name="line.1799"></a>
-<span class="sourceLineNo">1800</span> @Override<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span> public void remove() {<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span> throw new UnsupportedOperationException();<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span> }<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span><a name="line.1804"></a>
-<span class="sourceLineNo">1805</span> };<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span><a name="line.1806"></a>
-<span class="sourceLineNo">1807</span> return new Iterable<byte[]>() {<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span> @Override<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span> public Iterator<byte[]> iterator() {<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span> return iterator;<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span> }<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span> };<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span> }<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span><a name="line.1814"></a>
-<span class="sourceLineNo">1815</span> /**<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span> * Calculate the hash code for a given range of bytes.<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span> * @param bytes array to hash<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span> * @param offset offset to start from<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span> * @param length length to hash<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span> */<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span> public static int hashCode(byte[] bytes, int offset, int length) {<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span> int hash = 1;<a name="line.1822"></a>
-<span class="sourceLineNo">1823</span> for (int i = offset; i < offset + length; i++)<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span> hash = (31 * hash) + bytes[i];<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span> return hash;<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span> }<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span><a name="line.1827"></a>
-<span class="sourceLineNo">1828</span> /**<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span> * Create an array of byte[] given an array of String.<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span> * @param t operands<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span> * @return Array of byte arrays made from passed array of Text<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span> */<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span> public static byte[][] toByteArrays(final String[] t) {<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span> byte[][] result = new byte[t.length][];<a name="line.1834"></a>
-<span class="sourceLineNo">1835</span> for (int i = 0; i < t.length; i++) {<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span> result[i] = Bytes.toBytes(t[i]);<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span> }<a name="line.1837"></a>
-<span class="sourceLineNo">1838</span> return result;<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span> }<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span><a name="line.1840"></a>
-<span class="sourceLineNo">1841</span> /**<a name="line.1841"></a>
-<span class="sourceLineNo">1842</span> * Create an array of byte[] given an array of String.<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span> * @param t operands<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span> * @return Array of binary byte arrays made from passed array of binary strings<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span> */<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span> public static byte[][] toBinaryByteArrays(final String[] t) {<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span> byte[][] result = new byte[t.length][];<a name="line.1847"></a>
-<span class="sourceLineNo">1848</span> for (int i = 0; i < t.length; i++) {<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span> result[i] = Bytes.toBytesBinary(t[i]);<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span> }<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span> return result;<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span> }<a name="line.1852"></a>
-<span class="sourceLineNo">1853</span><a name="line.1853"></a>
-<span class="sourceLineNo">1854</span> /**<a name="line.1854"></a>
-<span class="sourceLineNo">1855</span> * Create a byte[][] where first and only entry is <code>column</code><a name="line.1855"></a>
-<span class="sourceLineNo">1856</span> * @param column operand<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span> * @return A byte array of a byte array where first and only entry is <code>column</code><a name="line.1857"></a>
-<span class="sourceLineNo">1858</span> */<a name="line.1858"></a>
-<span class="sourceLineNo">1859</span> public static byte[][] toByteArrays(final String column) {<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span> return toByteArrays(toBytes(column));<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span> }<a name="line.1861"></a>
-<span class="sourceLineNo">1862</span><a name="line.1862"></a>
-<span class="sourceLineNo">1863</span> /**<a name="line.1863"></a>
-<span class="sourceLineNo">1864</span> * Create a byte[][] where first and only entry is <code>column</code><a name="line.1864"></a>
-<span class="sourceLineNo">1865</span> * @param column operand<a name="line.1865"></a>
-<span class="sourceLineNo">1866</span> * @return A byte array of a byte array where first and only entry is <code>column</code><a name="line.1866"></a>
-<span class="sourceLineNo">1867</span> */<a name="line.1867"></a>
-<span class="sourceLineNo">1868</span> public static byte[][] toByteArrays(final byte[] column) {<a name="line.1868"></a>
-<span class="sourceLineNo">1869</span> byte[][] result = new byte[1][];<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span> result[0] = column;<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span> return result;<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span> }<a name="line.1872"></a>
-<span class="sourceLineNo">1873</span><a name="line.1873"></a>
-<span class="sourceLineNo">1874</span> /**<a name="line.1874"></a>
-<span class="sourceLineNo">1875</span> * Binary search for keys in indexes using Bytes.BYTES_RAWCOMPARATOR.<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span> * @param arr array of byte arrays to search for<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span> * @param key the key you want to find<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span> * @param offset the offset in the key you want to find<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span> * @param length the length of the key<a name="line.1879"></a>
-<span class="sourceLineNo">1880</span> * @return zero-based index of the key, if the key is present in the array. Otherwise, a value -(i<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span> * + 1) such that the key is between arr[i - 1] and arr[i] non-inclusively, where i is in<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span> * [0, i], if we define arr[-1] = -Inf and arr[N] = Inf for an N-element array. The above<a name="line.1882"></a>
-<span class="sourceLineNo">1883</span> * means that this function can return 2N + 1 different values ranging from -(N + 1) to N<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span> * - 1.<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span> */<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span> public static int binarySearch(byte[][] arr, byte[] key, int offset, int length) {<a name="line.1886"></a>
-<span class="sourceLineNo">1887</span> int low = 0;<a name="line.1887"></a>
-<span class="sourceLineNo">1888</span> int high = arr.length - 1;<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span><a name="line.1889"></a>
-<span class="sourceLineNo">1890</span> while (low <= high) {<a name="line.1890"></a>
-<span class="sourceLineNo">1891</span> int mid = low + ((high - low) >> 1);<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span> // we have to compare in this order, because the comparator order<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span> // has special logic when the 'left side' is a special key.<a name="line.1893"></a>
-<span class="sourceLineNo">1894</span> int cmp =<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span> Bytes.BYTES_RAWCOMPARATOR.compare(key, offset, length, arr[mid], 0, arr[mid].length);<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span> // key lives above the midpoint<a name="line.1896"></a>
-<span class="sourceLineNo">1897</span> if (cmp > 0) low = mid + 1;<a name="line.1897"></a>
-<span class="sourceLineNo">1898</span> // key lives below the midpoint<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span> else if (cmp < 0) high = mid - 1;<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span> // BAM. how often does this really happen?<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span> else return mid;<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span> }<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span> return -(low + 1);<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span> }<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span><a name="line.1905"></a>
-<span class="sourceLineNo">1906</span> /**<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span> * Binary search for keys in indexes.<a name="line.1907"></a>
-<span class="sourceLineNo">1908</span> * @param arr array of byte arrays to search for<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span> * @param key the key you want to find<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span> * @param comparator a comparator to compare.<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span> * @return zero-based index of the key, if the key is present in the array. Otherwise, a value -(i<a name="line.1911"></a>
-<span class="sourceLineNo">1912</span> * + 1) such that the key is between arr[i - 1] and arr[i] non-inclusively, where i is in<a name="line.1912"></a>
-<span class="sourceLineNo">1913</span> * [0, i], if we define arr[-1] = -Inf and arr[N] = Inf for an N-element array. The above<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span> * means that this function can return 2N + 1 different values ranging from -(N + 1) to N<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span> * - 1.<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span> * @return the index of the block<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span> */<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span> public static int binarySearch(Cell[] arr, Cell key, CellComparator comparator) {<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span> int low = 0;<a name="line.1919"></a>
-<span class="sourceLineNo">1920</span> int high = arr.length - 1;<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span> while (low <= high) {<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span> int mid = low + ((high - low) >> 1);<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span> // we have to compare in this order, because the comparator order<a name="line.1923"></a>
-<span class="sourceLineNo">1924</span> // has special logic when the 'left side' is a special key.<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span> int cmp = comparator.compare(key, arr[mid]);<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span> // key lives above the midpoint<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span> if (cmp > 0) low = mid + 1;<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span> // key lives below the midpoint<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span> else if (cmp < 0) high = mid - 1;<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span> // BAM. how often does this really happen?<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span> else return mid;<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span> }<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span> return -(low + 1);<a name="line.1933"></a>
-<span class="sourceLineNo">1934</span> }<a name="line.1934"></a>
-<span class="sourceLineNo">1935</span><a name="line.1935"></a>
-<span class="sourceLineNo">1936</span> /**<a name="line.1936"></a>
-<span class="sourceLineNo">1937</span> * Bytewise binary increment/deincrement of long contained in byte array on given amount.<a name="line.1937"></a>
-<span class="sourceLineNo">1938</span> * @param value - array of bytes containing long (length &lt;= SIZEOF_LONG)<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span> * @param amount value will be incremented on (deincremented if negative)<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span> * @return array of bytes containing incremented long (length == SIZEOF_LONG)<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span> */<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span> public static byte[] incrementBytes(byte[] value, long amount) {<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span> byte[] val = value;<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span> if (val.length < SIZEOF_LONG) {<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span> // Hopefully this doesn't happen too often.<a name="line.1945"></a>
-<span class="sourceLineNo">1946</span> byte[] newvalue;<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span> if (val[0] < 0) {<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span> newvalue = new byte[] { -1, -1, -1, -1, -1, -1, -1, -1 };<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span> } else {<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span> newvalue = new byte[SIZEOF_LONG];<a name="line.1950"></a>
-<span class="sourceLineNo">1951</span> }<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span> System.arraycopy(val, 0, newvalue, newvalue.length - val.length, val.length);<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span> val = newvalue;<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span> } else if (val.length > SIZEOF_LONG) {<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span> throw new IllegalArgumentException("Increment Bytes - value too big: " + val.length);<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span> }<a name="line.1956"></a>
-<span class="sourceLineNo">1957</span> if (amount == 0) return val;<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span> if (val[0] < 0) {<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span> return binaryIncrementNeg(val, amount);<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span> }<a name="line.1960"></a>
-<span class="sourceLineNo">1961</span> return binaryIncrementPos(val, amount);<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span> }<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span><a name="line.1963"></a>
-<span class="sourceLineNo">1964</span> /* increment/deincrement for positive value */<a name="line.1964"></a>
-<span class="sourceLineNo">1965</span> private static byte[] binaryIncrementPos(byte[] value, long amount) {<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span> long amo = amount;<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span> int sign = 1;<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span> if (amount < 0) {<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span> amo = -amount;<a name="line.1969"></a>
-<span class="sourceLineNo">1970</span> sign = -1;<a name="line.1970"></a>
-<span class="sourceLineNo">1971</span> }<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span> for (int i = 0; i < value.length; i++) {<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span> int cur = ((int) amo % 256) * sign;<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span> amo = (amo >> 8);<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span> int val = value[value.length - i - 1] & 0x0ff;<a name="line.1975"></a>
-<span class="sourceLineNo">1976</span> int total = val + cur;<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span> if (total > 255) {<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span> amo += sign;<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span> total %= 256;<a name="line.1979"></a>
-<span class="sourceLineNo">1980</span> } else if (total < 0) {<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span> amo -= sign;<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span> }<a name="line.1982"></a>
-<span class="sourceLineNo">1983</span> value[value.length - i - 1] = (byte) total;<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span> if (amo == 0) return value;<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span> }<a name="line.1985"></a>
-<span class="sourceLineNo">1986</span> return value;<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span> }<a name="line.1987"></a>
-<span class="sourceLineNo">1988</span><a name="line.1988"></a>
-<span class="sourceLineNo">1989</span> /* increment/deincrement for negative value */<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span> private static byte[] binaryIncrementNeg(byte[] value, long amount) {<a name="line.1990"></a>
-<span class="sourceLineNo">1991</span> long amo = amount;<a name="line.1991"></a>
-<span class="sourceLineNo">1992</span> int sign = 1;<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span> if (amount < 0) {<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span> amo = -amount;<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span> sign = -1;<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span> }<a name="line.1996"></a>
-<span class="sourceLineNo">1997</span> for (int i = 0; i < value.length; i++) {<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span> int cur = ((int) amo % 256) * sign;<a name="line.1998"></a>
-<span class="sourceLineNo">1999</span> amo = (amo >> 8);<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span> int val = (~value[value.length - i - 1] & 0x0ff) + 1;<a name="line.2000"></a>
-<span class="sourceLineNo">2001</span> int total = cur - val;<a name="line.2001"></a>
-<span class="sourceLineNo">2002</span> if (total >= 0) {<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span> amo += sign;<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span> } else if (total < -256) {<a name="line.2004"></a>
-<span class="sourceLineNo">2005</span> amo -= sign;<a name="line.2005"></a>
-<span class="sourceLineNo">2006</span> total %= 256;<a name="line.2006"></a>
-<span class="sourceLineNo">2007</span> }<a name="line.2007"></a>
-<span class="sourceLineNo">2008</span> value[value.length - i - 1] = (byte) total;<a name="line.2008"></a>
-<span class="sourceLineNo">2009</span> if (amo == 0) return value;<a name="line.2009"></a>
-<span class="sourceLineNo">2010</span> }<a name="line.2010"></a>
-<span class="sourceLineNo">2011</span> return value;<a name="line.2011"></a>
-<span class="sourceLineNo">2012</span> }<a name="line.2012"></a>
-<span class="sourceLineNo">2013</span><a name="line.2013"></a>
-<span class="sourceLineNo">2014</span> /**<a name="line.2014"></a>
-<span class="sourceLineNo">2015</span> * Writes a string as a fixed-size field, padded with zeros.<a name="line.2015"></a>
-<span class="sourceLineNo">2016</span> */<a name="line.2016"></a>
-<span class="sourceLineNo">2017</span> public static void writeStringFixedSize(final DataOutput out, String s, int size)<a name="line.2017"></a>
-<span class="sourceLineNo">2018</span> throws IOException {<a name="line.2018"></a>
-<span class="sourceLineNo">2019</span> byte[] b = toBytes(s);<a name="line.2019"></a>
-<span class="sourceLineNo">2020</span> if (b.length > size) {<a name="line.2020"></a>
-<span class="sourceLineNo">2021</span> throw new IOException("Trying to write " + b.length + " bytes (" + toStringBinary(b)<a name="line.2021"></a>
-<span class="sourceLineNo">2022</span> + ") into a field of length " + size);<a name="line.2022"></a>
-<span class="sourceLineNo">2023</span> }<a name="line.2023"></a>
-<span class="sourceLineNo">2024</span><a name="line.2024"></a>
-<span class="sourceLineNo">2025</span> out.writeBytes(s);<a name="line.2025"></a>
-<span class="sourceLineNo">2026</span> for (int i = 0; i < size - s.length(); ++i)<a name="line.2026"></a>
-<span class="sourceLineNo">2027</span> out.writeByte(0);<a name="line.2027"></a>
-<span class="sourceLineNo">2028</span> }<a name="line.2028"></a>
-<span class="sourceLineNo">2029</span><a name="line.2029"></a>
-<span class="sourceLineNo">2030</span> /**<a name="line.2030"></a>
-<span class="sourceLineNo">2031</span> * Reads a fixed-size field and interprets it as a string padded with zeros.<a name="line.2031"></a>
-<span class="sourceLineNo">2032</span> */<a name="line.2032"></a>
-<span class="sourceLineNo">2033</span> public static String readStringFixedSize(final DataInput in, int size) throws IOException {<a name="line.2033"></a>
-<span class="sourceLineNo">2034</span> byte[] b = new byte[size];<a name="line.2034"></a>
-<span class="sourceLineNo">2035</span> in.readFully(b);<a name="line.2035"></a>
-<span class="sourceLineNo">2036</span> int n = b.length;<a name="line.2036"></a>
-<span class="sourceLineNo">2037</span> while (n > 0 && b[n - 1] == 0)<a name="line.2037"></a>
-<span class="sourceLineNo">2038</span> --n;<a name="line.2038"></a>
-<span class="sourceLineNo">2039</span><a name="line.2039"></a>
-<span class="sourceLineNo">2040</span> return toString(b, 0, n);<a name="line.2040"></a>
-<span class="sourceLineNo">2041</span> }<a name="line.2041"></a>
-<span class="sourceLineNo">2042</span><a name="line.2042"></a>
-<span class="sourceLineNo">2043</span> /**<a name="line.2043"></a>
-<span class="sourceLineNo">2044</span> * Copy the byte array given in parameter and return an instance of a new byte array with the same<a name="line.2044"></a>
-<span class="sourceLineNo">2045</span> * length and the same content.<a name="line.2045"></a>
-<span class="sourceLineNo">2046</span> * @param bytes the byte array to duplicate<a name="line.2046"></a>
-<span class="sourceLineNo">2047</span> * @return a copy of the given byte array<a name="line.2047"></a>
-<span class="sourceLineNo">2048</span> */<a name="line.2048"></a>
-<span class="sourceLineNo">2049</span> public static byte[] copy(byte[] bytes) {<a name="line.2049"></a>
-<span class="sourceLineNo">2050</span> if (bytes == null) return null;<a name="line.2050"></a>
-<span class="sourceLineNo">2051</span> byte[] result = new byte[bytes.length];<a name="line.2051"></a>
-<span class="sourceLineNo">2052</span> System.arraycopy(bytes, 0, result, 0, bytes.length);<a name="line.2052"></a>
-<span class="sourceLineNo">2053</span> return result;<a name="line.2053"></a>
-<span class="sourceLineNo">2054</span> }<a name="line.2054"></a>
-<span class="sourceLineNo">2055</span><a name="line.2055"></a>
-<span class="sourceLineNo">2056</span> /**<a name="line.2056"></a>
-<span class="sourceLineNo">2057</span> * Copy the byte array given in parameter and return an instance of a new byte array with the same<a name="line.2057"></a>
-<span class="sourceLineNo">2058</span> * length and the same content.<a name="line.2058"></a>
-<span class="sourceLineNo">2059</span> * @param bytes the byte array to copy from<a name="line.2059"></a>
-<span class="sourceLineNo">2060</span> * @return a copy of the given designated byte array<a name="line.2060"></a>
-<span class="sourceLineNo">2061</span> */<a name="line.2061"></a>
-<span class="sourceLineNo">2062</span> public static byte[] copy(byte[] bytes, final int offset, final int length) {<a name="line.2062"></a>
-<span class="sourceLineNo">2063</span> if (bytes == null) return null;<a name="line.2063"></a>
-<span class="sourceLineNo">2064</span> byte[] result = new byte[length];<a name="line.2064"></a>
-<span class="sourceLineNo">2065</span> System.arraycopy(bytes, offset, result, 0, length);<a name="line.2065"></a>
-<span class="sourceLineNo">2066</span> return result;<a name="line.2066"></a>
-<span class="sourceLineNo">2067</span> }<a name="line.2067"></a>
-<span class="sourceLineNo">2068</span><a name="line.2068"></a>
-<span class="sourceLineNo">2069</span> /**<a name="line.2069"></a>
-<span class="sourceLineNo">2070</span> * Search sorted array "a" for byte "key". I can't remember if I wrote this or copied it from<a name="line.2070"></a>
-<span class="sourceLineNo">2071</span> * somewhere. (mcorgan)<a name="line.2071"></a>
-<span class="sourceLineNo">2072</span> * @param a Array to search. Entries must be sorted and unique.<a name="line.2072"></a>
-<span class="sourceLineNo">2073</span> * @param fromIndex First index inclusive of "a" to include in the search.<a name="line.2073"></a>
-<span class="sourceLineNo">2074</span> * @param toIndex Last index exclusive of "a" to include in the search.<a name="line.2074"></a>
-<span class="sourceLineNo">2075</span> * @param key The byte to search for.<a name="line.2075"></a>
-<span class="sourceLineNo">2076</span> * @return The index of key if found. If not found, return -(index + 1), where negative indicates<a name="line.2076"></a>
-<span class="sourceLineNo">2077</span> * "not found" and the "index + 1" handles the "-0" case.<a name="line.2077"></a>
-<span class="sourceLineNo">2078</span> */<a name="line.2078"></a>
-<span class="sourceLineNo">2079</span> public static int unsignedBinarySearch(byte[] a, int fromIndex, int toIndex, byte key) {<a name="line.2079"></a>
-<span class="sourceLineNo">2080</span> int unsignedKey = key & 0xff;<a name="line.2080"></a>
-<span class="sourceLineNo">2081</span> int low = fromIndex;<a name="line.2081"></a>
-<span class="sourceLineNo">2082</span> int high = toIndex - 1;<a name="line.2082"></a>
-<span class="sourceLineNo">2083</span><a name="line.2083"></a>
-<span class="sourceLineNo">2084</span> while (low <= high) {<a name="line.2084"></a>
-<span class="sourceLineNo">2085</span> int mid = low + ((high - low) >> 1);<a name="line.2085"></a>
-<span class="sourceLineNo">2086</span> int midVal = a[mid] & 0xff;<a name="line.2086"></a>
-<span class="sourceLineNo">2087</span><a name="line.2087"></a>
-<span class="sourceLineNo">2088</span> if (midVal < unsignedKey) {<a name="line.2088"></a>
-<span class="sourceLineNo">2089</span> low = mid + 1;<a name="line.2089"></a>
-<span class="sourceLineNo">2090</span> } else if (midVal > unsignedKey) {<a name="line.2090"></a>
-<span class="sourceLineNo">2091</span> high = mid - 1;<a name="line.2091"></a>
-<span class="sourceLineNo">2092</span> } else {<a name="line.2092"></a>
-<span class="sourceLineNo">2093</span> return mid; // key found<a name="line.2093"></a>
-<span class="sourceLineNo">2094</span> }<a name="line.2094"></a>
-<span class="sourceLineNo">2095</span> }<a name="line.2095"></a>
-<span class="sourceLineNo">2096</span> return -(low + 1); // key not found.<a name="line.2096"></a>
-<span class="sourceLineNo">2097</span> }<a name="line.2097"></a>
-<span class="sourceLineNo">2098</span><a name="line.2098"></a>
-<span class="sourceLineNo">2099</span> /**<a name="line.2099"></a>
-<span class="sourceLineNo">2100</span> * Treat the byte[] as an unsigned series of bytes, most significant bits first. Start by adding 1<a name="line.2100"></a>
-<span class="sourceLineNo">2101</span> * to the rightmost bit/byte and carry over all overflows to the more significant bits/bytes.<a name="line.2101"></a>
-<span class="sourceLineNo">2102</span> * @param input The byte[] to increment.<a name="line.2102"></a>
-<span class="sourceLineNo">2103</span> * @return The incremented copy of "in". May be same length or 1 byte longer.<a name="line.2103"></a>
-<span class="sourceLineNo">2104</span> */<a name="line.2104"></a>
-<span class="sourceLineNo">2105</span> public static byte[] unsignedCopyAndIncrement(final byte[] input) {<a name="line.2105"></a>
-<span class="sourceLineNo">2106</span> byte[] copy = copy(input);<a name="line.2106"></a>
-<span class="sourceLineNo">2107</span> if (copy == null) {<a name="line.2107"></a>
-<span class="sourceLineNo">2108</span> throw new IllegalArgumentException("cannot increment null array");<a name="line.2108"></a>
-<span class="sourceLineNo">2109</span> }<a name="line.2109"></a>
-<span class="sourceLineNo">2110</span> for (int i = copy.length - 1; i >= 0; --i) {<a name="line.2110"></a>
-<span class="sourceLineNo">2111</span> if (copy[i] == -1) {// -1 is all 1-bits, which is the unsigned maximum<a name="line.2111"></a>
-<span class="sourceLineNo">2112</span> copy[i] = 0;<a name="line.2112"></a>
-<span class="sourceLineNo">2113</span> } else {<a name="line.2113"></a>
-<span class="sourceLineNo">2114</span> ++copy[i];<a name="line.2114"></a>
-<span class="sourceLineNo">2115</span> return copy;<a name="line.2115"></a>
-<span class="sourceLineNo">2116</span> }<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span> }<a name="line.2117"></a>
-<span class="sourceLineNo">2118</span> // we maxed out the array<a name="line.2118"></a>
-<span class="sourceLineNo">2119</span> byte[] out = new byte[copy.length + 1];<a name="line.2119"></a>
-<span class="sourceLineNo">2120</span> out[0] = 1;<a name="line.2120"></a>
-<span class="sourceLineNo">2121</span> System.arraycopy(copy, 0, out, 1, copy.length);<a name="line.2121"></a>
-<span class="sourceLineNo">2122</span> return out;<a name="line.2122"></a>
-<span class="sourceLineNo">2123</span> }<a name="line.2123"></a>
-<span class="sourceLineNo">2124</span><a name="line.2124"></a>
-<span class="sourceLineNo">2125</span> public static boolean equals(List<byte[]> a, List<byte[]> b) {<a name="line.2125"></a>
-<span class="sourceLineNo">2126</span> if (a == null) {<a name="line.2126"></a>
-<span class="sourceLineNo">2127</span> if (b == null) {<a name="line.2127"></a>
-<span class="sourceLineNo">2128</span> return true;<a name="line.2128"></a>
-<span class="sourceLineNo">2129</span> }<a name="line.2129"></a>
-<span class="sourceLineNo">2130</span> return false;<a name="line.2130"></a>
-<span class="sourceLineNo">2131</span> }<a name="line.2131"></a>
-<span class="sourceLineNo">2132</span> if (b == null) {<a name="line.2132"></a>
-<span class="sourceLineNo">2133</span> return false;<a name="line.2133"></a>
-<span class="sourceLineNo">2134</span> }<a name="line.2134"></a>
-<span class="sourceLineNo">2135</span> if (a.size() != b.size()) {<a name="line.2135"></a>
-<span class="sourceLineNo">2136</span> return false;<a name="line.2136"></a>
-<span class="sourceLineNo">2137</span> }<a name="line.2137"></a>
-<span class="sourceLineNo">2138</span> for (int i = 0; i < a.size(); ++i) {<a name="line.2138"></a>
-<span class="sourceLineNo">2139</span> if (!Bytes.equals(a.get(i), b.get(i))) {<a name="line.2139"></a>
-<span class="sourceLineNo">2140</span> return false;<a name="line.2140"></a>
-<span class="sourceLineNo">2141</span> }<a name="line.2141"></a>
-<span class="sourceLineNo">2142</span> }<a name="line.2142"></a>
-<span class="sourceLineNo">2143</span> return true;<a name="line.2143"></a>
-<span class="sourceLineNo">2144</span> }<a name="line.2144"></a>
-<span class="sourceLineNo">2145</span><a name="line.2145"></a>
-<span class="sourceLineNo">2146</span> public static boolean isSorted(Collection<byte[]> arrays) {<a name="line.2146"></a>
-<span class="sourceLineNo">2147</span> if (!CollectionUtils.isEmpty(arrays)) {<a name="line.2147"></a>
-<span class="sourceLineNo">2148</span> byte[] previous = new byte[0];<a name="line.2148"></a>
-<span class="sourceLineNo">2149</span> for (byte[] array : arrays) {<a name="line.2149"></a>
-<span class="sourceLineNo">2150</span> if (Bytes.compareTo(previous, array) > 0) {<a name="line.2150"></a>
-<span class="sourceLineNo">2151</span> return false;<a name="line.2151"></a>
-<span class="sourceLineNo">2152</span> }<a name="line.2152"></a>
-<span class="sourceLineNo">2153</span> previous = array;<a name="line.2153"></a>
-<span class="sourceLineNo">2154</span> }<a name="line.2154"></a>
-<span class="sourceLineNo">2155</span> }<a name="line.2155"></a>
-<span class="sourceLineNo">2156</span> return true;<a name="line.2156"></a>
-<span class="sourceLineNo">2157</span> }<a name="line.2157"></a>
-<span class="sourceLineNo">2158</span><a name="line.2158"></a>
-<span class="sourceLineNo">2159</span> public static List<byte[]> getUtf8ByteArrays(List<String> strings) {<a name="line.2159"></a>
-<span class="sourceLineNo">2160</span> if (CollectionUtils.isEmpty(strings)) {<a name="line.2160"></a>
-<span class="sourceLineNo">2161</span> return Collections.emptyList();<a name="line.2161"></a>
-<span class="sourceLineNo">2162</span> }<a name="line.2162"></a>
-<span class="sourceLineNo">2163</span> List<byte[]> byteArrays = new ArrayList<>(strings.size());<a name="line.2163"></a>
-<span class="sourceLineNo">2164</span> strings.forEach(s -> byteArrays.add(Bytes.toBytes(s)));<a name="line.2164"></a>
-<span class="sourceLineNo">2165</span> return byteArrays;<a name="line.2165"></a>
-<span class="sourceLineNo">2166</span> }<a name="line.2166"></a>
-<span class="sourceLineNo">2167</span><a name="line.2167"></a>
-<span class="sourceLineNo">2168</span> /**<a name="line.2168"></a>
-<span class="sourceLineNo">2169</span> * Returns the index of the first appearance of the value {@code target} in {@code array}.<a name="line.2169"></a>
-<span class="sourceLineNo">2170</span> * @param array an array of {@code byte} values, possibly empty<a name="line.2170"></a>
-<span class="sourceLineNo">2171</span> * @param target a primitive {@code byte} value<a name="line.2171"></a>
-<span class="sourceLineNo">2172</span> * @return the least index {@code i} for which {@code array[i] == target}, or {@code -1} if no<a name="line.2172"></a>
-<span class="sourceLineNo">2173</span> * such index exists.<a name="line.2173"></a>
-<span class="sourceLineNo">2174</span> */<a name="line.2174"></a>
-<span class="sourceLineNo">2175</span> public static int indexOf(byte[] array, byte target) {<a name="line.2175"></a>
-<span class="sourceLineNo">2176</span> for (int i = 0; i < array.length; i++) {<a name="line.2176"></a>
-<span class="sourceLineNo">2177</span> if (array[i] == target) {<a name="line.2177"></a>
-<span class="sourceLineNo">2178</span> return i;<a name="line.2178"></a>
-<span class="sourceLineNo">2179</span> }<a name="line.2179"></a>
-<span class="sourceLineNo">2180</span> }<a name="line.2180"></a>
-<span class="sourceLineNo">2181</span> return -1;<a name="line.2181"></a>
-<span class="sourceLineNo">2182</span> }<a name="line.2182"></a>
-<span class="sourceLineNo">2183</span><a name="line.2183"></a>
-<span class="sourceLineNo">2184</span> /**<a name="line.2184"></a>
-<span class="sourceLineNo">2185</span> * Returns the start position of the first occurrence of the specified {@code<a name="line.2185"></a>
-<span class="sourceLineNo">2186</span> * target} within {@code array}, or {@code -1} if there is no such occurrence.<a name="line.2186"></a>
-<span class="sourceLineNo">2187</span> * <p><a name="line.2187"></a>
-<span class="sourceLineNo">2188</span> * More formally, returns the lowest index {@code i} such that {@code<a name="line.2188"></a>
-<span class="sourceLineNo">2189</span> * java.util.Arrays.copyOfRange(array, i, i + target.length)} contains exactly the same elements<a name="line.2189"></a>
-<span class="sourceLineNo">2190</span> * as {@code target}.<a name="line.2190"></a>
-<span class="sourceLineNo">2191</span> * @param array the array to search for the sequence {@code target}<a name="line.2191"></a>
-<span class="sourceLineNo">2192</span> * @param target the array to search for as a sub-sequence of {@code array}<a name="line.2192"></a>
-<span class="sourceLineNo">2193</span> */<a name="line.2193"></a>
-<span class="sourceLineNo">2194</span> public static int indexOf(byte[] array, byte[] target) {<a name="line.2194"></a>
-<span class="sourceLineNo">2195</span> checkNotNull(array, "array");<a name="line.2195"></a>
-<span class="sourceLineNo">2196</span> checkNotNull(target, "target");<a name="line.2196"></a>
-<span class="sourceLineNo">2197</span> if (target.length == 0) {<a name="line.2197"></a>
-<span class="sourceLineNo">2198</span> return 0;<a name="line.2198"></a>
-<span class="sourceLineNo">2199</span> }<a name="line.2199"></a>
-<span class="sourceLineNo">2200</span><a name="line.2200"></a>
-<span class="sourceLineNo">2201</span> outer: for (int i = 0; i < array.length - target.length + 1; i++) {<a name="line.2201"></a>
-<span class="sourceLineNo">2202</span> for (int j = 0; j < target.length; j++) {<a name="line.2202"></a>
-<span class="sourceLineNo">2203</span> if (array[i + j] != target[j]) {<a name="line.2203"></a>
-<span class="sourceLineNo">2204</span> continue outer;<a name="line.2204"></a>
-<span class="sourceLineNo">2205</span> }<a name="line.2205"></a>
-<span class="sourceLineNo">2206</span> }<a name="line.2206"></a>
-<span class="sourceLineNo">2207</span> return i;<a name="line.2207"></a>
-<span class="sourceLineNo">2208</span> }<a name="line.2208"></a>
-<span class="sourceLineNo">2209</span> return -1;<a name="line.2209"></a>
-<span class="sourceLineNo">2210</span> }<a name="line.2210"></a>
-<span class="sourceLineNo">2211</span><a name="line.2211"></a>
-<span class="sourceLineNo">2212</span> /**<a name="line.2212"></a>
-<span class="sourceLineNo">2213</span> * Return true if target is present as an element anywhere in the given array.<a name="line.2213"></a>
-<span class="sourceLineNo">2214</span> * @param array an array of {@code byte} values, possibly empty<a name="line.2214"></a>
-<span class="sourceLineNo">2215</span> * @param target a primitive {@code byte} value<a name="line.2215"></a>
-<span class="sourceLineNo">2216</span> * @return {@code true} if {@code target} is present as an element anywhere in {@code array}.<a name="line.2216"></a>
-<span class="sourceLineNo">2217</span> */<a name="line.2217"></a>
-<span class="sourceLineNo">2218</span> public static boolean contains(byte[] array, byte target) {<a name="line.2218"></a>
-<span class="sourceLineNo">2219</span> return indexOf(array, target) > -1;<a name="line.2219"></a>
-<span class="sourceLineNo">2220</span> }<a name="line.2220"></a>
-<span class="sourceLineNo">2221</span><a name="line.2221"></a>
-<span class="sourceLineNo">2222</span> /**<a name="line.2222"></a>
-<span class="sourceLineNo">2223</span> * Return true if target is present as an element anywhere in the given array.<a name="line.2223"></a>
-<span class="sourceLineNo">2224</span> * @param array an array of {@code byte} values, possibly empty<a name="line.2224"></a>
-<span class="sourceLineNo">2225</span> * @param target an array of {@code byte}<a name="line.2225"></a>
-<span class="sourceLineNo">2226</span> * @return {@code true} if {@code target} is present anywhere in {@code array}<a name="line.2226"></a>
-<span class="sourceLineNo">2227</span> */<a name="line.2227"></a>
-<span class="sourceLineNo">2228</span> public static boolean contains(byte[] array, byte[] target) {<a name="line.2228"></a>
-<span class="sourceLineNo">2229</span> return indexOf(array, target) > -1;<a name="line.2229"></a>
-<span class="sourceLineNo">2230</span> }<a name="line.2230"></a>
-<span class="sourceLineNo">2231</span><a name="line.2231"></a>
-<span class="sourceLineNo">2232</span> /**<a name="line.2232"></a>
-<span class="sourceLineNo">2233</span> * Fill given array with zeros.<a name="line.2233"></a>
-<span class="sourceLineNo">2234</span> * @param b array which needs to be filled with zeros<a name="line.2234"></a>
-<span class="sourceLineNo">2235</span> */<a name="line.2235"></a>
-<span class="sourceLineNo">2236</span> public static void zero(byte[] b) {<a name="line.2236"></a>
-<span class="sourceLineNo">2237</span> zero(b, 0, b.length);<a name="line.2237"></a>
-<span class="sourceLineNo">2238</span> }<a name="line.2238"></a>
-<span class="sourceLineNo">2239</span><a name="line.2239"></a>
-<span class="sourceLineNo">2240</span> /**<a name="line.2240"></a>
-<span class="sourceLineNo">2241</span> * Fill given array with zeros at the specified position.<a name="line.2241"></a>
-<span class="sourceLineNo">2242</span> */<a name="line.2242"></a>
-<span class="sourceLineNo">2243</span> public static void zero(byte[] b, int offset, int length) {<a name="line.2243"></a>
-<span class="sourceLineNo">2244</span> checkPositionIndex(offset, b.length, "offset");<a name="line.2244"></a>
-<span class="sourceLineNo">2245</span> checkArgument(length > 0, "length must be greater than 0");<a name="line.2245"></a>
-<span class="sourceLineNo">2246</span> checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2246"></a>
-<span class="sourceLineNo">2247</span> Arrays.fill(b, offset, offset + length, (byte) 0);<a name="line.2247"></a>
-<span class="sourceLineNo">2248</span> }<a name="line.2248"></a>
-<span class="sourceLineNo">2249</span><a name="line.2249"></a>
-<span class="sourceLineNo">2250</span> // Pseudorandom random number generator, do not use SecureRandom here<a name="line.2250"></a>
-<span class="sourceLineNo">2251</span> private static final Random RNG = new Random();<a name="line.2251"></a>
-<span class="sourceLineNo">2252</span><a name="line.2252"></a>
-<span class="sourceLineNo">2253</span> /**<a name="line.2253"></a>
-<span class="sourceLineNo">2254</span> * Fill given array with random bytes.<a name="line.2254"></a>
-<span class="sourceLineNo">2255</span> * @param b array which needs to be filled with random bytes<a name="line.2255"></a>
-<span class="sourceLineNo">2256</span> * <p><a name="line.2256"></a>
-<span class="sourceLineNo">2257</span> * If you want random bytes generated by a strong source of randomness use<a name="line.2257"></a>
-<span class="sourceLineNo">2258</span> * {@link Bytes#secureRandom(byte[])}.<a name="line.2258"></a>
-<span class="sourceLineNo">2259</span> * @param b array which needs to be filled with random bytes<a name="line.2259"></a>
-<span class="sourceLineNo">2260</span> */<a name="line.2260"></a>
-<span class="sourceLineNo">2261</span> public static void random(byte[] b) {<a name="line.2261"></a>
-<span class="sourceLineNo">2262</span> RNG.nextBytes(b);<a name="line.2262"></a>
-<span class="sourceLineNo">2263</span> }<a name="line.2263"></a>
-<span class="sourceLineNo">2264</span><a name="line.2264"></a>
-<span class="sourceLineNo">2265</span> /**<a name="line.2265"></a>
-<span class="sourceLineNo">2266</span> * Fill given array with random bytes at the specified position.<a name="line.2266"></a>
-<span class="sourceLineNo">2267</span> * <p><a name="line.2267"></a>
-<span class="sourceLineNo">2268</span> * If you want random bytes generated by a strong source of randomness use<a name="line.2268"></a>
-<span class="sourceLineNo">2269</span> * {@link Bytes#secureRandom(byte[], int, int)}.<a name="line.2269"></a>
-<span class="sourceLineNo">2270</span> * @param b array which needs to be filled with random bytes<a name="line.2270"></a>
-<span class="sourceLineNo">2271</span> * @param offset staring offset in array<a name="line.2271"></a>
-<span class="sourceLineNo">2272</span> * @param length number of bytes to fill<a name="line.2272"></a>
-<span class="sourceLineNo">2273</span> */<a name="line.2273"></a>
-<span class="sourceLineNo">2274</span> public static void random(byte[] b, int offset, int length) {<a name="line.2274"></a>
-<span class="sourceLineNo">2275</span> checkPositionIndex(offset, b.length, "offset");<a name="line.2275"></a>
-<span class="sourceLineNo">2276</span> checkArgument(length > 0, "length must be greater than 0");<a name="line.2276"></a>
-<span class="sourceLineNo">2277</span> checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2277"></a>
-<span class="sourceLineNo">2278</span> byte[] buf = new byte[length];<a name="line.2278"></a>
-<span class="sourceLineNo">2279</span> RNG.nextBytes(buf);<a name="line.2279"></a>
-<span class="sourceLineNo">2280</span> System.arraycopy(buf, 0, b, offset, length);<a name="line.2280"></a>
-<span class="sourceLineNo">2281</span> }<a name="line.2281"></a>
-<span class="sourceLineNo">2282</span><a name="line.2282"></a>
-<span class="sourceLineNo">2283</span> // Bytes.secureRandom may be used to create key material.<a name="line.2283"></a>
-<span class="sourceLineNo">2284</span> private static final SecureRandom SECURE_RNG = new SecureRandom();<a name="line.2284"></a>
-<span class="sourceLineNo">2285</span><a name="line.2285"></a>
-<span class="sourceLineNo">2286</span> /**<a name="line.2286"></a>
-<span class="sourceLineNo">2287</span> * Fill given array with random bytes using a strong random number generator.<a name="line.2287"></a>
-<span class="sourceLineNo">2288</span> * @param b array which needs to be filled with random bytes<a name="line.2288"></a>
-<span class="sourceLineNo">2289</span> */<a name="line.2289"></a>
-<span class="sourceLineNo">2290</span> public static void secureRandom(byte[] b) {<a name="line.2290"></a>
-<span class="sourceLineNo">2291</span> SECURE_RNG.nextBytes(b);<a name="line.2291"></a>
-<span class="sourceLineNo">2292</span> }<a name="line.2292"></a>
-<span class="sourceLineNo">2293</span><a name="line.2293"></a>
-<span class="sourceLineNo">2294</span> /**<a name="line.2294"></a>
-<span class="sourceLineNo">2295</span> * Fill given array with random bytes at the specified position using a strong random number<a name="line.2295"></a>
-<span class="sourceLineNo">2296</span> * generator.<a name="line.2296"></a>
-<span class="sourceLineNo">2297</span> * @param b array which needs to be filled with random bytes<a name="line.2297"></a>
-<span class="sourceLineNo">2298</span> * @param offset staring offset in array<a name="line.2298"></a>
-<span class="sourceLineNo">2299</span> * @param length number of bytes to fill<a name="line.2299"></a>
-<span class="sourceLineNo">2300</span> */<a name="line.2300"></a>
-<span class="sourceLineNo">2301</span> public static void secureRandom(byte[] b, int offset, int length) {<a name="line.2301"></a>
-<span class="sourceLineNo">2302</span> checkPositionIndex(offset, b.length, "offset");<a name="line.2302"></a>
-<span class="sourceLineNo">2303</span> checkArgument(length > 0, "length must be greater than 0");<a name="line.2303"></a>
-<span class="sourceLineNo">2304</span> checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2304"></a>
-<span class="sourceLineNo">2305</span> byte[] buf = new byte[length];<a name="line.2305"></a>
-<span class="sourceLineNo">2306</span> SECURE_RNG.nextBytes(buf);<a name="line.2306"></a>
-<span class="sourceLineNo">2307</span> System.arraycopy(buf, 0, b, offset, length);<a name="line.2307"></a>
+<span class="sourceLineNo">1778</span> return add(a, padding);<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span> }<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span><a name="line.1780"></a>
+<span class="sourceLineNo">1781</span> /**<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span> * Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span> * ranges for MapReduce jobs.<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span> * @param a Beginning of range<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span> * @param b End of range<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span> * @param num Number of times to split range. Pass 1 if you want to split the range in two; i.e.<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span> * one split.<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span> * @return Array of dividing values<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span> */<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span> public static byte[][] split(final byte[] a, final byte[] b, final int num) {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span> return split(a, b, false, num);<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span> }<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span><a name="line.1793"></a>
+<span class="sourceLineNo">1794</span> /**<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span> * Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span> * ranges for MapReduce jobs.<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span> * @param a Beginning of range<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span> * @param b End of range<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span> * @param inclusive Whether the end of range is prefix-inclusive or is considered an exclusive<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span> * boundary. Automatic splits are generally exclusive and manual splits with an<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span> * explicit range utilize an inclusive end of range.<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span> * @param num Number of times to split range. Pass 1 if you want to split the range in two;<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span> * i.e. one split.<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span> * @return Array of dividing values<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span> */<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span> public static byte[][] split(final byte[] a, final byte[] b, boolean inclusive, final int num) {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span> byte[][] ret = new byte[num + 2][];<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span> int i = 0;<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span> Iterable<byte[]> iter = iterateOnSplits(a, b, inclusive, num);<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span> if (iter == null) return null;<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span> for (byte[] elem : iter) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span> ret[i++] = elem;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span> }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span> return ret;<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span> }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span><a name="line.1816"></a>
+<span class="sourceLineNo">1817</span> /**<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span> * Iterate over keys within the passed range, splitting at an [a,b) boundary.<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span> */<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span> public static Iterable<byte[]> iterateOnSplits(final byte[] a, final byte[] b, final int num) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span> return iterateOnSplits(a, b, false, num);<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span> }<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span><a name="line.1823"></a>
+<span class="sourceLineNo">1824</span> /**<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span> * Iterate over keys within the passed range.<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span> */<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span> public static Iterable<byte[]> iterateOnSplits(final byte[] a, final byte[] b, boolean inclusive,<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span> final int num) {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span> byte[] aPadded;<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span> byte[] bPadded;<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span> if (a.length < b.length) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span> aPadded = padTail(a, b.length - a.length);<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span> bPadded = b;<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span> } else if (b.length < a.length) {<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span> aPadded = a;<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span> bPadded = padTail(b, a.length - b.length);<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span> } else {<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span> aPadded = a;<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span> bPadded = b;<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span> }<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span> if (compareTo(aPadded, bPadded) >= 0) {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span> throw new IllegalArgumentException("b <= a");<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span> }<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span> if (num <= 0) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span> throw new IllegalArgumentException("num cannot be <= 0");<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span> }<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span> byte[] prependHeader = { 1, 0 };<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span> final BigInteger startBI = new BigInteger(add(prependHeader, aPadded));<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span> final BigInteger stopBI = new BigInteger(add(prependHeader, bPadded));<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span> BigInteger diffBI = stopBI.subtract(startBI);<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span> if (inclusive) {<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span> diffBI = diffBI.add(BigInteger.ONE);<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span> }<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span> final BigInteger splitsBI = BigInteger.valueOf(num + 1);<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span> // when diffBI < splitBI, use an additional byte to increase diffBI<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span> if (diffBI.compareTo(splitsBI) < 0) {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span> byte[] aPaddedAdditional = new byte[aPadded.length + 1];<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span> byte[] bPaddedAdditional = new byte[bPadded.length + 1];<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span> for (int i = 0; i < aPadded.length; i++) {<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span> aPaddedAdditional[i] = aPadded[i];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span> }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span> for (int j = 0; j < bPadded.length; j++) {<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span> bPaddedAdditional[j] = bPadded[j];<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span> }<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span> aPaddedAdditional[aPadded.length] = 0;<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span> bPaddedAdditional[bPadded.length] = 0;<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span> return iterateOnSplits(aPaddedAdditional, bPaddedAdditional, inclusive, num);<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span> }<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span> final BigInteger intervalBI;<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span> try {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span> intervalBI = diffBI.divide(splitsBI);<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span> } catch (Exception e) {<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span> LOG.error("Exception caught during division", e);<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span> return null;<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span> }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span><a name="line.1876"></a>
+<span class="sourceLineNo">1877</span> final Iterator<byte[]> iterator = new Iterator<byte[]>() {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span> private int i = -1;<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span><a name="line.1879"></a>
+<span class="sourceLineNo">1880</span> @Override<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span> public boolean hasNext() {<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span> return i < num + 1;<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span> }<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span><a name="line.1884"></a>
+<span class="sourceLineNo">1885</span> @Override<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span> public byte[] next() {<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span> i++;<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span> if (i == 0) return a;<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span> if (i == num + 1) return b;<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span> BigInteger curBI = startBI.add(intervalBI.multiply(BigInteger.valueOf(i)));<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span> byte[] padded = curBI.toByteArray();<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span> if (padded[1] == 0) padded = tail(padded, padded.length - 2);<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span> else padded = tail(padded, padded.length - 1);<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span> return padded;<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span> }<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span><a name="line.1897"></a>
+<span class="sourceLineNo">1898</span> @Override<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span> public void remove() {<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span> throw new UnsupportedOperationException();<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span> }<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span><a name="line.1902"></a>
+<span class="sourceLineNo">1903</span> };<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span><a name="line.1904"></a>
+<span class="sourceLineNo">1905</span> return new Iterable<byte[]>() {<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span> @Override<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span> public Iterator<byte[]> iterator() {<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span> return iterator;<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span> }<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span> };<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span> }<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span><a name="line.1912"></a>
+<span class="sourceLineNo">1913</span> /**<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span> * Calculate the hash code for a given range of bytes.<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span> * @param bytes array to hash<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span> * @param offset offset to start from<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span> * @param length length to hash<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span> */<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span> public static int hashCode(byte[] bytes, int offset, int length) {<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span> int hash = 1;<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span> for (int i = offset; i < offset + length; i++)<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span> hash = (31 * hash) + bytes[i];<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span> return hash;<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span> }<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span><a name="line.1925"></a>
+<span class="sourceLineNo">1926</span> /**<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span> * Create an array of byte[] given an array of String.<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span> * @param t operands<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span> * @return Array of byte arrays made from passed array of Text<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span> */<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span> public static byte[][] toByteArrays(final String[] t) {<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span> byte[][] result = new byte[t.length][];<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span> for (int i = 0; i < t.length; i++) {<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span> result[i] = Bytes.toBytes(t[i]);<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span> }<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span> return result;<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span> }<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span><a name="line.1938"></a>
+<span class="sourceLineNo">1939</span> /**<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span> * Create an array of byte[] given an array of String.<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span> * @param t operands<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span> * @return Array of binary byte arrays made from passed array of binary strings<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span> */<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span> public static byte[][] toBinaryByteArrays(final String[] t) {<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span> byte[][] result = new byte[t.length][];<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span> for (int i = 0; i < t.length; i++) {<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span> result[i] = Bytes.toBytesBinary(t[i]);<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span> }<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span> return result;<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span> }<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span><a name="line.1951"></a>
+<span class="sourceLineNo">1952</span> /**<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span> * Create a byte[][] where first and only entry is <code>column</code><a name="line.1953"></a>
+<span class="sourceLineNo">1954</span> * @param column operand<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span> * @return A byte array of a byte array where first and only entry is <code>column</code><a name="line.1955"></a>
+<span class="sourceLineNo">1956</span> */<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span> public static byte[][] toByteArrays(final String column) {<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span> return toByteArrays(toBytes(column));<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span> }<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span><a name="line.1960"></a>
+<span class="sourceLineNo">1961</span> /**<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span> * Create a byte[][] where first and only entry is <code>column</code><a name="line.1962"></a>
+<span class="sourceLineNo">1963</span> * @param column operand<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span> * @return A byte array of a byte array where first and only entry is <code>column</code><a name="line.1964"></a>
+<span class="sourceLineNo">1965</span> */<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span> public static byte[][] toByteArrays(final byte[] column) {<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span> byte[][] result = new byte[1][];<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span> result[0] = column;<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span> return result;<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span> }<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span><a name="line.1971"></a>
+<span class="sourceLineNo">1972</span> /**<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span> * Binary search for keys in indexes using Bytes.BYTES_RAWCOMPARATOR.<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span> * @param arr array of byte arrays to search for<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span> * @param key the key you want to find<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span> * @param offset the offset in the key you want to find<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span> * @param length the length of the key<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span> * @return zero-based index of the key, if the key is present in the array. Otherwise, a value -(i<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span> * + 1) such that the key is between arr[i - 1] and arr[i] non-inclusively, where i is in<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span> * [0, i], if we define arr[-1] = -Inf and arr[N] = Inf for an N-element array. The above<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span> * means that this function can return 2N + 1 different values ranging from -(N + 1) to N<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span> * - 1.<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span> */<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span> public static int binarySearch(byte[][] arr, byte[] key, int offset, int length) {<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span> int low = 0;<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span> int high = arr.length - 1;<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span><a name="line.1987"></a>
+<span class="sourceLineNo">1988</span> while (low <= high) {<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span> int mid = low + ((high - low) >> 1);<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span> // we have to compare in this order, because the comparator order<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span> // has special logic when the 'left side' is a special key.<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span> int cmp =<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span> Bytes.BYTES_RAWCOMPARATOR.compare(key, offset, length, arr[mid], 0, arr[mid].length);<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span> // key lives above the midpoint<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span> if (cmp > 0) low = mid + 1;<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span> // key lives below the midpoint<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span> else if (cmp < 0) high = mid - 1;<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span> // BAM. how often does this really happen?<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span> else return mid;<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span> }<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span> return -(low + 1);<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span> }<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span><a name="line.2003"></a>
+<span class="sourceLineNo">2004</span> /**<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span> * Binary search for keys in indexes.<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span> * @param arr array of byte arrays to search for<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span> * @param key the key you want to find<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span> * @param comparator a comparator to compare.<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span> * @return zero-based index of the key, if the key is present in the array. Otherwise, a value -(i<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span> * + 1) such that the key is between arr[i - 1] and arr[i] non-inclusively, where i is in<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span> * [0, i], if we define arr[-1] = -Inf and arr[N] = Inf for an N-element array. The above<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span> * means that this function can return 2N + 1 different values ranging from -(N + 1) to N<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span> * - 1.<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span> * @return the index of the block<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span> */<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span> public static int binarySearch(Cell[] arr, Cell key, CellComparator comparator) {<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span> int low = 0;<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span> int high = arr.length - 1;<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span> while (low <= high) {<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span> int mid = low + ((high - low) >> 1);<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span> // we have to compare in this order, because the comparator order<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span> // has special logic when the 'left side' is a special key.<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span> int cmp = comparator.compare(key, arr[mid]);<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span> // key lives above the midpoint<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span> if (cmp > 0) low = mid + 1;<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span> // key lives below the midpoint<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span> else if (cmp < 0) high = mid - 1;<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span> // BAM. how often does this really happen?<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span> else return mid;<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span> }<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span> return -(low + 1);<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span> }<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span><a name="line.2033"></a>
+<span class="sourceLineNo">2034</span> /**<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span> * Bytewise binary increment/deincrement of long contained in byte array on given amount.<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span> * @param value - array of bytes containing long (length &lt;= SIZEOF_LONG)<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span> * @param amount value will be incremented on (deincremented if negative)<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span> * @return array of bytes containing incremented long (length == SIZEOF_LONG)<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span> */<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span> public static byte[] incrementBytes(byte[] value, long amount) {<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span> byte[] val = value;<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span> if (val.length < SIZEOF_LONG) {<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span> // Hopefully this doesn't happen too often.<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span> byte[] newvalue;<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span> if (val[0] < 0) {<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span> newvalue = new byte[] { -1, -1, -1, -1, -1, -1, -1, -1 };<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span> } else {<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span> newvalue = new byte[SIZEOF_LONG];<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span> }<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span> System.arraycopy(val, 0, newvalue, newvalue.length - val.length, val.length);<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span> val = newvalue;<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span> } else if (val.length > SIZEOF_LONG) {<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span> throw new IllegalArgumentException("Increment Bytes - value too big: " + val.length);<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span> }<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span> if (amount == 0) return val;<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span> if (val[0] < 0) {<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span> return binaryIncrementNeg(val, amount);<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span> }<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span> return binaryIncrementPos(val, amount);<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span> }<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span><a name="line.2061"></a>
+<span class="sourceLineNo">2062</span> /* increment/deincrement for positive value */<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span> private static byte[] binaryIncrementPos(byte[] value, long amount) {<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span> long amo = amount;<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span> int sign = 1;<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span> if (amount < 0) {<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span> amo = -amount;<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span> sign = -1;<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span> }<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span> for (int i = 0; i < value.length; i++) {<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span> int cur = ((int) amo % 256) * sign;<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span> amo = (amo >> 8);<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span> int val = value[value.length - i - 1] & 0x0ff;<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span> int total = val + cur;<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span> if (total > 255) {<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span> amo += sign;<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span> total %= 256;<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span> } else if (total < 0) {<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span> amo -= sign;<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span> }<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span> value[value.length - i - 1] = (byte) total;<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span> if (amo == 0) return value;<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span> }<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span> return value;<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span> }<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span><a name="line.2086"></a>
+<span class="sourceLineNo">2087</span> /* increment/deincrement for negative value */<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span> private static byte[] binaryIncrementNeg(byte[] value, long amount) {<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span> long amo = amount;<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span> int sign = 1;<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span> if (amount < 0) {<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span> amo = -amount;<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span> sign = -1;<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span> }<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span> for (int i = 0; i < value.length; i++) {<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span> int cur = ((int) amo % 256) * sign;<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span> amo = (amo >> 8);<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span> int val = (~value[value.length - i - 1] & 0x0ff) + 1;<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span> int total = cur - val;<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span> if (total >= 0) {<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span> amo += sign;<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span> } else if (total < -256) {<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span> amo -= sign;<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span> total %= 256;<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span> }<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span> value[value.length - i - 1] = (byte) total;<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span> if (amo == 0) return value;<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span> }<a name="line.2108"></a>
+<span class="sourceLineNo">2109</span> return value;<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span> }<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span><a name="line.2111"></a>
+<span class="sourceLineNo">2112</span> /**<a name="line.2112"></a>
+<span class="sourceLineNo">2113</span> * Writes a string as a fixed-size field, padded with zeros.<a name="line.2113"></a>
+<span class="sourceLineNo">2114</span> */<a name="line.2114"></a>
+<span class="sourceLineNo">2115</span> public static void writeStringFixedSize(final DataOutput out, String s, int size)<a name="line.2115"></a>
+<span class="sourceLineNo">2116</span> throws IOException {<a name="line.2116"></a>
+<span class="sourceLineNo">2117</span> byte[] b = toBytes(s);<a name="line.2117"></a>
+<span class="sourceLineNo">2118</span> if (b.length > size) {<a name="line.2118"></a>
+<span class="sourceLineNo">2119</span> throw new IOException("Trying to write " + b.length + " bytes (" + toStringBinary(b)<a name="line.2119"></a>
+<span class="sourceLineNo">2120</span> + ") into a field of length " + size);<a name="line.2120"></a>
+<span class="sourceLineNo">2121</span> }<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span><a name="line.2122"></a>
+<span class="sourceLineNo">2123</span> out.writeBytes(s);<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span> for (int i = 0; i < size - s.length(); ++i)<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span> out.writeByte(0);<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span> }<a name="line.2126"></a>
+<span class="sourceLineNo">2127</span><a name="line.2127"></a>
+<span class="sourceLineNo">2128</span> /**<a name="line.2128"></a>
+<span class="sourceLineNo">2129</span> * Reads a fixed-size field and interprets it as a string padded with zeros.<a name="line.2129"></a>
+<span class="sourceLineNo">2130</span> */<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span> public static String readStringFixedSize(final DataInput in, int size) throws IOException {<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span> byte[] b = new byte[size];<a name="line.2132"></a>
+<span class="sourceLineNo">2133</span> in.readFully(b);<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span> int n = b.length;<a name="line.2134"></a>
+<span class="sourceLineNo">2135</span> while (n > 0 && b[n - 1] == 0)<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span> --n;<a name="line.2136"></a>
+<span class="sourceLineNo">2137</span><a name="line.2137"></a>
+<span class="sourceLineNo">2138</span> return toString(b, 0, n);<a name="line.2138"></a>
+<span class="sourceLineNo">2139</span> }<a name="line.2139"></a>
+<span class="sourceLineNo">2140</span><a name="line.2140"></a>
+<span class="sourceLineNo">2141</span> /**<a name="line.2141"></a>
+<span class="sourceLineNo">2142</span> * Copy the byte array given in parameter and return an instance of a new byte array with the same<a name="line.2142"></a>
+<span class="sourceLineNo">2143</span> * length and the same content.<a name="line.2143"></a>
+<span class="sourceLineNo">2144</span> * @param bytes the byte array to duplicate<a name="line.2144"></a>
+<span class="sourceLineNo">2145</span> * @return a copy of the given byte array<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span> */<a name="line.2146"></a>
+<span class="sourceLineNo">2147</span> public static byte[] copy(byte[] bytes) {<a name="line.2147"></a>
+<span class="sourceLineNo">2148</span> if (bytes == null) return null;<a name="line.2148"></a>
+<span class="sourceLineNo">2149</span> byte[] result = new byte[bytes.length];<a name="line.2149"></a>
+<span class="sourceLineNo">2150</span> System.arraycopy(bytes, 0, result, 0, bytes.length);<a name="line.2150"></a>
+<span class="sourceLineNo">2151</span> return result;<a name="line.2151"></a>
+<span class="sourceLineNo">2152</span> }<a name="line.2152"></a>
+<span class="sourceLineNo">2153</span><a name="line.2153"></a>
+<span class="sourceLineNo">2154</span> /**<a name="line.2154"></a>
+<span class="sourceLineNo">2155</span> * Copy the byte array given in parameter and return an instance of a new byte array with the same<a name="line.2155"></a>
+<span class="sourceLineNo">2156</span> * length and the same content.<a name="line.2156"></a>
+<span class="sourceLineNo">2157</span> * @param bytes the byte array to copy from<a name="line.2157"></a>
+<span class="sourceLineNo">2158</span> * @return a copy of the given designated byte array<a name="line.2158"></a>
+<span class="sourceLineNo">2159</span> */<a name="line.2159"></a>
+<span class="sourceLineNo">2160</span> public static byte[] copy(byte[] bytes, final int offset, final int length) {<a name="line.2160"></a>
+<span class="sourceLineNo">2161</span> if (bytes == null) return null;<a name="line.2161"></a>
+<span class="sourceLineNo">2162</span> byte[] result = new byte[length];<a name="line.2162"></a>
+<span class="sourceLineNo">2163</span> System.arraycopy(bytes, offset, result, 0, length);<a name="line.2163"></a>
+<span class="sourceLineNo">2164</span> return result;<a name="line.2164"></a>
+<span class="sourceLineNo">2165</span> }<a name="line.2165"></a>
+<span class="sourceLineNo">2166</span><a name="line.2166"></a>
+<span class="sourceLineNo">2167</span> /**<a name="line.2167"></a>
+<span class="sourceLineNo">2168</span> * Search sorted array "a" for byte "key". I can't remember if I wrote this or copied it from<a name="line.2168"></a>
+<span class="sourceLineNo">2169</span> * somewhere. (mcorgan)<a name="line.2169"></a>
+<span class="sourceLineNo">2170</span> * @param a Array to search. Entries must be sorted and unique.<a name="line.2170"></a>
+<span class="sourceLineNo">2171</span> * @param fromIndex First index inclusive of "a" to include in the search.<a name="line.2171"></a>
+<span class="sourceLineNo">2172</span> * @param toIndex Last index exclusive of "a" to include in the search.<a name="line.2172"></a>
+<span class="sourceLineNo">2173</span> * @param key The byte to search for.<a name="line.2173"></a>
+<span class="sourceLineNo">2174</span> * @return The index of key if found. If not found, return -(index + 1), where negative indicates<a name="line.2174"></a>
+<span class="sourceLineNo">2175</span> * "not found" and the "index + 1" handles the "-0" case.<a name="line.2175"></a>
+<span class="sourceLineNo">2176</span> */<a name="line.2176"></a>
+<span class="sourceLineNo">2177</span> public static int unsignedBinarySearch(byte[] a, int fromIndex, int toIndex, byte key) {<a name="line.2177"></a>
+<span class="sourceLineNo">2178</span> int unsignedKey = key & 0xff;<a name="line.2178"></a>
+<span class="sourceLineNo">2179</span> int low = fromIndex;<a name="line.2179"></a>
+<span class="sourceLineNo">2180</span> int high = toIndex - 1;<a name="line.2180"></a>
+<span class="sourceLineNo">2181</span><a name="line.2181"></a>
+<span class="sourceLineNo">2182</span> while (low <= high) {<a name="line.2182"></a>
+<span class="sourceLineNo">2183</span> int mid = low + ((high - low) >> 1);<a name="line.2183"></a>
+<span class="sourceLineNo">2184</span> int midVal = a[mid] & 0xff;<a name="line.2184"></a>
+<span class="sourceLineNo">2185</span><a name="line.2185"></a>
+<span class="sourceLineNo">2186</span> if (midVal < unsignedKey) {<a name="line.2186"></a>
+<span class="sourceLineNo">2187</span> low = mid + 1;<a name="line.2187"></a>
+<span class="sourceLineNo">2188</span> } else if (midVal > unsignedKey) {<a name="line.2188"></a>
+<span class="sourceLineNo">2189</span> high = mid - 1;<a name="line.2189"></a>
+<span class="sourceLineNo">2190</span> } else {<a name="line.2190"></a>
+<span class="sourceLineNo">2191</span> return mid; // key found<a name="line.2191"></a>
+<span class="sourceLineNo">2192</span> }<a name="line.2192"></a>
+<span class="sourceLineNo">2193</span> }<a name="line.2193"></a>
+<span class="sourceLineNo">2194</span> return -(low + 1); // key not found.<a name="line.2194"></a>
+<span class="sourceLineNo">2195</span> }<a name="line.2195"></a>
+<span class="sourceLineNo">2196</span><a name="line.2196"></a>
+<span class="sourceLineNo">2197</span> /**<a name="line.2197"></a>
+<span class="sourceLineNo">2198</span> * Treat the byte[] as an unsigned series of bytes, most significant bits first. Start by adding 1<a name="line.2198"></a>
+<span class="sourceLineNo">2199</span> * to the rightmost bit/byte and carry over all overflows to the more significant bits/bytes.<a name="line.2199"></a>
+<span class="sourceLineNo">2200</span> * @param input The byte[] to increment.<a name="line.2200"></a>
+<span class="sourceLineNo">2201</span> * @return The incremented copy of "in". May be same length or 1 byte longer.<a name="line.2201"></a>
+<span class="sourceLineNo">2202</span> */<a name="line.2202"></a>
+<span class="sourceLineNo">2203</span> public static byte[] unsignedCopyAndIncrement(final byte[] input) {<a name="line.2203"></a>
+<span class="sourceLineNo">2204</span> byte[] copy = copy(input);<a name="line.2204"></a>
+<span class="sourceLineNo">2205</span> if (copy == null) {<a name="line.2205"></a>
+<span class="sourceLineNo">2206</span> throw new IllegalArgumentException("cannot increment null array");<a name="line.2206"></a>
+<span class="sourceLineNo">2207</span> }<a name="line.2207"></a>
+<span class="sourceLineNo">2208</span> for (int i = copy.length - 1; i >= 0; --i) {<a name="line.2208"></a>
+<span class="sourceLineNo">2209</span> if (copy[i] == -1) {// -1 is all 1-bits, which is the unsigned maximum<a name="line.2209"></a>
+<span class="sourceLineNo">2210</span> copy[i] = 0;<a name="line.2210"></a>
+<span class="sourceLineNo">2211</span> } else {<a name="line.2211"></a>
+<span class="sourceLineNo">2212</span> ++copy[i];<a name="line.2212"></a>
+<span class="sourceLineNo">2213</span> return copy;<a name="line.2213"></a>
+<span class="sourceLineNo">2214</span> }<a name="line.2214"></a>
+<span class="sourceLineNo">2215</span> }<a name="line.2215"></a>
+<span class="sourceLineNo">2216</span> // we maxed out the array<a name="line.2216"></a>
+<span class="sourceLineNo">2217</span> byte[] out = new byte[copy.length + 1];<a name="line.2217"></a>
+<span class="sourceLineNo">2218</span> out[0] = 1;<a name="line.2218"></a>
+<span class="sourceLineNo">2219</span> System.arraycopy(copy, 0, out, 1, copy.length);<a name="line.2219"></a>
+<span class="sourceLineNo">2220</span> return out;<a name="line.2220"></a>
+<span class="sourceLineNo">2221</span> }<a name="line.2221"></a>
+<span class="sourceLineNo">2222</span><a name="line.2222"></a>
+<span class="sourceLineNo">2223</span> public static boolean equals(List<byte[]> a, List<byte[]> b) {<a name="line.2223"></a>
+<span class="sourceLineNo">2224</span> if (a == null) {<a name="line.2224"></a>
+<span class="sourceLineNo">2225</span> if (b == null) {<a name="line.2225"></a>
+<span class="sourceLineNo">2226</span> return true;<a name="line.2226"></a>
+<span class="sourceLineNo">2227</span> }<a name="line.2227"></a>
+<span class="sourceLineNo">2228</span> return false;<a name="line.2228"></a>
+<span class="sourceLineNo">2229</span> }<a name="line.2229"></a>
+<span class="sourceLineNo">2230</span> if (b == null) {<a name="line.2230"></a>
+<span class="sourceLineNo">2231</span> return false;<a name="line.2231"></a>
+<span class="sourceLineNo">2232</span> }<a name="line.2232"></a>
+<span class="sourceLineNo">2233</span> if (a.size() != b.size()) {<a name="line.2233"></a>
+<span class="sourceLineNo">2234</span> return false;<a name="line.2234"></a>
+<span class="sourceLineNo">2235</span> }<a name="line.2235"></a>
+<span class="sourceLineNo">2236</span> for (int i = 0; i < a.size(); ++i) {<a name="line.2236"></a>
+<span class="sourceLineNo">2237</span> if (!Bytes.equals(a.get(i), b.get(i))) {<a name="line.2237"></a>
+<span class="sourceLineNo">2238</span> return false;<a name="line.2238"></a>
+<span class="sourceLineNo">2239</span> }<a name="line.2239"></a>
+<span class="sourceLineNo">2240</span> }<a name="line.2240"></a>
+<span class="sourceLineNo">2241</span> return true;<a name="line.2241"></a>
+<span class="sourceLineNo">2242</span> }<a name="line.2242"></a>
+<span class="sourceLineNo">2243</span><a name="line.2243"></a>
+<span class="sourceLineNo">2244</span> public static boolean isSorted(Collection<byte[]> arrays) {<a name="line.2244"></a>
+<span class="sourceLineNo">2245</span> if (!CollectionUtils.isEmpty(arrays)) {<a name="line.2245"></a>
+<span class="sourceLineNo">2246</span> byte[] previous = new byte[0];<a name="line.2246"></a>
+<span class="sourceLineNo">2247</span> for (byte[] array : arrays) {<a name="line.2247"></a>
+<span class="sourceLineNo">2248</span> if (Bytes.compareTo(previous, array) > 0) {<a name="line.2248"></a>
+<span class="sourceLineNo">2249</span> return false;<a name="line.2249"></a>
+<span class="sourceLineNo">2250</span> }<a name="line.2250"></a>
+<span class="sourceLineNo">2251</span> previous = array;<a name="line.2251"></a>
+<span class="sourceLineNo">2252</span> }<a name="line.2252"></a>
+<span class="sourceLineNo">2253</span> }<a name="line.2253"></a>
+<span class="sourceLineNo">2254</span> return true;<a name="line.2254"></a>
+<span class="sourceLineNo">2255</span> }<a name="line.2255"></a>
+<span class="sourceLineNo">2256</span><a name="line.2256"></a>
+<span class="sourceLineNo">2257</span> public static List<byte[]> getUtf8ByteArrays(List<String> strings) {<a name="line.2257"></a>
+<span class="sourceLineNo">2258</span> if (CollectionUtils.isEmpty(strings)) {<a name="line.2258"></a>
+<span class="sourceLineNo">2259</span> return Collections.emptyList();<a name="line.2259"></a>
+<span class="sourceLineNo">2260</span> }<a name="line.2260"></a>
+<span class="sourceLineNo">2261</span> List<byte[]> byteArrays = new ArrayList<>(strings.size());<a name="line.2261"></a>
+<span class="sourceLineNo">2262</span> strings.forEach(s -> byteArrays.add(Bytes.toBytes(s)));<a name="line.2262"></a>
+<span class="sourceLineNo">2263</span> return byteArrays;<a name="line.2263"></a>
+<span class="sourceLineNo">2264</span> }<a name="line.2264"></a>
+<span class="sourceLineNo">2265</span><a name="line.2265"></a>
+<span class="sourceLineNo">2266</span> /**<a name="line.2266"></a>
+<span class="sourceLineNo">2267</span> * Returns the index of the first appearance of the value {@code target} in {@code array}.<a name="line.2267"></a>
+<span class="sourceLineNo">2268</span> * @param array an array of {@code byte} values, possibly empty<a name="line.2268"></a>
+<span class="sourceLineNo">2269</span> * @param target a primitive {@code byte} value<a name="line.2269"></a>
+<span class="sourceLineNo">2270</span> * @return the least index {@code i} for which {@code array[i] == target}, or {@code -1} if no<a name="line.2270"></a>
+<span class="sourceLineNo">2271</span> * such index exists.<a name="line.2271"></a>
+<span class="sourceLineNo">2272</span> */<a name="line.2272"></a>
+<span class="sourceLineNo">2273</span> public static int indexOf(byte[] array, byte target) {<a name="line.2273"></a>
+<span class="sourceLineNo">2274</span> for (int i = 0; i < array.length; i++) {<a name="line.2274"></a>
+<span class="sourceLineNo">2275</span> if (array[i] == target) {<a name="line.2275"></a>
+<span class="sourceLineNo">2276</span> return i;<a name="line.2276"></a>
+<span class="sourceLineNo">2277</span> }<a name="line.2277"></a>
+<span class="sourceLineNo">2278</span> }<a name="line.2278"></a>
+<span class="sourceLineNo">2279</span> return -1;<a name="line.2279"></a>
+<span class="sourceLineNo">2280</span> }<a name="line.2280"></a>
+<span class="sourceLineNo">2281</span><a name="line.2281"></a>
+<span class="sourceLineNo">2282</span> /**<a name="line.2282"></a>
+<span class="sourceLineNo">2283</span> * Returns the start position of the first occurrence of the specified {@code<a name="line.2283"></a>
+<span class="sourceLineNo">2284</span> * target} within {@code array}, or {@code -1} if there is no such occurrence.<a name="line.2284"></a>
+<span class="sourceLineNo">2285</span> * <p><a name="line.2285"></a>
+<span class="sourceLineNo">2286</span> * More formally, returns the lowest index {@code i} such that {@code<a name="line.2286"></a>
+<span class="sourceLineNo">2287</span> * java.util.Arrays.copyOfRange(array, i, i + target.length)} contains exactly the same elements<a name="line.2287"></a>
+<span class="sourceLineNo">2288</span> * as {@code target}.<a name="line.2288"></a>
+<span class="sourceLineNo">2289</span> * @param array the array to search for the sequence {@code target}<a name="line.2289"></a>
+<span class="sourceLineNo">2290</span> * @param target the array to search for as a sub-sequence of {@code array}<a name="line.2290"></a>
+<span class="sourceLineNo">2291</span> */<a name="line.2291"></a>
+<span class="sourceLineNo">2292</span> public static int indexOf(byte[] array, byte[] target) {<a name="line.2292"></a>
+<span class="sourceLineNo">2293</span> checkNotNull(array, "array");<a name="line.2293"></a>
... 154409 lines suppressed ...