Merge branch 'gerrit/goldfish' into 'master'

Change-Id: I773295752e1368cd16cbebfe5e6fb717e601f3ce
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/delta/AwsS3DeltaReaderFactory.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/delta/AwsS3DeltaReaderFactory.java
index 8dc820b..d29cd40 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/delta/AwsS3DeltaReaderFactory.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/delta/AwsS3DeltaReaderFactory.java
@@ -91,7 +91,7 @@
             throws AlgebricksException, HyracksDataException {
         this.configuration = configuration;
         Configuration conf = new Configuration();
-        configurationBuilder(configuration, conf);
+        applyConfiguration(configuration, conf);
         String tableMetadataPath = S3Constants.HADOOP_S3_PROTOCOL + "://"
                 + configuration.get(ExternalDataConstants.CONTAINER_NAME_FIELD_NAME) + '/'
                 + configuration.get(ExternalDataConstants.DEFINITION_FIELD_NAME);
@@ -189,7 +189,7 @@
         partitionWorkLoadsBasedOnSize.addAll(workloadQueue);
     }
 
-    public static void configurationBuilder(Map<String, String> configuration, Configuration conf) {
+    public static void applyConfiguration(Map<String, String> configuration, Configuration conf) {
         conf.set(S3Constants.HADOOP_ACCESS_KEY_ID, configuration.get(S3Constants.ACCESS_KEY_ID_FIELD_NAME));
         conf.set(S3Constants.HADOOP_SECRET_ACCESS_KEY, configuration.get(S3Constants.SECRET_ACCESS_KEY_FIELD_NAME));
         if (configuration.get(S3Constants.SESSION_TOKEN_FIELD_NAME) != null) {
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
index 4d093f5..540de09 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
@@ -520,11 +520,16 @@
         String tableMetadataPath = null;
         if (configuration.get(ExternalDataConstants.KEY_EXTERNAL_SOURCE_TYPE)
                 .equals(ExternalDataConstants.KEY_ADAPTER_NAME_AWS_S3)) {
-            AwsS3DeltaReaderFactory.configurationBuilder(configuration, conf);
+            AwsS3DeltaReaderFactory.applyConfiguration(configuration, conf);
             tableMetadataPath = S3Constants.HADOOP_S3_PROTOCOL + "://"
                     + configuration.get(ExternalDataConstants.CONTAINER_NAME_FIELD_NAME) + '/'
                     + configuration.get(ExternalDataConstants.DEFINITION_FIELD_NAME);
+        } else {
+            throw new CompilationException(ErrorCode.EXTERNAL_SOURCE_ERROR,
+                    "Delta format is not supported for the external source type: "
+                            + configuration.get(ExternalDataConstants.KEY_EXTERNAL_SOURCE_TYPE));
         }
+
         Engine engine = DefaultEngine.create(conf);
         io.delta.kernel.Table table = io.delta.kernel.Table.forPath(engine, tableMetadataPath);
         try {
diff --git a/asterixdb/asterix-server/pom.xml b/asterixdb/asterix-server/pom.xml
index 82534fb..c64d4bb 100644
--- a/asterixdb/asterix-server/pom.xml
+++ b/asterixdb/asterix-server/pom.xml
@@ -250,15 +250,28 @@
             </override>
             <override>
               <gavs>
-                <gav>com.azure:azure-core:1.38.0</gav>
-                <gav>com.azure:azure-core-http-netty:1.13.2</gav>
-                <gav>com.azure:azure-json:1.0.0</gav>
-                <gav>com.azure:azure-storage-blob:12.22.0</gav>
-                <gav>com.azure:azure-storage-common:12.21.0</gav>
-                <gav>com.azure:azure-storage-internal-avro:12.7.0</gav>
+                <gav>com.azure:azure-core:1.45.1</gav>
+                <gav>com.azure:azure-core-http-netty:1.13.11</gav>
+                <gav>com.azure:azure-json:1.3.0</gav>
+                <gav>com.azure:azure-storage-blob:12.25.1</gav>
+                <gav>com.azure:azure-storage-common:12.24.1</gav>
+                <gav>com.azure:azure-storage-internal-avro:12.10.1</gav>
               </gavs>
-              <noticeUrl>https://raw.githubusercontent.com/Azure/azure-sdk-for-java/azure-storage-blob_12.22.0/NOTICE.txt</noticeUrl>
-              <url>https://raw.githubusercontent.com/Azure/azure-sdk-for-java/azure-storage-blob_12.22.0/LICENSE.txt</url>
+              <url>https://raw.githubusercontent.com/Azure/azure-sdk-for-java/main/LICENSE.txt</url>
+            </override>
+            <override>
+              <gavs>
+                <gav>com.azure:azure-identity:1.13.3</gav>
+              </gavs>
+              <url>https://raw.githubusercontent.com/Azure/azure-sdk-for-java/main/LICENSE.txt</url>
+              <noticeUrl>https://raw.githubusercontent.com/Azure/azure-sdk-for-java/refs/tags/azure-identity_1.13.3/NOTICE.txt</noticeUrl>
+            </override>
+            <override>
+              <gavs>
+                <gav>com.microsoft.azure:msal4j:1.17.1</gav>
+                <gav>com.microsoft.azure:msal4j-persistence-extension:1.3.0</gav>
+              </gavs>
+              <url>https://raw.githubusercontent.com/AzureAD/microsoft-authentication-library-for-java/refs/tags/v1.17.1/LICENSE</url>
             </override>
             <override>
               <gavs>
@@ -268,14 +281,6 @@
               <url>https://raw.githubusercontent.com/reactor/reactor-netty/v1.0.28/LICENSE</url>
             </override>
             <override>
-              <gav>com.microsoft.azure:msal4j:1.16.1</gav>
-              <url>https://raw.githubusercontent.com/AzureAD/microsoft-authentication-library-for-java/v1.16.1/LICENSE</url>
-            </override>
-            <override>
-              <gav>com.microsoft.azure:msal4j-persistence-extension:1.3.0</gav>
-              <url>https://raw.githubusercontent.com/AzureAD/microsoft-authentication-extensions-for-java/master/LICENSE</url>
-            </override>
-            <override>
               <gav>com.microsoft.azure:azure-keyvault-core:1.2.4</gav>
               <url>https://raw.githubusercontent.com/Azure/azure-sdk-for-java/main/sdk/keyvault/LICENSE</url>
             </override>
diff --git a/asterixdb/pom.xml b/asterixdb/pom.xml
index 62bec6b..495d73f 100644
--- a/asterixdb/pom.xml
+++ b/asterixdb/pom.xml
@@ -100,7 +100,7 @@
     <hadoop-awsjavasdk.version>1.12.637</hadoop-awsjavasdk.version>
     <azureblobjavasdk.version>12.25.1</azureblobjavasdk.version>
     <azurecommonjavasdk.version>12.24.1</azurecommonjavasdk.version>
-    <azureidentity.version>1.13.1</azureidentity.version>
+    <azureidentity.version>1.13.3</azureidentity.version>
     <azuredatalakejavasdk.version>12.18.1</azuredatalakejavasdk.version>
     <gcsjavasdk.version>2.40.1</gcsjavasdk.version>
     <hadoop-azuresdk.version>8.6.6</hadoop-azuresdk.version>
@@ -2055,7 +2055,7 @@
       <dependency>
         <groupId>org.apache.avro</groupId>
         <artifactId>avro</artifactId>
-        <version>1.11.3</version>
+        <version>1.12.0</version>
       </dependency>
       <dependency>
         <groupId>org.apache.iceberg</groupId>
diff --git a/asterixdb/src/main/appended-resources/supplemental-models.xml b/asterixdb/src/main/appended-resources/supplemental-models.xml
index cd80e3f..8f69a80 100644
--- a/asterixdb/src/main/appended-resources/supplemental-models.xml
+++ b/asterixdb/src/main/appended-resources/supplemental-models.xml
@@ -673,7 +673,6 @@
         <license.ignoreMissingEmbeddedLicense>12.25.1</license.ignoreMissingEmbeddedLicense>
         <license.ignoreMissingEmbeddedNotice>12.25.1</license.ignoreMissingEmbeddedNotice>
         <license.ignoreLicenseOverride>12.25.1</license.ignoreLicenseOverride>
-        <license.ignoreNoticeOverride>12.25.1</license.ignoreNoticeOverride>
       </properties>
     </project>
   </supplement>
@@ -700,7 +699,6 @@
         <license.ignoreMissingEmbeddedLicense>12.24.1</license.ignoreMissingEmbeddedLicense>
         <license.ignoreMissingEmbeddedNotice>12.24.1</license.ignoreMissingEmbeddedNotice>
         <license.ignoreLicenseOverride>12.24.1</license.ignoreLicenseOverride>
-        <license.ignoreNoticeOverride>12.24.1</license.ignoreNoticeOverride>
       </properties>
     </project>
   </supplement>
@@ -713,7 +711,6 @@
         <license.ignoreMissingEmbeddedLicense>12.10.1</license.ignoreMissingEmbeddedLicense>
         <license.ignoreMissingEmbeddedNotice>12.10.1</license.ignoreMissingEmbeddedNotice>
         <license.ignoreLicenseOverride>12.10.1</license.ignoreLicenseOverride>
-        <license.ignoreNoticeOverride>12.10.1</license.ignoreNoticeOverride>
       </properties>
     </project>
   </supplement>
@@ -726,7 +723,6 @@
         <license.ignoreMissingEmbeddedLicense>1.45.1</license.ignoreMissingEmbeddedLicense>
         <license.ignoreMissingEmbeddedNotice>1.45.1</license.ignoreMissingEmbeddedNotice>
         <license.ignoreLicenseOverride>1.45.1</license.ignoreLicenseOverride>
-        <license.ignoreNoticeOverride>1.45.1</license.ignoreNoticeOverride>
       </properties>
     </project>
   </supplement>
@@ -739,7 +735,6 @@
         <license.ignoreMissingEmbeddedLicense>1.13.11</license.ignoreMissingEmbeddedLicense>
         <license.ignoreMissingEmbeddedNotice>1.13.11</license.ignoreMissingEmbeddedNotice>
         <license.ignoreLicenseOverride>1.13.11</license.ignoreLicenseOverride>
-        <license.ignoreNoticeOverride>1.13.11</license.ignoreNoticeOverride>
       </properties>
     </project>
   </supplement>
@@ -749,10 +744,9 @@
       <groupId>com.azure</groupId>
       <artifactId>azure-json</artifactId>
       <properties>
-        <license.ignoreMissingEmbeddedLicense>1.1.0</license.ignoreMissingEmbeddedLicense>
-        <license.ignoreMissingEmbeddedNotice>1.1.0</license.ignoreMissingEmbeddedNotice>
-        <license.ignoreLicenseOverride>1.1.0</license.ignoreLicenseOverride>
-        <license.ignoreNoticeOverride>1.1.0</license.ignoreNoticeOverride>
+        <license.ignoreMissingEmbeddedLicense>1.3.0</license.ignoreMissingEmbeddedLicense>
+        <license.ignoreMissingEmbeddedNotice>1.3.0</license.ignoreMissingEmbeddedNotice>
+        <license.ignoreLicenseOverride>1.3.0</license.ignoreLicenseOverride>
       </properties>
     </project>
   </supplement>
@@ -762,9 +756,10 @@
       <groupId>com.azure</groupId>
       <artifactId>azure-identity</artifactId>
       <properties>
-        <license.ignoreMissingEmbeddedLicense>1.11.1</license.ignoreMissingEmbeddedLicense>
-        <license.ignoreMissingEmbeddedNotice>1.11.1</license.ignoreMissingEmbeddedNotice>
-        <license.ignoreLicenseOverride>1.11.1</license.ignoreLicenseOverride>
+        <license.ignoreMissingEmbeddedLicense>1.13.3</license.ignoreMissingEmbeddedLicense>
+        <license.ignoreMissingEmbeddedNotice>1.13.3</license.ignoreMissingEmbeddedNotice>
+        <license.ignoreLicenseOverride>1.13.3</license.ignoreLicenseOverride>
+        <license.ignoreNoticeOverride>1.13.3</license.ignoreNoticeOverride>
       </properties>
     </project>
   </supplement>
@@ -775,8 +770,9 @@
       <groupId>com.microsoft.azure</groupId>
       <artifactId>msal4j</artifactId>
       <properties>
-        <license.ignoreMissingEmbeddedLicense>1.16.1</license.ignoreMissingEmbeddedLicense>
-        <license.ignoreMissingEmbeddedNotice>1.16.1</license.ignoreMissingEmbeddedNotice>
+        <license.ignoreMissingEmbeddedLicense>1.17.1</license.ignoreMissingEmbeddedLicense>
+        <license.ignoreMissingEmbeddedNotice>1.17.1</license.ignoreMissingEmbeddedNotice>
+        <license.ignoreLicenseOverride>1.17.1</license.ignoreLicenseOverride>
       </properties>
     </project>
   </supplement>
@@ -901,8 +897,8 @@
       <groupId>com.nimbusds</groupId>
       <artifactId>oauth2-oidc-sdk</artifactId>
       <properties>
-        <license.ignoreMissingEmbeddedLicense>10.7.1</license.ignoreMissingEmbeddedLicense>
-        <license.ignoreMissingEmbeddedNotice>10.7.1</license.ignoreMissingEmbeddedNotice>
+        <license.ignoreMissingEmbeddedLicense>11.18</license.ignoreMissingEmbeddedLicense>
+        <license.ignoreMissingEmbeddedNotice>11.18</license.ignoreMissingEmbeddedNotice>
       </properties>
     </project>
   </supplement>
@@ -913,8 +909,8 @@
       <groupId>com.nimbusds</groupId>
       <artifactId>nimbus-jose-jwt</artifactId>
       <properties>
-        <license.ignoreMissingEmbeddedLicense>9.30.2</license.ignoreMissingEmbeddedLicense>
-        <license.ignoreMissingEmbeddedNotice>9.30.2</license.ignoreMissingEmbeddedNotice>
+        <license.ignoreMissingEmbeddedLicense>9.40</license.ignoreMissingEmbeddedLicense>
+        <license.ignoreMissingEmbeddedNotice>9.40</license.ignoreMissingEmbeddedNotice>
       </properties>
     </project>
   </supplement>
@@ -937,8 +933,8 @@
       <groupId>com.nimbusds</groupId>
       <artifactId>content-type</artifactId>
       <properties>
-        <license.ignoreMissingEmbeddedLicense>2.2</license.ignoreMissingEmbeddedLicense>
-        <license.ignoreMissingEmbeddedNotice>2.2</license.ignoreMissingEmbeddedNotice>
+        <license.ignoreMissingEmbeddedLicense>2.3</license.ignoreMissingEmbeddedLicense>
+        <license.ignoreMissingEmbeddedNotice>2.3</license.ignoreMissingEmbeddedNotice>
       </properties>
     </project>
   </supplement>
diff --git a/asterixdb/src/main/licenses/content/raw.githubusercontent.com_AzureAD_microsoft-authentication-library-for-java_refs_tags_v1.17.1_LICENSE.txt b/asterixdb/src/main/licenses/content/raw.githubusercontent.com_AzureAD_microsoft-authentication-library-for-java_refs_tags_v1.17.1_LICENSE.txt
new file mode 100644
index 0000000..d1ca00f
--- /dev/null
+++ b/asterixdb/src/main/licenses/content/raw.githubusercontent.com_AzureAD_microsoft-authentication-library-for-java_refs_tags_v1.17.1_LICENSE.txt
@@ -0,0 +1,21 @@
+    MIT License
+
+    Copyright (c) Microsoft Corporation. All rights reserved.
+
+    Permission is hereby granted, free of charge, to any person obtaining a copy
+    of this software and associated documentation files (the "Software"), to deal
+    in the Software without restriction, including without limitation the rights
+    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+    copies of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be included in all
+    copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+    SOFTWARE
\ No newline at end of file
diff --git a/asterixdb/src/main/licenses/content/raw.githubusercontent.com_Azure_azure-sdk-for-java_azure-identity_1.9.0_LICENSE.txt b/asterixdb/src/main/licenses/content/raw.githubusercontent.com_Azure_azure-sdk-for-java_azure-identity_1.9.0_LICENSE.txt
deleted file mode 100644
index 49d2166..0000000
--- a/asterixdb/src/main/licenses/content/raw.githubusercontent.com_Azure_azure-sdk-for-java_azure-identity_1.9.0_LICENSE.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Microsoft
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
\ No newline at end of file
diff --git a/asterixdb/src/main/licenses/content/raw.githubusercontent.com_Azure_azure-sdk-for-java_azure-identity_1.9.0_NOTICE.txt b/asterixdb/src/main/licenses/content/raw.githubusercontent.com_Azure_azure-sdk-for-java_refs_tags_azure-identity_1.13.3_NOTICE.txt
similarity index 96%
rename from asterixdb/src/main/licenses/content/raw.githubusercontent.com_Azure_azure-sdk-for-java_azure-identity_1.9.0_NOTICE.txt
rename to asterixdb/src/main/licenses/content/raw.githubusercontent.com_Azure_azure-sdk-for-java_refs_tags_azure-identity_1.13.3_NOTICE.txt
index ff05c53..28e74db 100644
--- a/asterixdb/src/main/licenses/content/raw.githubusercontent.com_Azure_azure-sdk-for-java_azure-identity_1.9.0_NOTICE.txt
+++ b/asterixdb/src/main/licenses/content/raw.githubusercontent.com_Azure_azure-sdk-for-java_refs_tags_azure-identity_1.13.3_NOTICE.txt
@@ -606,4 +606,24 @@
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
\ No newline at end of file
+SOFTWARE.
+
+-------------------------------------------------------------------------------------------------
+
+License notice for OpenTelemetry Java instrumentation
+https://github.com/open-telemetry/opentelemetry-java-instrumentation/
+------------------------------------------------------------------------------
+
+Copyright [2023] [OpenTelemetry]
+
+    Licensed 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.
\ No newline at end of file
diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/InvokeUtil.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/InvokeUtil.java
index ad5e919..e7970d3 100644
--- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/InvokeUtil.java
+++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/InvokeUtil.java
@@ -35,6 +35,7 @@
 import org.apache.hyracks.util.InterruptibleSupplier;
 import org.apache.hyracks.util.Span;
 import org.apache.hyracks.util.ThrowingAction;
+import org.apache.hyracks.util.ThrowingConsumer;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -251,6 +252,44 @@
         }
     }
 
+    // catching Throwable, instanceofs, false-positive unreachable code
+    public static void tryWithCleanups(ThrowingAction action, ThrowingConsumer<Throwable>... cleanups)
+            throws Exception {
+        Throwable savedT = null;
+        boolean suppressedInterrupted = false;
+        try {
+            action.run();
+        } catch (Throwable t) {
+            savedT = t;
+        } finally {
+            for (ThrowingConsumer cleanup : cleanups) {
+                try {
+                    cleanup.process(savedT);
+                } catch (Throwable t) {
+                    if (savedT != null) {
+                        savedT.addSuppressed(t);
+                        suppressedInterrupted = suppressedInterrupted || t instanceof InterruptedException;
+                    } else {
+                        savedT = t;
+                    }
+                }
+            }
+        }
+        if (savedT == null) {
+            return;
+        }
+        if (suppressedInterrupted) {
+            Thread.currentThread().interrupt();
+        }
+        if (savedT instanceof Error) {
+            throw (Error) savedT;
+        } else if (savedT instanceof Exception) {
+            throw (Exception) savedT;
+        } else {
+            throw HyracksDataException.create(savedT);
+        }
+    }
+
     @SuppressWarnings({ "squid:S1181", "squid:S1193", "ConstantConditions" }) // catching Throwable, instanceofs
     public static void tryIoWithCleanups(IOThrowingAction action, IOThrowingAction... cleanups) throws IOException {
         Throwable savedT = null;
diff --git a/hyracks-fullstack/pom.xml b/hyracks-fullstack/pom.xml
index 20c3e21..d035c1e 100644
--- a/hyracks-fullstack/pom.xml
+++ b/hyracks-fullstack/pom.xml
@@ -499,6 +499,11 @@
         <artifactId>asm-util</artifactId>
         <version>${asm.version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-client-runtime</artifactId>
+        <version>3.4.1</version>
+      </dependency>
     </dependencies>
   </dependencyManagement>
   <build>