qiaoandxiang commented on a change in pull request #1310: HBASE-23957 [flakey test] client.TestMultiParallel fails to read hbas… URL: https://github.com/apache/hbase/pull/1310#discussion_r394715353
########## File path: hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi.java ########## @@ -65,19 +67,47 @@ public static final HBaseClassTestRule CLASS_RULE = HBaseClassTestRule.forClass(TestAsyncClusterAdminApi.class); - private final Path cnfPath = FileSystems.getDefault().getPath("target/test-classes/hbase-site.xml"); - private final Path cnf2Path = FileSystems.getDefault().getPath("target/test-classes/hbase-site2.xml"); - private final Path cnf3Path = FileSystems.getDefault().getPath("target/test-classes/hbase-site3.xml"); + private static Path newCnfPath, newCnf2Path, newCnf3Path; @BeforeClass public static void setUpBeforeClass() throws Exception { + Path cnfPath = FileSystems.getDefault().getPath("target/test-classes/hbase-site.xml"); + Path cnf2Path = FileSystems.getDefault().getPath("target/test-classes/hbase-site2.xml"); + Path cnf3Path = FileSystems.getDefault().getPath("target/test-classes/hbase-site3.xml"); + + String absoluteDataPath = TEST_UTIL.getDataTestDir().toString(); + String dataBasePath = System.getProperty(HBaseCommonTestingUtility.BASE_TEST_DIRECTORY_KEY, + HBaseCommonTestingUtility.DEFAULT_BASE_TEST_DIRECTORY); + + String dataPath = absoluteDataPath.substring(absoluteDataPath.indexOf(dataBasePath)); + newCnfPath = Paths.get(dataPath + "/hbase-site.xml"); + newCnf2Path = Paths.get(dataPath + "/hbase-site2.xml"); + newCnf3Path = Paths.get(dataPath + "/hbase-site3.xml"); + + // Copy Files from target/test-classes to data directory, this is to avoid messing up + // the config file under target/test-class, which is supposed to be immutable. + Files.createDirectories(Paths.get(dataPath)); + Files.copy(cnfPath, newCnfPath); + Files.copy(cnf2Path, newCnf2Path); + Files.copy(cnf3Path, newCnf3Path); + + // Add the new custom config file to Configuration + TEST_UTIL.getConfiguration().addResource(TEST_UTIL.getDataTestDir("hbase-site.xml")); Review comment: yeah, the above copies hbase-site.xml from test-classes to test-data, then the copy under test-data is added to config resources. When hbase-site.xml under test-data is updated, Configuration can be reloaded to include changes. ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services