From 0c5c24d3d860ac8c7dbaa2f529cbc9128efadd19 Mon Sep 17 00:00:00 2001 From: star <13407109142@163.com> Date: Fri, 15 Jun 2018 16:18:27 +0800 Subject: [PATCH] HBASE-20738 failed with testGetPassword on Windows --- .../org/apache/hadoop/hbase/TestHBaseConfiguration.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/hbase-common/src/test/java/org/apache/hadoop/hbase/TestHBaseConfiguration.java b/hbase-common/src/test/java/org/apache/hadoop/hbase/TestHBaseConfiguration.java index cb422c0..c4a1635 100644 --- a/hbase-common/src/test/java/org/apache/hadoop/hbase/TestHBaseConfiguration.java +++ b/hbase-common/src/test/java/org/apache/hadoop/hbase/TestHBaseConfiguration.java @@ -110,8 +110,19 @@ public class TestHBaseConfiguration { @Test public void testGetPassword() throws Exception { Configuration conf = HBaseConfiguration.create(); - conf.set(ReflectiveCredentialProviderClient.CREDENTIAL_PROVIDER_PATH, "jceks://file" - + new File(UTIL.getDataTestDir().toUri().getPath(), "foo.jks").getCanonicalPath()); + + StringBuilder jceksPath = new StringBuilder("jceks://file"); + String localPath = new File(UTIL.getDataTestDir().toUri().getPath(), + "foo.jks").getCanonicalPath(); + localPath = localPath.replace('\\', '/'); + if(!localPath.startsWith("/")) { + //For windows path such as D:\dir\dir1 + jceksPath.append("/"); + } + jceksPath.append(localPath); + conf.set(ReflectiveCredentialProviderClient.CREDENTIAL_PROVIDER_PATH, + jceksPath.toString()); + ReflectiveCredentialProviderClient client = new ReflectiveCredentialProviderClient(); if (client.isHadoopCredentialProviderAvailable()) { char[] keyPass = { 'k', 'e', 'y', 'p', 'a', 's', 's' }; -- 2.7.2.windows.1