SourabhBadhya commented on code in PR #4707:
URL: https://github.com/apache/hive/pull/4707#discussion_r1340939040


##########
ql/pom.xml:
##########
@@ -809,20 +808,8 @@
     </dependency>
     <dependency>
       <groupId>org.mockito</groupId>
-      <artifactId>mockito-core</artifactId>
-      <version>${mockito-core.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.powermock</groupId>
-      <artifactId>powermock-module-junit4</artifactId>
-      <version>${powermock.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.powermock</groupId>
-      <artifactId>powermock-api-mockito2</artifactId>
-      <version>${powermock.version}</version>
+      <artifactId>mockito-inline</artifactId>
+      <version>4.11.0</version>

Review Comment:
   Consider defining a `${mockito-inline.version}` since the same version is 
used in beeline package as well.



##########
ql/src/java/org/apache/hadoop/hive/ql/parse/repl/load/message/CreateFunctionHandler.java:
##########
@@ -155,7 +156,7 @@ static class PrimaryToReplicaResourceFunction
     private String destinationDbName;
 
     PrimaryToReplicaResourceFunction(Context context, MetaData metadata,
-        String destinationDbName) {
+                                     String destinationDbName) {

Review Comment:
   Please correct formatting. Avoid unnecessary changes which impact git 
history.



##########
ql/src/test/org/apache/hadoop/hive/ql/exec/repl/TestRangerLoadTask.java:
##########
@@ -111,32 +113,34 @@ public void testSuccessNonEmptyRangerPolicies() throws 
Exception {
         + 
"\"dataMaskPolicyItems\":[],\"rowFilterPolicyItems\":[],\"id\":40,\"guid\":"
         + 
"\"4e2b3406-7b9a-4004-8cdf-7a239c8e2cae\",\"isEnabled\":true,\"version\":1}]}";
     RangerExportPolicyList rangerPolicyList = new 
Gson().fromJson(rangerResponse, RangerExportPolicyList.class);
-    Mockito.when(conf.get(RANGER_REST_URL)).thenReturn("rangerEndpoint");
-    Mockito.when(work.getSourceDbName()).thenReturn("srcdb");
-    Mockito.when(work.getTargetDbName()).thenReturn("tgtdb");
+    when(conf.get(RANGER_REST_URL)).thenReturn("rangerEndpoint");
+    when(work.getSourceDbName()).thenReturn("srcdb");
+    when(work.getTargetDbName()).thenReturn("tgtdb");
     Path rangerDumpPath = new Path("/tmp");
-    Mockito.when(work.getCurrentDumpPath()).thenReturn(rangerDumpPath);
-    Mockito.when(mockClient.readRangerPoliciesFromJsonFile(Mockito.any(), 
Mockito.any())).thenReturn(rangerPolicyList);
-    Mockito.when(work.getRangerConfigResource()).thenReturn(new 
URL("file://ranger.xml"));
+    when(work.getCurrentDumpPath()).thenReturn(rangerDumpPath);
+    when(mockClient.readRangerPoliciesFromJsonFile(Mockito.any(), 
Mockito.any())).thenReturn(rangerPolicyList);
+    when(work.getRangerConfigResource()).thenReturn(new 
URL("file://ranger.xml"));
     int status = task.execute();
     Assert.assertEquals(0, status);
   }
 
   @Test
   public void testSuccessRangerDumpMetrics() throws Exception {
-    Logger logger = Mockito.mock(Logger.class);
-    Whitebox.setInternalState(ReplState.class, logger);
+    Logger logger = LoggerFactory.getLogger("ReplState");
+    StringAppender appender = StringAppender.createStringAppender(null);
+    appender.addToLogger(logger.getName(), Level.INFO);
+    appender.start();
     String rangerResponse = "{\"metaDataInfo\":{\"Host 
name\":\"ranger.apache.org\","
-        + "\"Exported by\":\"hive\",\"Export time\":\"May 5, 2020, 8:55:03 
AM\",\"Ranger apache version\""
-        + 
":\"2.0.0.7.2.0.0-61\"},\"policies\":[{\"service\":\"cm_hive\",\"name\":\"db-level\",\"policyType\":0,"
-        + 
"\"description\":\"\",\"isAuditEnabled\":true,\"resources\":{\"database\":{\"values\":[\"aa\"],"
-        + 
"\"isExcludes\":false,\"isRecursive\":false},\"column\":{\"values\":[\"id\"],\"isExcludes\":false,"
-        + 
"\"isRecursive\":false},\"table\":{\"values\":[\"*\"],\"isExcludes\":false,\"isRecursive\":false}},"
-        + 
"\"policyItems\":[{\"accesses\":[{\"type\":\"select\",\"isAllowed\":true},{\"type\":\"update\","
-        + 
"\"isAllowed\":true}],\"users\":[\"admin\"],\"groups\":[\"public\"],\"conditions\":[],"
-        + 
"\"delegateAdmin\":false}],\"denyPolicyItems\":[],\"allowExceptions\":[],\"denyExceptions\":[],"
-        + 
"\"dataMaskPolicyItems\":[],\"rowFilterPolicyItems\":[],\"id\":40,\"guid\":"
-        + 
"\"4e2b3406-7b9a-4004-8cdf-7a239c8e2cae\",\"isEnabled\":true,\"version\":1}]}";
+            + "\"Exported by\":\"hive\",\"Export time\":\"May 5, 2020, 8:55:03 
AM\",\"Ranger apache version\""
+            + 
":\"2.0.0.7.2.0.0-61\"},\"policies\":[{\"service\":\"cm_hive\",\"name\":\"db-level\",\"policyType\":0,"
+            + 
"\"description\":\"\",\"isAuditEnabled\":true,\"resources\":{\"database\":{\"values\":[\"aa\"],"
+            + 
"\"isExcludes\":false,\"isRecursive\":false},\"column\":{\"values\":[\"id\"],\"isExcludes\":false,"
+            + 
"\"isRecursive\":false},\"table\":{\"values\":[\"*\"],\"isExcludes\":false,\"isRecursive\":false}},"
+            + 
"\"policyItems\":[{\"accesses\":[{\"type\":\"select\",\"isAllowed\":true},{\"type\":\"update\","
+            + 
"\"isAllowed\":true}],\"users\":[\"admin\"],\"groups\":[\"public\"],\"conditions\":[],"
+            + 
"\"delegateAdmin\":false}],\"denyPolicyItems\":[],\"allowExceptions\":[],\"denyExceptions\":[],"
+            + 
"\"dataMaskPolicyItems\":[],\"rowFilterPolicyItems\":[],\"id\":40,\"guid\":"
+            + 
"\"4e2b3406-7b9a-4004-8cdf-7a239c8e2cae\",\"isEnabled\":true,\"version\":1}]}";

Review Comment:
   Unnecessary changes, please correct it.



##########
ql/src/test/org/apache/hadoop/hive/ql/testutil/ReflectionUtil.java:
##########
@@ -0,0 +1,73 @@
+/*
+ * 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.hadoop.hive.ql.testutil;
+
+import org.apache.commons.lang3.reflect.FieldUtils;
+import org.apache.hadoop.hive.ql.txn.compactor.Cleaner;
+
+import java.lang.reflect.Field;
+import java.util.Arrays;
+
+import static java.lang.String.format;
+
+/**
+ * Various helper methods for mocking.
+ * <b>Please use it only in tests, not in production code!</b>
+ */
+public class ReflectionUtil {

Review Comment:
   There is already a ReflectionUtil here - 
   
https://github.com/apache/hive/blob/master/common/src/java/org/apache/hive/common/util/ReflectionUtil.java
   
   I think we must extend that rather than creating a new class.



##########
ql/src/test/org/apache/hadoop/hive/ql/exec/repl/TestAtlasDumpTask.java:
##########
@@ -223,36 +222,39 @@ public void testAtlasServerEntityRetryExhausted() throws 
AtlasServiceException {
       Assert.assertTrue(atlasServiceException == ex.getCause());
     }
     ArgumentCaptor<String> getServerReqCaptor = 
ArgumentCaptor.forClass(String.class);
-    Mockito.verify(atlasClientV2, 
Mockito.times(4)).getServer(getServerReqCaptor.capture());
+    verify(atlasClientV2, times(4)).getServer(getServerReqCaptor.capture());
   }
 
   @Test
   public void testAtlasClientTimeouts() throws Exception {
-    
when(conf.getTimeVar(HiveConf.ConfVars.REPL_EXTERNAL_CLIENT_CONNECT_TIMEOUT,
-            TimeUnit.MILLISECONDS)).thenReturn(20L);
-    when(conf.getTimeVar(HiveConf.ConfVars.REPL_ATLAS_CLIENT_READ_TIMEOUT, 
TimeUnit.MILLISECONDS)).thenReturn(500L);
-    mockStatic(UserGroupInformation.class);
-    
when(UserGroupInformation.getLoginUser()).thenReturn(mock(UserGroupInformation.class));
-    mockStatic(ConfigurationConverter.class);
-    
when(ConfigurationConverter.getConfiguration(Mockito.any(Properties.class))).thenCallRealMethod();
-    AtlasRestClientBuilder atlasRestCleintBuilder = new 
AtlasRestClientBuilder("http://localhost:31000";);
-    AtlasRestClient atlasClient = atlasRestCleintBuilder.getClient(conf);
-    Assert.assertTrue(atlasClient != null);
-    ArgumentCaptor<Properties> propsCaptor = 
ArgumentCaptor.forClass(Properties.class);
-    PowerMockito.verifyStatic(ConfigurationConverter.class, Mockito.times(1));
-    ConfigurationConverter.getConfiguration(propsCaptor.capture());
-    Assert.assertEquals("20", propsCaptor.getValue().getProperty(
-            AtlasRestClientBuilder.ATLAS_PROPERTY_CONNECT_TIMEOUT_IN_MS));
-    Assert.assertEquals("500", propsCaptor.getValue().getProperty(
-            AtlasRestClientBuilder.ATLAS_PROPERTY_READ_TIMEOUT_IN_MS));
+    try (
+            MockedStatic<UserGroupInformation> 
userGroupInformationMockedStatic = mockStatic(UserGroupInformation.class);
+            MockedStatic<ConfigurationConverter> 
configurationConverterMockedStatic = mockStatic(ConfigurationConverter.class)
+            ) {

Review Comment:
   Ensure formatting.



##########
ql/src/test/org/apache/hadoop/hive/ql/exec/repl/ranger/TestRangerRestClient.java:
##########
@@ -54,23 +55,26 @@ public class TestRangerRestClient {
   @Mock
   private HiveConf conf;
 
+  MockedStatic<UserGroupInformation> userGroupInformationMockedStatic;
+
   @Before
   public void setup() throws Exception {
-    PowerMockito.mockStatic(UserGroupInformation.class);
-    
Mockito.when(UserGroupInformation.getLoginUser()).thenReturn(userGroupInformation);
-    Mockito.when(userGroupInformation.doAs((PrivilegedAction<Object>) 
Mockito.any())).thenCallRealMethod();
-    Mockito.when(userGroupInformation.doAs((PrivilegedExceptionAction<Object>) 
Mockito.any())).thenCallRealMethod();
+    userGroupInformationMockedStatic = mockStatic(UserGroupInformation.class);
+
+    
userGroupInformationMockedStatic.when(UserGroupInformation::getLoginUser).thenReturn(userGroupInformation);
+
     Mockito.when(mockClient.getRangerExportUrl(Mockito.anyString(), 
Mockito.anyString(), Mockito.anyString()))
-      .thenCallRealMethod();
-    Mockito.when(mockClient.getRangerImportUrl(Mockito.anyString(), 
Mockito.anyString()))

Review Comment:
   Not calling real method for getRangerImportUrl()?



##########
ql/src/test/org/apache/hadoop/hive/ql/parse/repl/TestCopyUtils.java:
##########
@@ -97,151 +96,156 @@ public void shouldThrowExceptionOnDistcpFailure() throws 
Exception {
     List<Path> srcPaths = Arrays.asList(source, source);
     HiveConf conf = mock(HiveConf.class);
     CopyUtils copyUtils = Mockito.spy(new CopyUtils(null, conf, fs));
+    doReturn(false).when(copyUtils).regularCopy(same(fs), anyList());
 
-    mockStatic(FileUtils.class);
-    mockStatic(Utils.class);
-    when(destination.getFileSystem(same(conf))).thenReturn(fs);
     when(source.getFileSystem(same(conf))).thenReturn(fs);
-    when(FileUtils.distCp(same(fs), anyListOf(Path.class), same(destination),
-                          anyBoolean(), eq(null), same(conf),
-                          same(ShimLoader.getHadoopShims())))
-        .thenReturn(false);
-    when(Utils.getUGI()).thenReturn(mock(UserGroupInformation.class));
-    doReturn(false).when(copyUtils).regularCopy(same(fs), 
anyListOf(ReplChangeManager.FileInfo.class));
-
-    copyUtils.doCopy(destination, srcPaths);
+    try (MockedStatic<FileUtils> fileUtilsMockedStatic = 
mockStatic(FileUtils.class);
+         MockedStatic<Utils> utilsMockedStatic = mockStatic(Utils.class)) {
+      fileUtilsMockedStatic.when(
+              () -> FileUtils.distCp(same(fs), anyList(), same(destination), 
anyBoolean(), eq(null), same(conf),
+                      same(ShimLoader.getHadoopShims()))).thenReturn(false);
+      
utilsMockedStatic.when(Utils::getUGI).thenReturn(mock(UserGroupInformation.class));
+
+      copyUtils.doCopy(destination, srcPaths);
+    }
   }
 
   @Test
   public void testFSCallsFailOnParentExceptions() throws Exception {
-    mockStatic(UserGroupInformation.class);
-    mockStatic(ReplChangeManager.class);
-    
when(UserGroupInformation.getCurrentUser()).thenReturn(mock(UserGroupInformation.class));
-    HiveConf conf = mock(HiveConf.class);
-    conf.set(HiveConf.ConfVars.REPL_RETRY_INTIAL_DELAY.varname, "1s");
-    FileSystem fs = mock(FileSystem.class);
-    Path source = mock(Path.class);
-    Path destination = mock(Path.class);
-    ContentSummary cs = mock(ContentSummary.class);
-
-    Exception exception = new 
org.apache.hadoop.fs.PathPermissionException("Failed");
-    when(ReplChangeManager.checksumFor(source, 
fs)).thenThrow(exception).thenReturn("dummy");
-    when(fs.exists(same(source))).thenThrow(exception).thenReturn(true);
-    when(fs.delete(same(source), 
anyBoolean())).thenThrow(exception).thenReturn(true);
-    when(fs.mkdirs(same(source))).thenThrow(exception).thenReturn(true);
-    when(fs.rename(same(source), 
same(destination))).thenThrow(exception).thenReturn(true);
-    
when(fs.getContentSummary(same(source))).thenThrow(exception).thenReturn(cs);
-
-    CopyUtils copyUtils = new 
CopyUtils(UserGroupInformation.getCurrentUser().getUserName(), conf, fs);
-    CopyUtils copyUtilsSpy = Mockito.spy(copyUtils);
-    try {
-      copyUtilsSpy.exists(fs, source);
-    } catch (Exception e) {
-      assertEquals(exception.getClass(), e.getCause().getClass());
-    }
-    Mockito.verify(fs, Mockito.times(1)).exists(source);
-    try {
-      copyUtils.delete(fs, source, true);
-    } catch (Exception e) {
-      assertEquals(exception.getClass(), e.getCause().getClass());
-    }
-    Mockito.verify(fs, Mockito.times(1)).delete(source, true);
-    try {
-      copyUtils.mkdirs(fs, source);
-    } catch (Exception e) {
-      assertEquals(exception.getClass(), e.getCause().getClass());
-    }
-    Mockito.verify(fs, Mockito.times(1)).mkdirs(source);
-    try {
-      copyUtils.rename(fs, source, destination);
-    } catch (Exception e) {
-      assertEquals(exception.getClass(), e.getCause().getClass());
+    try (
+            MockedStatic<UserGroupInformation> 
userGroupInformationMockedStatic = mockStatic(UserGroupInformation.class);
+            MockedStatic<ReplChangeManager> replChangeManagerMockedStatic = 
mockStatic(ReplChangeManager.class)
+    ) {

Review Comment:
   Ensure formatting.



##########
ql/src/test/org/apache/hadoop/hive/ql/parse/repl/TestCopyUtils.java:
##########
@@ -97,151 +96,156 @@ public void shouldThrowExceptionOnDistcpFailure() throws 
Exception {
     List<Path> srcPaths = Arrays.asList(source, source);
     HiveConf conf = mock(HiveConf.class);
     CopyUtils copyUtils = Mockito.spy(new CopyUtils(null, conf, fs));
+    doReturn(false).when(copyUtils).regularCopy(same(fs), anyList());
 
-    mockStatic(FileUtils.class);
-    mockStatic(Utils.class);
-    when(destination.getFileSystem(same(conf))).thenReturn(fs);
     when(source.getFileSystem(same(conf))).thenReturn(fs);
-    when(FileUtils.distCp(same(fs), anyListOf(Path.class), same(destination),
-                          anyBoolean(), eq(null), same(conf),
-                          same(ShimLoader.getHadoopShims())))
-        .thenReturn(false);
-    when(Utils.getUGI()).thenReturn(mock(UserGroupInformation.class));
-    doReturn(false).when(copyUtils).regularCopy(same(fs), 
anyListOf(ReplChangeManager.FileInfo.class));
-
-    copyUtils.doCopy(destination, srcPaths);
+    try (MockedStatic<FileUtils> fileUtilsMockedStatic = 
mockStatic(FileUtils.class);
+         MockedStatic<Utils> utilsMockedStatic = mockStatic(Utils.class)) {
+      fileUtilsMockedStatic.when(
+              () -> FileUtils.distCp(same(fs), anyList(), same(destination), 
anyBoolean(), eq(null), same(conf),
+                      same(ShimLoader.getHadoopShims()))).thenReturn(false);
+      
utilsMockedStatic.when(Utils::getUGI).thenReturn(mock(UserGroupInformation.class));
+
+      copyUtils.doCopy(destination, srcPaths);
+    }
   }
 
   @Test
   public void testFSCallsFailOnParentExceptions() throws Exception {
-    mockStatic(UserGroupInformation.class);
-    mockStatic(ReplChangeManager.class);
-    
when(UserGroupInformation.getCurrentUser()).thenReturn(mock(UserGroupInformation.class));
-    HiveConf conf = mock(HiveConf.class);
-    conf.set(HiveConf.ConfVars.REPL_RETRY_INTIAL_DELAY.varname, "1s");
-    FileSystem fs = mock(FileSystem.class);
-    Path source = mock(Path.class);
-    Path destination = mock(Path.class);
-    ContentSummary cs = mock(ContentSummary.class);
-
-    Exception exception = new 
org.apache.hadoop.fs.PathPermissionException("Failed");
-    when(ReplChangeManager.checksumFor(source, 
fs)).thenThrow(exception).thenReturn("dummy");
-    when(fs.exists(same(source))).thenThrow(exception).thenReturn(true);
-    when(fs.delete(same(source), 
anyBoolean())).thenThrow(exception).thenReturn(true);
-    when(fs.mkdirs(same(source))).thenThrow(exception).thenReturn(true);
-    when(fs.rename(same(source), 
same(destination))).thenThrow(exception).thenReturn(true);
-    
when(fs.getContentSummary(same(source))).thenThrow(exception).thenReturn(cs);
-
-    CopyUtils copyUtils = new 
CopyUtils(UserGroupInformation.getCurrentUser().getUserName(), conf, fs);
-    CopyUtils copyUtilsSpy = Mockito.spy(copyUtils);
-    try {
-      copyUtilsSpy.exists(fs, source);
-    } catch (Exception e) {
-      assertEquals(exception.getClass(), e.getCause().getClass());
-    }
-    Mockito.verify(fs, Mockito.times(1)).exists(source);
-    try {
-      copyUtils.delete(fs, source, true);
-    } catch (Exception e) {
-      assertEquals(exception.getClass(), e.getCause().getClass());
-    }
-    Mockito.verify(fs, Mockito.times(1)).delete(source, true);
-    try {
-      copyUtils.mkdirs(fs, source);
-    } catch (Exception e) {
-      assertEquals(exception.getClass(), e.getCause().getClass());
-    }
-    Mockito.verify(fs, Mockito.times(1)).mkdirs(source);
-    try {
-      copyUtils.rename(fs, source, destination);
-    } catch (Exception e) {
-      assertEquals(exception.getClass(), e.getCause().getClass());
+    try (
+            MockedStatic<UserGroupInformation> 
userGroupInformationMockedStatic = mockStatic(UserGroupInformation.class);
+            MockedStatic<ReplChangeManager> replChangeManagerMockedStatic = 
mockStatic(ReplChangeManager.class)
+    ) {
+      
userGroupInformationMockedStatic.when(UserGroupInformation::getCurrentUser).thenReturn(mock(UserGroupInformation.class));
+      HiveConf conf = mock(HiveConf.class);
+      conf.set(HiveConf.ConfVars.REPL_RETRY_INTIAL_DELAY.varname, "1s");
+      FileSystem fs = mock(FileSystem.class);
+      Path source = mock(Path.class);
+      Path destination = mock(Path.class);
+      ContentSummary cs = mock(ContentSummary.class);
+
+      Exception exception = new 
org.apache.hadoop.fs.PathPermissionException("Failed");
+      replChangeManagerMockedStatic.when(() -> 
ReplChangeManager.checksumFor(source, 
fs)).thenThrow(exception).thenReturn("dummy");
+      when(fs.exists(same(source))).thenThrow(exception).thenReturn(true);
+      when(fs.delete(same(source), 
anyBoolean())).thenThrow(exception).thenReturn(true);
+      when(fs.mkdirs(same(source))).thenThrow(exception).thenReturn(true);
+      when(fs.rename(same(source), 
same(destination))).thenThrow(exception).thenReturn(true);
+      
when(fs.getContentSummary(same(source))).thenThrow(exception).thenReturn(cs);
+
+      CopyUtils copyUtils = new 
CopyUtils(UserGroupInformation.getCurrentUser().getUserName(), conf, fs);
+      CopyUtils copyUtilsSpy = Mockito.spy(copyUtils);
+      try {
+        copyUtilsSpy.exists(fs, source);
+      } catch (Exception e) {
+        assertEquals(exception.getClass(), e.getCause().getClass());
+      }
+      Mockito.verify(fs, Mockito.times(1)).exists(source);
+      try {
+        copyUtils.delete(fs, source, true);
+      } catch (Exception e) {
+        assertEquals(exception.getClass(), e.getCause().getClass());
+      }
+      Mockito.verify(fs, Mockito.times(1)).delete(source, true);
+      try {
+        copyUtils.mkdirs(fs, source);
+      } catch (Exception e) {
+        assertEquals(exception.getClass(), e.getCause().getClass());
+      }
+      Mockito.verify(fs, Mockito.times(1)).mkdirs(source);
+      try {
+        copyUtils.rename(fs, source, destination);
+      } catch (Exception e) {
+        assertEquals(exception.getClass(), e.getCause().getClass());
+      }
+      Mockito.verify(fs, Mockito.times(1)).rename(source, destination);
+      try {
+        copyUtilsSpy.getContentSummary(fs, source);
+      } catch (Exception e) {
+        assertEquals(exception.getClass(), e.getCause().getClass());;
+      }
+      Mockito.verify(fs, Mockito.times(1)).getContentSummary(source);
+      try {
+        copyUtilsSpy.checkSumFor(source, fs);
+      } catch (Exception e) {
+        assertEquals(exception.getClass(), e.getCause().getClass());
+      }
+      Mockito.verify(copyUtilsSpy, Mockito.times(1)).checkSumFor(source, fs);
     }
-    Mockito.verify(fs, Mockito.times(1)).rename(source, destination);
-    try {
-      copyUtilsSpy.getContentSummary(fs, source);
-    } catch (Exception e) {
-      assertEquals(exception.getClass(), e.getCause().getClass());;
-    }
-    Mockito.verify(fs, Mockito.times(1)).getContentSummary(source);
-    try {
-      copyUtilsSpy.checkSumFor(source, fs);
-    } catch (Exception e) {
-      assertEquals(exception.getClass(), e.getCause().getClass());
-    }
-    Mockito.verify(copyUtilsSpy, Mockito.times(1)).checkSumFor(source, fs);
   }
 
   @Test
   public void testRetryableFSCalls() throws Exception {
-    mockStatic(UserGroupInformation.class);
-    mockStatic(ReplChangeManager.class);
-    
when(UserGroupInformation.getCurrentUser()).thenReturn(mock(UserGroupInformation.class));
-    HiveConf conf = mock(HiveConf.class);
-    conf.set(HiveConf.ConfVars.REPL_RETRY_INTIAL_DELAY.varname, "1s");
-    FileSystem fs = mock(FileSystem.class);
-    Path source = mock(Path.class);
-    Path destination = mock(Path.class);
-    ContentSummary cs = mock(ContentSummary.class);
-
-    when(ReplChangeManager.checksumFor(source, fs)).thenThrow(new 
IOException("Failed")).thenReturn("dummy");
-    when(fs.exists(same(source))).thenThrow(new 
IOException("Failed")).thenReturn(true);
-    when(fs.delete(same(source), anyBoolean())).thenThrow(new 
IOException("Failed")).thenReturn(true);
-    when(fs.mkdirs(same(source))).thenThrow(new 
IOException("Failed")).thenReturn(true);
-    when(fs.rename(same(source), same(destination))).thenThrow(new 
IOException("Failed")).thenReturn(true);
-    when(fs.getContentSummary(same(source))).thenThrow(new 
IOException("Failed")).thenReturn(cs);
-
-    CopyUtils copyUtils = new 
CopyUtils(UserGroupInformation.getCurrentUser().getUserName(), conf, fs);
-    CopyUtils copyUtilsSpy = Mockito.spy(copyUtils);
-    assertEquals (true, copyUtilsSpy.exists(fs, source));
-    Mockito.verify(fs, Mockito.times(2)).exists(source);
-    assertEquals (true, copyUtils.delete(fs, source, true));
-    Mockito.verify(fs, Mockito.times(2)).delete(source, true);
-    assertEquals (true, copyUtils.mkdirs(fs, source));
-    Mockito.verify(fs, Mockito.times(2)).mkdirs(source);
-    assertEquals (true, copyUtils.rename(fs, source, destination));
-    Mockito.verify(fs, Mockito.times(2)).rename(source, destination);
-    assertEquals (cs, copyUtilsSpy.getContentSummary(fs, source));
-    Mockito.verify(fs, Mockito.times(2)).getContentSummary(source);
-    assertEquals ("dummy", copyUtilsSpy.checkSumFor(source, fs));
+    try (
+            MockedStatic<UserGroupInformation> 
userGroupInformationMockedStatic = mockStatic(UserGroupInformation.class);
+            MockedStatic<ReplChangeManager> replChangeManagerMockedStatic = 
mockStatic(ReplChangeManager.class)
+            ) {

Review Comment:
   Ensure formatting.



##########
ql/src/test/org/apache/hadoop/hive/ql/exec/repl/ranger/TestRangerRestClient.java:
##########
@@ -54,23 +55,26 @@ public class TestRangerRestClient {
   @Mock
   private HiveConf conf;
 
+  MockedStatic<UserGroupInformation> userGroupInformationMockedStatic;
+
   @Before
   public void setup() throws Exception {
-    PowerMockito.mockStatic(UserGroupInformation.class);
-    
Mockito.when(UserGroupInformation.getLoginUser()).thenReturn(userGroupInformation);
-    Mockito.when(userGroupInformation.doAs((PrivilegedAction<Object>) 
Mockito.any())).thenCallRealMethod();
-    Mockito.when(userGroupInformation.doAs((PrivilegedExceptionAction<Object>) 
Mockito.any())).thenCallRealMethod();
+    userGroupInformationMockedStatic = mockStatic(UserGroupInformation.class);
+
+    
userGroupInformationMockedStatic.when(UserGroupInformation::getLoginUser).thenReturn(userGroupInformation);
+
     Mockito.when(mockClient.getRangerExportUrl(Mockito.anyString(), 
Mockito.anyString(), Mockito.anyString()))
-      .thenCallRealMethod();
-    Mockito.when(mockClient.getRangerImportUrl(Mockito.anyString(), 
Mockito.anyString()))
-      .thenCallRealMethod();
+            .thenCallRealMethod();
     Mockito.when(conf.getTimeVar(HiveConf.ConfVars.REPL_RETRY_INTIAL_DELAY, 
TimeUnit.SECONDS)).thenReturn(1L);
     Mockito.when(conf.getTimeVar(HiveConf.ConfVars.REPL_RETRY_TOTAL_DURATION, 
TimeUnit.SECONDS)).thenReturn(20L);
     Mockito.when(conf.getTimeVar(HiveConf.ConfVars.REPL_RETRY_JITTER, 
TimeUnit.SECONDS)).thenReturn(1L);
     
Mockito.when(conf.getTimeVar(HiveConf.ConfVars.REPL_RETRY_MAX_DELAY_BETWEEN_RETRIES,
 TimeUnit.SECONDS))
-      .thenReturn(10L);
-    
Mockito.when(conf.getFloat(HiveConf.ConfVars.REPL_RETRY_BACKOFF_COEFFICIENT.varname,
 1.0f))

Review Comment:
   Why is this config removed? Is this config part of a test?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org
For additional commands, e-mail: gitbox-h...@hive.apache.org

Reply via email to