This is an automated email from the ASF dual-hosted git repository. dlmarion pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo-access.git
The following commit(s) were added to refs/heads/main by this push: new ed9ff06 Minor changes to source and pom based on review (#36) ed9ff06 is described below commit ed9ff06d5dfc01bb1ef111e731ad8abe7c1addd0 Author: Dave Marion <dlmar...@apache.org> AuthorDate: Wed Jan 31 08:13:20 2024 -0500 Minor changes to source and pom based on review (#36) --- pom.xml | 6 ------ src/main/java/org/apache/accumulo/access/AccessEvaluator.java | 3 +++ src/main/java/org/apache/accumulo/access/AccessEvaluatorImpl.java | 4 ++-- src/main/java/org/apache/accumulo/access/AccessExpression.java | 3 +++ src/main/java/org/apache/accumulo/access/Authorizations.java | 4 ++++ src/main/java/org/apache/accumulo/access/BytesWrapper.java | 8 +++++--- 6 files changed, 17 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index d9aab1d..d455c3e 100644 --- a/pom.xml +++ b/pom.xml @@ -258,18 +258,12 @@ <failOnError>true</failOnError> <includeTests>true</includeTests> <maxRank>20</maxRank> - <jvmArgs>-Dcom.overstock.findbugs.ignore=com.google.common.util.concurrent.RateLimiter,com.google.common.hash.Hasher,com.google.common.hash.HashCode,com.google.common.hash.HashFunction,com.google.common.hash.Hashing,com.google.common.cache.Cache,com.google.common.io.CountingOutputStream,com.google.common.io.ByteStreams,com.google.common.cache.LoadingCache,com.google.common.base.Stopwatch,com.google.common.cache.RemovalNotification,com.google.common.util.concurrent.Uninterruptib [...] <plugins combine.children="append"> <plugin> <groupId>com.h3xstream.findsecbugs</groupId> <artifactId>findsecbugs-plugin</artifactId> <version>1.12.0</version> </plugin> - <plugin> - <groupId>com.overstock.findbugs</groupId> - <artifactId>library-detectors</artifactId> - <version>1.2.0</version> - </plugin> </plugins> </configuration> <executions> diff --git a/src/main/java/org/apache/accumulo/access/AccessEvaluator.java b/src/main/java/org/apache/accumulo/access/AccessEvaluator.java index 14d498b..5b86208 100644 --- a/src/main/java/org/apache/accumulo/access/AccessEvaluator.java +++ b/src/main/java/org/apache/accumulo/access/AccessEvaluator.java @@ -47,6 +47,9 @@ import java.util.List; * </pre> * * <p> + * Instances of this class are thread-safe. + * + * <p> * Note: The underlying implementation uses UTF-8 when converting between bytes and Strings. * * @see <a href="https://github.com/apache/accumulo-access">Accumulo Access Documentation</a> diff --git a/src/main/java/org/apache/accumulo/access/AccessEvaluatorImpl.java b/src/main/java/org/apache/accumulo/access/AccessEvaluatorImpl.java index 0885395..66adb96 100644 --- a/src/main/java/org/apache/accumulo/access/AccessEvaluatorImpl.java +++ b/src/main/java/org/apache/accumulo/access/AccessEvaluatorImpl.java @@ -38,9 +38,9 @@ final class AccessEvaluatorImpl implements AccessEvaluator { private static final byte[] EMPTY = new byte[0]; - private final ThreadLocal<BytesWrapper> lookupWrappers = + private static final ThreadLocal<BytesWrapper> lookupWrappers = ThreadLocal.withInitial(() -> new BytesWrapper(EMPTY)); - private final ThreadLocal<Tokenizer> tokenizers = + private static final ThreadLocal<Tokenizer> tokenizers = ThreadLocal.withInitial(() -> new Tokenizer(EMPTY)); static Collection<List<byte[]>> convert(Collection<Authorizations> authorizationSets) { diff --git a/src/main/java/org/apache/accumulo/access/AccessExpression.java b/src/main/java/org/apache/accumulo/access/AccessExpression.java index f2dd07e..84d8df9 100644 --- a/src/main/java/org/apache/accumulo/access/AccessExpression.java +++ b/src/main/java/org/apache/accumulo/access/AccessExpression.java @@ -69,6 +69,9 @@ package org.apache.accumulo.access; * </pre> * * <p> + * Instances of this class are thread-safe. + * + * <p> * Note: The underlying implementation uses UTF-8 when converting between bytes and Strings. * * @see <a href="https://github.com/apache/accumulo-access">Accumulo Access Documentation</a> diff --git a/src/main/java/org/apache/accumulo/access/Authorizations.java b/src/main/java/org/apache/accumulo/access/Authorizations.java index 8b60cd8..f1b1640 100644 --- a/src/main/java/org/apache/accumulo/access/Authorizations.java +++ b/src/main/java/org/apache/accumulo/access/Authorizations.java @@ -24,6 +24,10 @@ import java.util.Set; /** * An immutable collection of authorization strings. * + * <p> + * Instances of this class are thread-safe. + * + * <p> * Note: The underlying implementation uses UTF-8 when converting between bytes and Strings. * * @since 1.0.0 diff --git a/src/main/java/org/apache/accumulo/access/BytesWrapper.java b/src/main/java/org/apache/accumulo/access/BytesWrapper.java index ebf4396..069a66f 100644 --- a/src/main/java/org/apache/accumulo/access/BytesWrapper.java +++ b/src/main/java/org/apache/accumulo/access/BytesWrapper.java @@ -35,9 +35,7 @@ final class BytesWrapper implements Comparable<BytesWrapper> { * @param data byte data */ public BytesWrapper(byte[] data) { - this.data = data; - this.offset = 0; - this.length = data.length; + set(data, 0, data.length); } /** @@ -115,6 +113,10 @@ final class BytesWrapper implements Comparable<BytesWrapper> { return new String(data, offset, length, UTF_8); } + /* + * Wraps the given byte[] and captures the current offset and length. This method does *not* make + * a copy of the input buffer + */ void set(byte[] data, int offset, int length) { if (offset < 0) { throw new IllegalArgumentException("Offset cannot be negative. length = " + offset);