This is an automated email from the ASF dual-hosted git repository.
ctubbsii pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/main by this push:
new 314eeb750a Update parent POM to 30 and remove contrib dir (#3550)
314eeb750a is described below
commit 314eeb750aa699e7efc6ad7e2467e79a4133e77d
Author: Christopher Tubbs <[email protected]>
AuthorDate: Wed Jun 28 15:21:50 2023 -0400
Update parent POM to 30 and remove contrib dir (#3550)
Remove `contrib/` directory:
* Force use of JDK 17 for building aggregate javadocs for website, to
avoid needing to patch buggy JDK 11 javadocs before publishing
* Relocate contrib/ci scripts to more Maven-like location, src/build/ci
* Remove redundant copy of contrib/accumulo-logo.png; use identical copy
from monitor module for the README.md
* Remove unmaintained contrib/scripts/check-tservers.py (has not
received any substantive updates since initial publication, and does
not work with current versions of Python, and is not documented
(if updated, this can be restored to a blog on the website, or added
elsewhere as a maintenance tool, but there are probably better ways of
checking a cluster's health using non-python command-line utilities)
* Relocate license template and formatter config file to src/build, and
fix license-header.txt references using build-helper's rootlocation
rather than session.executionRootDirectory
Bump ASF parent POM to version 30 and related POM improvements:
* Remove useless comment about `<url>`, regarding plugin not built in
this repo
* Ensure `maven.site.skip` is true, since we don't use that to build our
website, and don't want that plugin running at all, and remove the
outdated and unused src/site/site.xml site descriptor
* Stop overriding plugin versions that are the same as in the parent POM
(or in the case of maven-site-plugin, doesn't matter because we don't
use that plugin)
* Remove extraneous maven-clean-plugin configuration that isn't needed
since those files don't appear in our source tree and are cleaned up
already from the target directory
* Bump minimum Maven version to build, because apilyzer requires 3.6
* Adopt version property naming convention ASF parent POM
Other fixes:
* Bump some build plugins
* Bump errorprone and fix newly detected illogical check if int is
greater than `Integer.MAX_VALUE`
* Bump some dependency versions
---
.github/ISSUE_TEMPLATE/post_vote_checklist.md | 3 +-
.github/workflows/maven-full-its.yaml | 2 +-
.github/workflows/maven.yaml | 6 +-
.github/workflows/scripts.yaml | 12 +-
README.md | 2 +-
contrib/accumulo-logo.png | Bin 11427 -> 0 bytes
contrib/javadoc11.patch | 91 ----------
contrib/scripts/check-tservers.py | 202 ---------------------
core/pom.xml | 2 +-
pom.xml | 175 +++++++-----------
.../accumulo/server/fs/VolumeManagerImpl.java | 17 +-
server/monitor/pom.xml | 2 +-
server/tserver/pom.xml | 2 +-
{contrib => src/build}/ci/find-unapproved-chars.sh | 0
{contrib => src/build}/ci/find-unapproved-junit.sh | 0
{contrib => src/build}/ci/install-shfmt.sh | 0
{contrib => src/build}/ci/install-thrift.sh | 2 +-
{contrib => src/build}/ci/it-matrix.sh | 0
{contrib => src/build}/ci/run-shellcheck.sh | 0
{contrib => src/build}/ci/run-shfmt.sh | 0
{contrib => src/build}/ci/run-thrift.sh | 0
.../build/eclipse-codestyle.xml | 0
{contrib => src/build}/license-header.txt | 0
src/site/site.xml | 44 -----
.../test/functional/MemoryConsumingIterator.java | 9 +-
25 files changed, 97 insertions(+), 474 deletions(-)
diff --git a/.github/ISSUE_TEMPLATE/post_vote_checklist.md
b/.github/ISSUE_TEMPLATE/post_vote_checklist.md
index b1246b6c3c..24c8e9679d 100644
--- a/.github/ISSUE_TEMPLATE/post_vote_checklist.md
+++ b/.github/ISSUE_TEMPLATE/post_vote_checklist.md
@@ -32,8 +32,7 @@ assignees: ''
- [ ] Downloads page
- [ ] If LTM release, update previous LTM release entry on downloads page
and release notes with an EOL date 1 year from the current release date
- [ ] DOAP file
- - [ ] Add manual/examples/javadoc (build javadoc from tag with `mvn clean
package -DskipTests javadoc:aggregate -Paggregate-javadocs`)
- - [ ] If javadoc is built with Java 11, [patch
it](https://github.com/apache/accumulo/blob/main/contrib/javadoc11.patch)
+ - [ ] Add manual/examples/javadoc (build javadoc from tag with `mvn clean
package -DskipTests javadoc:aggregate -Paggregate-javadocs` using at least JDK
17)
- [ ] Jekyll config
- [ ] Grep for, and update any links to previous version to now point to the
new version
- [ ] Update any older release notes front-matter to indicate they are
either `archived: true` or `archived_critical: true`
diff --git a/.github/workflows/maven-full-its.yaml
b/.github/workflows/maven-full-its.yaml
index a70eea19a7..ec97512e20 100644
--- a/.github/workflows/maven-full-its.yaml
+++ b/.github/workflows/maven-full-its.yaml
@@ -80,7 +80,7 @@ jobs:
ref: ${{ github.event.inputs.buildRef }}
- id: set-matrix
name: Create the IT build matrix
- run: contrib/ci/it-matrix.sh ${{ github.event.inputs.numITsPerTask }}
+ run: src/build/ci/it-matrix.sh ${{ github.event.inputs.numITsPerTask }}
# targeted builds that tests groups of ITs
mvn:
needs: creatematrix
diff --git a/.github/workflows/maven.yaml b/.github/workflows/maven.yaml
index 54368e245a..3c56ae9f64 100644
--- a/.github/workflows/maven.yaml
+++ b/.github/workflows/maven.yaml
@@ -54,9 +54,9 @@ jobs:
- name: Show the first log message
run: git log -n1
- name: Check for unapproved characters
- run: contrib/ci/find-unapproved-chars.sh
+ run: src/build/ci/find-unapproved-chars.sh
- name: Check for unapproved JUnit API usage
- run: contrib/ci/find-unapproved-junit.sh
+ run: src/build/ci/find-unapproved-junit.sh
- name: Build with Maven (Fast Build)
timeout-minutes: 20
run: mvn -B -V -e -ntp "-Dstyle.color=always" clean package
dependency:resolve -DskipTests -DskipFormat -DverifyFormat
@@ -70,7 +70,7 @@ jobs:
profile:
- {name: 'unit-tests', javaver: 11, args: 'verify -PskipQA
-DskipTests=false'}
- {name: 'qa-checks', javaver: 11, args: 'verify javadoc:jar
-Psec-bugs -DskipTests -Dspotbugs.timeout=3600000'}
- - {name: 'compat', javaver: 11, args: 'package -DskipTests
-Dhadoop.version=3.0.3 -Dzookeeper.version=3.5.10'}
+ - {name: 'compat', javaver: 11, args: 'package -DskipTests
-Dversion.hadoop=3.0.3 -Dversion.zookeeper=3.5.10'}
- {name: 'errorprone', javaver: 11, args: 'verify
-Perrorprone,skipQA'}
- {name: 'jdk17', javaver: 17, args: 'verify -DskipITs'}
fail-fast: false
diff --git a/.github/workflows/scripts.yaml b/.github/workflows/scripts.yaml
index 2189d9c868..ff2deaf96f 100644
--- a/.github/workflows/scripts.yaml
+++ b/.github/workflows/scripts.yaml
@@ -42,9 +42,9 @@ jobs:
- name: Show the first log message
run: git log -n1
- name: Install shfmt
- run: contrib/ci/install-shfmt.sh
+ run: src/build/ci/install-shfmt.sh
- name: Checking formatting of all scripts
- run: contrib/ci/run-shfmt.sh
+ run: src/build/ci/run-shfmt.sh
shellcheck:
name: ShellCheck
@@ -55,9 +55,9 @@ jobs:
- name: Show the first log message
run: git log -n1
- name: Install shfmt
- run: contrib/ci/install-shfmt.sh
+ run: src/build/ci/install-shfmt.sh
- name: Running shellcheck on all scripts
- run: contrib/ci/run-shellcheck.sh
+ run: src/build/ci/run-shellcheck.sh
thrift:
name: Thrift
@@ -72,6 +72,6 @@ jobs:
- name: Install xmllint
run: sudo apt-get install libxml2-utils
- name: Install thrift
- run: contrib/ci/install-thrift.sh
+ run: src/build/ci/install-thrift.sh
- name: Running thrift to check for changes
- run: contrib/ci/run-thrift.sh
+ run: src/build/ci/run-thrift.sh
diff --git a/README.md b/README.md
index 0de1f9366c..fd30b18977 100644
--- a/README.md
+++ b/README.md
@@ -92,7 +92,7 @@ more details on bouncycastle's cryptography features.
[api]: https://accumulo.apache.org/api
[accumulo]: https://accumulo.apache.org
-[logo]: contrib/accumulo-logo.png
+[logo]:
server/monitor/src/main/resources/org/apache/accumulo/monitor/resources/images/accumulo-logo.png
[quick start]: https://accumulo.apache.org/docs/2.x/getting-started/quickstart
[test]: TESTING.md
[Apache Hadoop]: https://hadoop.apache.org
diff --git a/contrib/accumulo-logo.png b/contrib/accumulo-logo.png
deleted file mode 100644
index 5b0f6b4345..0000000000
Binary files a/contrib/accumulo-logo.png and /dev/null differ
diff --git a/contrib/javadoc11.patch b/contrib/javadoc11.patch
deleted file mode 100644
index 028716b842..0000000000
--- a/contrib/javadoc11.patch
+++ /dev/null
@@ -1,91 +0,0 @@
---- a/target/site/apidocs/script.js
-+++ b/target/site/apidocs/script.js
-@@ -40,41 +40,51 @@ function loadScripts(doc, tag) {
- $.get(pathtoroot + "module-search-index.zip")
- .done(function() {
- JSZipUtils.getBinaryContent(pathtoroot +
"module-search-index.zip", function(e, data) {
-- var zip = new JSZip(data);
-- zip.load(data);
-- moduleSearchIndex =
JSON.parse(zip.file("module-search-index.json").asText());
-+ JSZip.loadAsync(data).then(function(zip){
-+
zip.file("module-search-index.json").async("text").then(function(content){
-+ moduleSearchIndex = JSON.parse(content);
-+ });
-+ });
- });
- });
- $.get(pathtoroot + "package-search-index.zip")
- .done(function() {
- JSZipUtils.getBinaryContent(pathtoroot +
"package-search-index.zip", function(e, data) {
-- var zip = new JSZip(data);
-- zip.load(data);
-- packageSearchIndex =
JSON.parse(zip.file("package-search-index.json").asText());
-+ JSZip.loadAsync(data).then(function(zip){
-+
zip.file("package-search-index.json").async("text").then(function(content){
-+ packageSearchIndex = JSON.parse(content);
-+ });
-+ });
- });
- });
- $.get(pathtoroot + "type-search-index.zip")
- .done(function() {
- JSZipUtils.getBinaryContent(pathtoroot +
"type-search-index.zip", function(e, data) {
-- var zip = new JSZip(data);
-- zip.load(data);
-- typeSearchIndex =
JSON.parse(zip.file("type-search-index.json").asText());
-+ JSZip.loadAsync(data).then(function(zip){
-+
zip.file("type-search-index.json").async("text").then(function(content){
-+ typeSearchIndex = JSON.parse(content);
-+ });
-+ });
- });
- });
- $.get(pathtoroot + "member-search-index.zip")
- .done(function() {
- JSZipUtils.getBinaryContent(pathtoroot +
"member-search-index.zip", function(e, data) {
-- var zip = new JSZip(data);
-- zip.load(data);
-- memberSearchIndex =
JSON.parse(zip.file("member-search-index.json").asText());
-+ JSZip.loadAsync(data).then(function(zip){
-+
zip.file("member-search-index.json").async("text").then(function(content){
-+ memberSearchIndex = JSON.parse(content);
-+ });
-+ });
- });
- });
- $.get(pathtoroot + "tag-search-index.zip")
- .done(function() {
- JSZipUtils.getBinaryContent(pathtoroot +
"tag-search-index.zip", function(e, data) {
-- var zip = new JSZip(data);
-- zip.load(data);
-- tagSearchIndex =
JSON.parse(zip.file("tag-search-index.json").asText());
-+ JSZip.loadAsync(data).then(function(zip){
-+
zip.file("tag-search-index.json").async("text").then(function(content){
-+ tagSearchIndex = JSON.parse(content);
-+ });
-+ });
- });
- });
- if (!moduleSearchIndex) {
---- a/target/site/apidocs/search.js
-+++ b/target/site/apidocs/search.js
-@@ -50,7 +50,7 @@ function getURLPrefix(ui) {
- return ui.item.m + slash;
- } else if ((ui.item.category === catTypes && ui.item.p) ||
ui.item.category === catMembers) {
- $.each(packageSearchIndex, function(index, item) {
-- if (ui.item.p == item.l) {
-+ if (item.m && ui.item.p == item.l) {
- urlPrefix = item.m + slash;
- }
- });
---- a/target/site/apidocs/stylesheet.css
-+++ b/target/site/apidocs/stylesheet.css
-@@ -2,8 +2,6 @@
- * Javadoc style sheet
- */
-
--@import url('resources/fonts/dejavu.css');
--
- /*
- * Styles for individual HTML elements.
- *
diff --git a/contrib/scripts/check-tservers.py
b/contrib/scripts/check-tservers.py
deleted file mode 100755
index be1b9f650c..0000000000
--- a/contrib/scripts/check-tservers.py
+++ /dev/null
@@ -1,202 +0,0 @@
-#! /usr/bin/env python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-# This script will check the configuration and uniformity of all the nodes in
a cluster.
-# Checks
-# each node is reachable via ssh
-# login identity is the same
-# the physical memory is the same
-# the mounts are the same on each machine
-# a set of writable locations (typically different disks) are in fact
writable
-#
-# In order to check for writable partitions, you must configure the WRITABLE
variable below.
-#
-
-import subprocess
-import time
-import select
-import os
-import sys
-import fcntl
-import signal
-if not sys.platform.startswith('linux'):
- sys.stderr.write('This script only works on linux, sorry.\n')
- sys.exit(1)
-
-TIMEOUT = 5
-WRITABLE = []
-#WRITABLE = ['/srv/hdfs1', '/srv/hdfs2', '/srv/hdfs3']
-
-def ssh(tserver, *args):
- 'execute a command on a remote tserver and return the Popen handle'
- handle = subprocess.Popen( ('ssh', '-o', 'StrictHostKeyChecking=no', '-q',
'-A', '-n', tserver) + args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- handle.tserver = tserver
- handle.finished = False
- handle.out = ''
- return handle
-
-def wait(handles, seconds):
- 'wait for lots of handles simultaneously, and kill anything that doesn\'t
return in seconds time\n'
- 'Note that stdout will be stored on the handle as the "out" field and
"finished" will be set to True'
- handles = handles[:]
- stop = time.time() + seconds
- for h in handles:
- fcntl.fcntl(h.stdout, fcntl.F_SETFL, os.O_NONBLOCK)
- while handles and time.time() < stop:
- wait = min(0, stop - time.time())
- handleMap = dict( [(h.stdout, h) for h in handles] )
- rd, wr, err = select.select(handleMap.keys(), [], [], wait)
- for r in rd:
- handle = handleMap[r]
- while 1:
- more = handle.stdout.read(1024)
- if more == '':
- handles.remove(handle)
- handle.poll()
- handle.wait()
- handle.finished = True
- handle.out += more
- if len(more) < 1024:
- break
- for handle in handles:
- os.kill(handle.pid, signal.SIGKILL)
- handle.poll()
-
-def runAll(tservers, *cmd):
- 'Run the given command on all the tservers, returns Popen handles'
- handles = []
- for tserver in tservers:
- handles.append(ssh(tserver, *cmd))
- wait(handles, TIMEOUT)
- return handles
-
-def checkIdentity(tservers):
- 'Ensure the login identity is consistent across the tservers'
- handles = runAll(tservers, 'id', '-u', '-n')
- bad = set()
- myIdentity = os.popen('id -u -n').read().strip()
- for h in handles:
- if not h.finished or h.returncode != 0:
- print '#', 'cannot look at identity on', h.tserver
- bad.add(h.tserver)
- else:
- identity = h.out.strip()
- if identity != myIdentity:
- print '#', h.tserver, 'inconsistent identity', identity
- bad.add(h.tserver)
- return bad
-
-def checkMemory(tservers):
- 'Run free on all tservers and look for weird results'
- handles = runAll(tservers, 'free')
- bad = set()
- mem = {}
- swap = {}
- for h in handles:
- if not h.finished or h.returncode != 0:
- print '#', 'cannot look at memory on', h.tserver
- bad.add(h.tserver)
- else:
- if h.out.find('Swap:') < 0:
- print '#',h.tserver,'has no swap'
- bad.add(h.tserver)
- continue
- lines = h.out.split('\n')
- for line in lines:
- if line.startswith('Mem:'):
- mem.setdefault(line.split()[1],set()).add(h.tserver)
- if line.startswith('Swap:'):
- swap.setdefault(line.split()[1],set()).add(h.tserver)
- # order memory sizes by most common
- mems = sorted([(len(v), k, v) for k, v in mem.items()], reverse=True)
- mostCommon = float(mems[0][1])
- for _, size, tservers in mems[1:]:
- fract = abs(mostCommon - float(size)) / mostCommon
- if fract > 0.05:
- print '#',', '.join(tservers), ': unusual memory size', size
- bad.update(tservers)
- swaps = sorted([(len(v), k, v) for k, v in swap.items()], reverse=True)
- mostCommon = float(mems[0][1])
- for _, size, tservers in swaps[1:]:
- fract = abs(mostCommon - float(size) / mostCommon)
- if fract > 0.05:
- print '#',', '.join(tservers), ': unusual swap size', size
- bad.update(tservers)
- return bad
-
-def checkWritable(tservers):
- 'Touch all the directories that should be writable by this user return any
nodes that fail'
- if not WRITABLE:
- print '# WRITABLE value not configured, not checking partitions'
- return []
- handles = runAll(tservers, 'touch', *WRITABLE)
- bad = set()
- for h in handles:
- if not h.finished or h.returncode != 0:
- bad.add(h.tserver)
- print '#', h.tserver, 'some drives are not writable'
- return bad
-
-def checkMounts(tservers):
- 'Check the file systems that are mounted and report any that are unusual'
- handles = runAll(tservers, 'mount')
- mounts = {}
- finished = set()
- bad = set()
- for handle in handles:
- if handle.finished and handle.returncode == 0:
- for line in handle.out.split('\n'):
- words = line.split()
- if len(words) < 5: continue
- if words[4] == 'nfs': continue
- if words[0].find(':/') >= 0: continue
- mount = words[2]
- mounts.setdefault(mount, set()).add(handle.tserver)
- finished.add(handle.tserver)
- else:
- bad.add(handle.tserver)
- print '#', handle.tserver, 'did not finish'
- for m in sorted(mounts.keys()):
- diff = finished - mounts[m]
- if diff:
- bad.update(diff)
- print '#', m, 'not mounted on', ', '.join(diff)
- return bad
-
-def main(argv):
- if len(argv) < 1:
- sys.stderr.write('Usage: check_tservers tservers\n')
- sys.exit(1)
- sys.stdin.close()
- tservers = set()
- for tserver in open(argv[0]):
- hashPos = tserver.find('#')
- if hashPos >= 0:
- tserver = tserver[:hashPos]
- tserver = tserver.strip()
- if not tserver: continue
- tservers.add(tserver)
- bad = set()
- for test in checkIdentity, checkMemory, checkMounts, checkWritable:
- bad.update(test(tservers - bad))
- for tserver in sorted(tservers - bad):
- print tserver
-
-main(sys.argv[1:])
diff --git a/core/pom.xml b/core/pom.xml
index e31e21d553..d8802e3eb4 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -188,7 +188,7 @@
<configuration>
<licenseSets>
<licenseSet>
-
<header>${session.executionRootDirectory}/contrib/license-header.txt</header>
+ <header>${rootlocation}/src/build/license-header.txt</header>
<excludes>
<exclude>src/main/java/org/apache/accumulo/core/bloomfilter/*.java</exclude>
<exclude>src/main/java/org/apache/accumulo/core/util/HostAndPort.java</exclude>
diff --git a/pom.xml b/pom.xml
index 6d2275bef7..91f9fbf8e6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
- <version>29</version>
+ <version>30</version>
</parent>
<groupId>org.apache.accumulo</groupId>
<artifactId>accumulo-project</artifactId>
@@ -37,8 +37,6 @@
design in the form of cell-level access labels and a server-side
programming mechanism that can modify key/value pairs at various points in
the data management process.</description>
- <!-- this URL is where the site derived via the maven-site-plugin ends up,
- not the generic site; currently not used -->
<url>https://accumulo.apache.org</url>
<!-- this is the year of inception at ASF -->
<inceptionYear>2011</inceptionYear>
@@ -115,12 +113,6 @@
<properties>
<!-- used for filtering the java source with the current version -->
<accumulo.release.version>${project.version}</accumulo.release.version>
- <auto-service.version>1.0.1</auto-service.version>
- <!-- bouncycastle version for test dependencies -->
- <bouncycastle.version>1.70</bouncycastle.version>
- <!-- Curator version -->
- <curator.version>5.5.0</curator.version>
- <errorprone.version>2.18.0</errorprone.version>
<!-- avoid error shutting down built-in ForkJoinPool.commonPool() during
exec:java tasks -->
<exec.cleanupDaemonThreads>false</exec.cleanupDaemonThreads>
<extraTestArgs />
@@ -129,7 +121,6 @@
<failsafe.forkCount>1</failsafe.forkCount>
<failsafe.groups />
<failsafe.reuseForks>false</failsafe.reuseForks>
- <hadoop.version>3.3.5</hadoop.version>
<!-- prevent introduction of new compiler warnings -->
<maven.compiler.failOnWarning>true</maven.compiler.failOnWarning>
<maven.compiler.release>11</maven.compiler.release>
@@ -137,41 +128,48 @@
<maven.compiler.target>11</maven.compiler.target>
<maven.javadoc.failOnWarnings>true</maven.javadoc.failOnWarnings>
<maven.site.deploy.skip>true</maven.site.deploy.skip>
+ <maven.site.skip>true</maven.site.skip>
<!-- surefire/failsafe plugin option -->
<maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile>
+ <!-- versions-maven-plugin ignore patterns for snapshots, alpha, beta,
milestones, and release candidates -->
+
<maven.version.ignore>.+-SNAPSHOT,(?i).*(alpha|beta)[0-9]*,(?i).*[.-](m|rc)[0-9]+</maven.version.ignore>
<minimalJavaBuildVersion>11</minimalJavaBuildVersion>
- <minimalMavenBuildVersion>3.5.0</minimalMavenBuildVersion>
- <powermock.version>2.0.9</powermock.version>
+ <minimalMavenBuildVersion>3.6.0</minimalMavenBuildVersion>
<!-- timestamp for reproducible outputs, updated on release by the release
plugin -->
<project.build.outputTimestamp>2023-06-14T05:41:08Z</project.build.outputTimestamp>
<rat.consoleOutput>true</rat.consoleOutput>
- <slf4j.version>2.0.7</slf4j.version>
<sourceReleaseAssemblyDescriptor>source-release-tar</sourceReleaseAssemblyDescriptor>
<surefire.excludedGroups />
<surefire.failIfNoSpecifiedTests>false</surefire.failIfNoSpecifiedTests>
<surefire.forkCount>1C</surefire.forkCount>
<surefire.groups />
<surefire.reuseForks>true</surefire.reuseForks>
- <surefire.version>3.1.0</surefire.version>
- <!-- Thrift version -->
- <thrift.version>0.17.0</thrift.version>
<unitTestMemSize>-Xmx1G</unitTestMemSize>
- <!-- ZooKeeper version -->
- <zookeeper.version>3.8.1</zookeeper.version>
+ <!-- dependency and plugin versions managed with properties -->
+ <version.auto-service>1.1.1</version.auto-service>
+ <version.bouncycastle>1.70</version.bouncycastle>
+ <version.curator>5.5.0</version.curator>
+ <version.errorprone>2.20.0</version.errorprone>
+ <version.hadoop>3.3.6</version.hadoop>
+ <version.opentelemetry>1.27.0</version.opentelemetry>
+ <version.powermock>2.0.9</version.powermock>
+ <version.slf4j>2.0.7</version.slf4j>
+ <version.thrift>0.17.0</version.thrift>
+ <version.zookeeper>3.8.1</version.zookeeper>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-bom</artifactId>
- <version>2.15.1</version>
+ <version>2.15.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-bom</artifactId>
- <version>1.11.0</version>
+ <version>1.11.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@@ -179,21 +177,21 @@
<!-- for dependency convergence between Micrometer and ZooKeeper -->
<groupId>io.netty</groupId>
<artifactId>netty-bom</artifactId>
- <version>4.1.92.Final</version>
+ <version>4.1.94.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-bom</artifactId>
- <version>1.26.0</version>
+ <version>${version.opentelemetry}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-bom-alpha</artifactId>
- <version>1.26.0-alpha</version>
+ <version>${version.opentelemetry}-alpha</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@@ -228,7 +226,7 @@
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-bom</artifactId>
- <version>4.0.2</version>
+ <version>4.0.3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@@ -243,7 +241,7 @@
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
- <version>5.10.0-M1</version>
+ <version>5.9.3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@@ -270,7 +268,7 @@
<dependency>
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service</artifactId>
- <version>${auto-service.version}</version>
+ <version>${version.auto-service}</version>
</dependency>
<dependency>
<groupId>com.google.code.findbugs</groupId>
@@ -286,7 +284,7 @@
<!-- converge transitive dependency version between guava and caffeine
-->
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_annotations</artifactId>
- <version>${errorprone.version}</version>
+ <version>${version.errorprone}</version>
</dependency>
<dependency>
<!-- this is a runtime dependency of guava, no longer included with
guava as of 27.1 -->
@@ -297,7 +295,7 @@
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
- <version>32.0.0-jre</version>
+ <version>32.0.1-jre</version>
</dependency>
<dependency>
<groupId>com.lmax</groupId>
@@ -312,12 +310,12 @@
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
- <version>1.15</version>
+ <version>1.16.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
- <version>2.12.0</version>
+ <version>2.13.0</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
@@ -449,22 +447,22 @@
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
- <version>${curator.version}</version>
+ <version>${version.curator}</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-test</artifactId>
- <version>${curator.version}</version>
+ <version>${version.curator}</version>
</dependency>
<dependency>
<groupId>org.apache.datasketches</groupId>
<artifactId>datasketches-java</artifactId>
- <version>4.0.0</version>
+ <version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
- <version>${hadoop.version}</version>
+ <version>${version.hadoop}</version>
<exclusions>
<exclusion>
<groupId>xerces</groupId>
@@ -475,27 +473,27 @@
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client-api</artifactId>
- <version>${hadoop.version}</version>
+ <version>${version.hadoop}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client-minicluster</artifactId>
- <version>${hadoop.version}</version>
+ <version>${version.hadoop}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client-runtime</artifactId>
- <version>${hadoop.version}</version>
+ <version>${version.hadoop}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-distcp</artifactId>
- <version>${hadoop.version}</version>
+ <version>${version.hadoop}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-minicluster</artifactId>
- <version>${hadoop.version}</version>
+ <version>${version.hadoop}</version>
<exclusions>
<exclusion>
<groupId>xerces</groupId>
@@ -506,7 +504,7 @@
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-minikdc</artifactId>
- <version>${hadoop.version}</version>
+ <version>${version.hadoop}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
@@ -517,12 +515,12 @@
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-tools</artifactId>
- <version>${hadoop.version}</version>
+ <version>${version.hadoop}</version>
</dependency>
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
- <version>${thrift.version}</version>
+ <version>${version.thrift}</version>
<!-- exclude vulnerable lib see
https://issues.apache.org/jira/browse/HTTPCLIENT-1803 -->
<exclusions>
<exclusion>
@@ -534,7 +532,7 @@
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
- <version>${zookeeper.version}</version>
+ <version>${version.zookeeper}</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
@@ -549,22 +547,22 @@
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper-jute</artifactId>
- <version>${zookeeper.version}</version>
+ <version>${version.zookeeper}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
- <version>${bouncycastle.version}</version>
+ <version>${version.bouncycastle}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
- <version>${bouncycastle.version}</version>
+ <version>${version.bouncycastle}</version>
</dependency>
<dependency>
<groupId>org.checkerframework</groupId>
<artifactId>checker-qual</artifactId>
- <version>3.34.0</version>
+ <version>3.35.0</version>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
@@ -589,7 +587,7 @@
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
- <version>8.0.0.Final</version>
+ <version>8.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
@@ -599,7 +597,7 @@
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
- <version>3.5.0.Final</version>
+ <version>3.5.1.Final</version>
</dependency>
<dependency>
<!-- force convergence of transitive dependency of hibernate-validator
-->
@@ -639,27 +637,27 @@
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-easymock</artifactId>
- <version>${powermock.version}</version>
+ <version>${version.powermock}</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-core</artifactId>
- <version>${powermock.version}</version>
+ <version>${version.powermock}</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
- <version>${powermock.version}</version>
+ <version>${version.powermock}</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-reflect</artifactId>
- <version>${powermock.version}</version>
+ <version>${version.powermock}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
- <version>${slf4j.version}</version>
+ <version>${version.slf4j}</version>
</dependency>
<dependency>
<!-- version specified to converge transitive dependency of hadoop and
curator -->
@@ -688,7 +686,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
- <version>2.15.0</version>
+ <version>2.16.0</version>
</plugin>
<plugin>
<groupId>com.mycila</groupId>
@@ -697,13 +695,12 @@
<configuration>
<licenseSets>
<licenseSet>
- <header>${rootlocation}/contrib/license-header.txt</header>
+ <header>${rootlocation}/src/build/license-header.txt</header>
<excludes combine.children="append">
<exclude>**/DEPENDENCIES</exclude>
<exclude>**/LICENSE</exclude>
<exclude>**/NOTICE</exclude>
<exclude>**/target/**</exclude>
- <exclude>contrib/javadoc11.patch</exclude>
</excludes>
</licenseSet>
</licenseSets>
@@ -730,7 +727,7 @@
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
- <version>4.7.3.4</version>
+ <version>4.7.3.5</version>
<configuration>
<xmlOutput>true</xmlOutput>
<effort>Max</effort>
@@ -747,30 +744,10 @@
</plugins>
</configuration>
</plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <version>3.3.1</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-remote-resources-plugin</artifactId>
- <version>3.1.0</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-site-plugin</artifactId>
- <version>4.0.0-M8</version>
- </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
- <version>3.2.2</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>3.6.0</version>
+ <version>3.3.0</version>
</plugin>
<plugin>
<groupId>com.github.ekryd.sortpom</groupId>
@@ -797,25 +774,9 @@
<skipNoGit>true</skipNoGit>
</configuration>
</plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-clean-plugin</artifactId>
- <configuration>
- <filesets>
- <fileset>
- <directory>./</directory>
- <includes>
- <include>**/*.pyc</include>
- <include>**/*.so</include>
- </includes>
- </fileset>
- </filesets>
- </configuration>
- </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <version>3.11.0</version>
<configuration>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
@@ -831,7 +792,7 @@
<path>
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service</artifactId>
- <version>${auto-service.version}</version>
+ <version>${version.auto-service}</version>
</path>
</annotationProcessorPaths>
</configuration>
@@ -924,9 +885,9 @@
<plugin>
<groupId>net.revelc.code.formatter</groupId>
<artifactId>formatter-maven-plugin</artifactId>
- <version>2.22.0</version>
+ <version>2.23.0</version>
<configuration>
-
<configFile>${rootlocation}/contrib/Eclipse-Accumulo-Codestyle.xml</configFile>
+
<configFile>${rootlocation}/src/build/eclipse-codestyle.xml</configFile>
<excludes>
<exclude>**/thrift/*.java</exclude>
</excludes>
@@ -970,16 +931,6 @@
</excludes>
</configuration>
</plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <version>3.6.0</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-enforcer-plugin</artifactId>
- <version>3.3.0</version>
- </plugin>
</plugins>
</pluginManagement>
<plugins>
@@ -1218,7 +1169,7 @@
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
- <version>10.11.0</version>
+ <version>10.12.1</version>
</dependency>
</dependencies>
<executions>
@@ -1588,6 +1539,10 @@
<profile>
<!-- mvn clean package javadoc:aggregate -DskipTests
-Paggregate-javadocs -->
<id>aggregate-javadocs</id>
+ <properties>
+ <!-- use at least 17 to avoid patching for JDK-8227487 JDK-8214856 and
JDK-8215291 -->
+ <minimalJavaBuildVersion>17</minimalJavaBuildVersion>
+ </properties>
<build>
<pluginManagement>
<plugins>
@@ -1742,7 +1697,7 @@
<path>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_core</artifactId>
- <version>${errorprone.version}</version>
+ <version>${version.errorprone}</version>
</path>
</annotationProcessorPaths>
</configuration>
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java
b/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java
index 7fffbc58de..32ce3d8a07 100644
---
a/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java
+++
b/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java
@@ -441,16 +441,21 @@ public class VolumeManagerImpl implements VolumeManager {
return new VolumeManagerImpl(volumes, conf, hadoopConf);
}
+ @SuppressWarnings("deprecation")
+ private static boolean inSafeMode(DistributedFileSystem dfs) throws
IOException {
+ // Returns true when safemode is on; this version of setSafeMode was
deprecated in Hadoop 3.3.6,
+ // because SafeModeAction enum was moved to a new package, and this
deprecated method was
+ // overloaded with a version of the method that accepts the new enum.
However, we can't use that
+ // replacement method if we want to continue working with versions less
than 3.3.6, so we just
+ // suppress the deprecation warning.
+ return dfs.setSafeMode(SafeModeAction.SAFEMODE_GET);
+ }
+
@Override
public boolean isReady() throws IOException {
for (Volume volume : volumesByName.values()) {
final FileSystem fs = volume.getFileSystem();
- if (!(fs instanceof DistributedFileSystem)) {
- continue;
- }
- final DistributedFileSystem dfs = (DistributedFileSystem) fs;
- // Returns true when safemode is on
- if (dfs.setSafeMode(SafeModeAction.SAFEMODE_GET)) {
+ if (fs instanceof DistributedFileSystem &&
inSafeMode((DistributedFileSystem) fs)) {
return false;
}
}
diff --git a/server/monitor/pom.xml b/server/monitor/pom.xml
index d9da97a837..e83ed39e6c 100644
--- a/server/monitor/pom.xml
+++ b/server/monitor/pom.xml
@@ -208,7 +208,7 @@
<configuration>
<licenseSets>
<licenseSet>
-
<header>${session.executionRootDirectory}/contrib/license-header.txt</header>
+ <header>${rootlocation}/src/build/license-header.txt</header>
<excludes>
<exclude>src/main/resources/org/apache/accumulo/monitor/resources/external/**/*</exclude>
</excludes>
diff --git a/server/tserver/pom.xml b/server/tserver/pom.xml
index 92c71db9f7..0d5a80c5b3 100644
--- a/server/tserver/pom.xml
+++ b/server/tserver/pom.xml
@@ -150,7 +150,7 @@
<configuration>
<licenseSets>
<licenseSet>
-
<header>${session.executionRootDirectory}/contrib/license-header.txt</header>
+ <header>${rootlocation}/src/build/license-header.txt</header>
<excludes>
<exclude>src/test/resources/*.walog</exclude>
<exclude>src/test/resources/walog-from-14/*</exclude>
diff --git a/contrib/ci/find-unapproved-chars.sh
b/src/build/ci/find-unapproved-chars.sh
similarity index 100%
rename from contrib/ci/find-unapproved-chars.sh
rename to src/build/ci/find-unapproved-chars.sh
diff --git a/contrib/ci/find-unapproved-junit.sh
b/src/build/ci/find-unapproved-junit.sh
similarity index 100%
rename from contrib/ci/find-unapproved-junit.sh
rename to src/build/ci/find-unapproved-junit.sh
diff --git a/contrib/ci/install-shfmt.sh b/src/build/ci/install-shfmt.sh
similarity index 100%
rename from contrib/ci/install-shfmt.sh
rename to src/build/ci/install-shfmt.sh
diff --git a/contrib/ci/install-thrift.sh b/src/build/ci/install-thrift.sh
similarity index 90%
rename from contrib/ci/install-thrift.sh
rename to src/build/ci/install-thrift.sh
index a46e7c694f..e861798408 100755
--- a/contrib/ci/install-thrift.sh
+++ b/src/build/ci/install-thrift.sh
@@ -24,7 +24,7 @@ set -e
thriftdefault="0.16.0"
rootDir=$(git rev-parse --show-toplevel 2>/dev/null) || ver=$thriftdefault
-ver=$({ xmllint --shell "$rootDir/pom.xml" <<<'xpath
/*[local-name()="project"]/*[local-name()="properties"]/*[local-name()="thrift.version"]/text()'
| grep content= | cut -f2 -d=; } 2>/dev/null || echo "$thriftdefault")
+ver=$({ xmllint --shell "$rootDir/pom.xml" <<<'xpath
/*[local-name()="project"]/*[local-name()="properties"]/*[local-name()="version.thrift"]/text()'
| grep content= | cut -f2 -d=; } 2>/dev/null || echo "$thriftdefault")
ver=${ver%%-*}
sudo wget
"https://dist.apache.org/repos/dist/dev/accumulo/devtools/thrift-$ver/thrift"
-O /usr/local/bin/thrift &&
diff --git a/contrib/ci/it-matrix.sh b/src/build/ci/it-matrix.sh
similarity index 100%
rename from contrib/ci/it-matrix.sh
rename to src/build/ci/it-matrix.sh
diff --git a/contrib/ci/run-shellcheck.sh b/src/build/ci/run-shellcheck.sh
similarity index 100%
rename from contrib/ci/run-shellcheck.sh
rename to src/build/ci/run-shellcheck.sh
diff --git a/contrib/ci/run-shfmt.sh b/src/build/ci/run-shfmt.sh
similarity index 100%
rename from contrib/ci/run-shfmt.sh
rename to src/build/ci/run-shfmt.sh
diff --git a/contrib/ci/run-thrift.sh b/src/build/ci/run-thrift.sh
similarity index 100%
rename from contrib/ci/run-thrift.sh
rename to src/build/ci/run-thrift.sh
diff --git a/contrib/Eclipse-Accumulo-Codestyle.xml
b/src/build/eclipse-codestyle.xml
similarity index 100%
rename from contrib/Eclipse-Accumulo-Codestyle.xml
rename to src/build/eclipse-codestyle.xml
diff --git a/contrib/license-header.txt b/src/build/license-header.txt
similarity index 100%
rename from contrib/license-header.txt
rename to src/build/license-header.txt
diff --git a/src/site/site.xml b/src/site/site.xml
deleted file mode 100644
index 9bcd2fdfd5..0000000000
--- a/src/site/site.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<project xmlns="http://maven.apache.org/DECORATION/1.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0
https://maven.apache.org/xsd/decoration-1.0.0.xsd"
- name="Maven">
- <bannerLeft>
- <name>Apache Accumulo</name>
- <src>https://www.apache.org/images/asf-logo.gif</src>
- <href>https://accumulo.apache.org/</href>
- </bannerLeft>
- <version position="right" />
- <skin>
- <groupId>org.apache.maven.skins</groupId>
- <artifactId>maven-fluido-skin</artifactId>
- <version>1.1</version>
- </skin>
- <body>
- <breadcrumbs>
- <item name="Accumulo" href="https://accumulo.apache.org/" />
- </breadcrumbs>
- <menu ref="reports" inherit="top" />
- <menu ref="modules" inherit="top" />
- </body>
-</project>
diff --git
a/test/src/main/java/org/apache/accumulo/test/functional/MemoryConsumingIterator.java
b/test/src/main/java/org/apache/accumulo/test/functional/MemoryConsumingIterator.java
index a5edd824cb..3b98f1c801 100644
---
a/test/src/main/java/org/apache/accumulo/test/functional/MemoryConsumingIterator.java
+++
b/test/src/main/java/org/apache/accumulo/test/functional/MemoryConsumingIterator.java
@@ -39,6 +39,8 @@ public class MemoryConsumingIterator extends WrappingIterator
{
private static final List<byte[]> BUFFERS = new ArrayList<>();
+ private static final int TEN_MiB = 10 * 1024 * 1024;
+
public static void freeBuffers() {
BUFFERS.clear();
}
@@ -56,13 +58,12 @@ public class MemoryConsumingIterator extends
WrappingIterator {
int amountToConsume = 0;
if (freeMemory > minimumFreeMemoryThreshold) {
- amountToConsume = (int) (freeMemory - (minimumFreeMemoryThreshold -
10485760));
+ amountToConsume = (int) (freeMemory - (minimumFreeMemoryThreshold -
TEN_MiB));
}
- if (amountToConsume > Integer.MAX_VALUE) {
+ if (amountToConsume < 0) {
throw new IllegalStateException(
- "Unsupported memory size for tablet server when using this
iterator");
+ "Overflow. Unsupported memory size for tablet server when using this
iterator");
}
- amountToConsume = Math.max(0, amountToConsume);
LOG.info("max: {}, free: {}, minFree: {}, amountToConsume: {}",
maxConfiguredMemory, freeMemory,
minimumFreeMemoryThreshold, amountToConsume);
return amountToConsume;