diff --git a/clients/src/main/java/org/apache/kafka/clients/admin/ScramMechanism.java b/clients/src/main/java/org/apache/kafka/clients/admin/ScramMechanism.java index 87e19b67b6712..9869bc7c06cbb 100644 --- a/clients/src/main/java/org/apache/kafka/clients/admin/ScramMechanism.java +++ b/clients/src/main/java/org/apache/kafka/clients/admin/ScramMechanism.java @@ -17,6 +17,8 @@ package org.apache.kafka.clients.admin; +import java.util.Arrays; + /** * Representation of a SASL/SCRAM Mechanism. * @@ -27,13 +29,15 @@ public enum ScramMechanism { SCRAM_SHA_256((byte) 1), SCRAM_SHA_512((byte) 2); + private static final ScramMechanism[] VALUES = values(); + /** * * @param type the type indicator * @return the instance corresponding to the given type indicator, otherwise {@link #UNKNOWN} */ public static ScramMechanism fromType(byte type) { - for (ScramMechanism scramMechanism : ScramMechanism.values()) { + for (ScramMechanism scramMechanism : VALUES) { if (scramMechanism.type == type) { return scramMechanism; } @@ -49,8 +53,10 @@ public static ScramMechanism fromType(byte type) { * Salted Challenge Response Authentication Mechanism (SCRAM) SASL and GSS-API Mechanisms, Section 4 */ public static ScramMechanism fromMechanismName(String mechanismName) { - ScramMechanism retvalFoundMechanism = ScramMechanism.valueOf(mechanismName.replace('-', '_')); - return retvalFoundMechanism != null ? retvalFoundMechanism : UNKNOWN; + return Arrays.stream(VALUES) + .filter(mechanism -> mechanism.mechanismName.equals(mechanismName)) + .findFirst() + .orElse(UNKNOWN); } /** diff --git a/clients/src/main/java/org/apache/kafka/common/header/internals/RecordHeader.java b/clients/src/main/java/org/apache/kafka/common/header/internals/RecordHeader.java index d042494378ee7..2a29d9da28ece 100644 --- a/clients/src/main/java/org/apache/kafka/common/header/internals/RecordHeader.java +++ b/clients/src/main/java/org/apache/kafka/common/header/internals/RecordHeader.java @@ -70,7 +70,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - int result = key() != null ? key().hashCode() : 0; + int result = key().hashCode(); result = 31 * result + Arrays.hashCode(value()); return result; } diff --git a/clients/src/test/java/org/apache/kafka/clients/admin/ScramMechanismTest.java b/clients/src/test/java/org/apache/kafka/clients/admin/ScramMechanismTest.java new file mode 100644 index 0000000000000..03ee0516b6521 --- /dev/null +++ b/clients/src/test/java/org/apache/kafka/clients/admin/ScramMechanismTest.java @@ -0,0 +1,35 @@ +/* + * 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 + * + * http://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. + */ + +package org.apache.kafka.clients.admin; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class ScramMechanismTest { + + @Test + public void testFromMechanismName() { + assertEquals(ScramMechanism.UNKNOWN, ScramMechanism.fromMechanismName("UNKNOWN")); + assertEquals(ScramMechanism.SCRAM_SHA_256, ScramMechanism.fromMechanismName("SCRAM-SHA-256")); + assertEquals(ScramMechanism.SCRAM_SHA_512, ScramMechanism.fromMechanismName("SCRAM-SHA-512")); + assertEquals(ScramMechanism.UNKNOWN, ScramMechanism.fromMechanismName("some string")); + assertEquals(ScramMechanism.UNKNOWN, ScramMechanism.fromMechanismName("scram-sha-256")); + } + +} diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index 671bb110175d6..b96c25c224b72 100644 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -61,9 +61,9 @@ versions += [ bcpkix: "1.66", checkstyle: "8.20", commonsCli: "1.4", - gradle: "6.7", - gradleVersionsPlugin: "0.29.0", - grgit: "4.0.2", + gradle: "6.7.1", + gradleVersionsPlugin: "0.36.0", + grgit: "4.1.0", httpclient: "4.5.12", easymock: "4.2", jackson: "2.10.5", @@ -95,10 +95,10 @@ versions += [ lz4: "1.7.1", mavenArtifact: "3.6.3", metrics: "2.2.0", - mockito: "3.5.7", + mockito: "3.6.0", netty: "4.1.51.Final", - owaspDepCheckPlugin: "5.3.2.1", - powermock: "2.0.7", + owaspDepCheckPlugin: "6.0.3", + powermock: "2.0.9", reflections: "0.9.12", rocksDB: "5.18.4", scalaCollectionCompat: "2.2.0", @@ -106,14 +106,14 @@ versions += [ scalaJava8Compat : "0.9.1", scalatest: "3.0.8", scoverage: "1.4.1", - scoveragePlugin: "4.0.2", - shadowPlugin: "6.0.0", + scoveragePlugin: "5.0.0", + shadowPlugin: "6.1.0", slf4j: "1.7.30", snappy: "1.1.8.1", - spotbugs: "4.0.6", - spotbugsPlugin: "4.4.4", - spotlessPlugin: "5.1.0", - testRetryPlugin: "1.1.6", + spotbugs: "4.1.4", + spotbugsPlugin: "4.6.0", + spotlessPlugin: "5.8.2", + testRetryPlugin: "1.1.9", zinc: "1.3.5", zookeeper: "3.5.8", zstd: "1.4.5-12" diff --git a/gradle/spotbugs-exclude.xml b/gradle/spotbugs-exclude.xml index 25adc87a58d8a..f395d0a776515 100644 --- a/gradle/spotbugs-exclude.xml +++ b/gradle/spotbugs-exclude.xml @@ -24,16 +24,6 @@ For a detailed description of spotbugs bug categories, see https://spotbugs.read --> - - - - - - - - - - + + + + + diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 14e30f7416a55..1f3fdbc52873a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 481772aa744fb..68e8dfec805af 100755 --- a/gradlew +++ b/gradlew @@ -84,7 +84,7 @@ esac # Loop in case we encounter an error. for attempt in 1 2 3; do if [ ! -e $APP_HOME/gradle/wrapper/gradle-wrapper.jar ]; then - if ! curl -s -S --retry 3 -L -o "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" "https://raw.githubusercontent.com/gradle/gradle/v6.7.0/gradle/wrapper/gradle-wrapper.jar"; then + if ! curl -s -S --retry 3 -L -o "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" "https://raw.githubusercontent.com/gradle/gradle/v6.7.1/gradle/wrapper/gradle-wrapper.jar"; then rm -f "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" # Pause for a bit before looping in case the server throttled us. sleep 5