[ 
https://issues.apache.org/jira/browse/HDFS-17881?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18106137#comment-18106137
 ] 

ASF GitHub Bot commented on HDFS-17881:
---------------------------------------

hadoop-yetus commented on PR #8536:
URL: https://github.com/apache/hadoop/pull/8536#issuecomment-5351801658

   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |:----:|----------:|--------:|:--------:|:-------:|
   | +0 :ok: |  reexec  |   1m  3s |  |  Docker mode activated.  |
   |||| _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  |  No case conflicting files 
found.  |
   | +0 :ok: |  codespell  |   0m  0s |  |  codespell was not available.  |
   | +0 :ok: |  detsecrets  |   0m  0s |  |  detect-secrets was not available.  
|
   | +1 :green_heart: |  @author  |   0m  0s |  |  The patch does not contain 
any @author tags.  |
   | +1 :green_heart: |  test4tests  |   0m  0s |  |  The patch appears to 
include 1 new or modified test files.  |
   |||| _ trunk Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |  54m 14s |  |  trunk passed  |
   | +1 :green_heart: |  compile  |   1m 11s |  |  trunk passed with JDK 
Ubuntu-21.0.11+10-1-24.04.2-Ubuntu  |
   | +1 :green_heart: |  compile  |   1m  8s |  |  trunk passed with JDK 
Ubuntu-17.0.19+10-1-24.04.2-Ubuntu  |
   | +1 :green_heart: |  checkstyle  |   1m  2s |  |  trunk passed  |
   | +1 :green_heart: |  mvnsite  |   1m 14s |  |  trunk passed  |
   | +1 :green_heart: |  javadoc  |   1m  3s |  |  trunk passed with JDK 
Ubuntu-21.0.11+10-1-24.04.2-Ubuntu  |
   | +1 :green_heart: |  javadoc  |   1m  2s |  |  trunk passed with JDK 
Ubuntu-17.0.19+10-1-24.04.2-Ubuntu  |
   | +1 :green_heart: |  spotbugs  |   1m 50s |  |  trunk passed  |
   | +1 :green_heart: |  shadedclient  |  38m 45s |  |  branch has no errors 
when building and testing our client artifacts.  |
   |||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   0m 44s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   0m 40s |  |  the patch passed with JDK 
Ubuntu-21.0.11+10-1-24.04.2-Ubuntu  |
   | +1 :green_heart: |  javac  |   0m 40s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   0m 44s |  |  the patch passed with JDK 
Ubuntu-17.0.19+10-1-24.04.2-Ubuntu  |
   | +1 :green_heart: |  javac  |   0m 44s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | +1 :green_heart: |  checkstyle  |   0m 29s |  |  the patch passed  |
   | +1 :green_heart: |  mvnsite  |   0m 50s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   0m 36s |  |  the patch passed with JDK 
Ubuntu-21.0.11+10-1-24.04.2-Ubuntu  |
   | +1 :green_heart: |  javadoc  |   0m 33s |  |  the patch passed with JDK 
Ubuntu-17.0.19+10-1-24.04.2-Ubuntu  |
   | +1 :green_heart: |  spotbugs  |   1m 35s |  |  the patch passed  |
   | +1 :green_heart: |  shadedclient  |  37m 45s |  |  patch has no errors 
when building and testing our client artifacts.  |
   |||| _ Other Tests _ |
   | +1 :green_heart: |  unit  |   2m 17s |  |  hadoop-azure in the patch 
passed.  |
   | +1 :green_heart: |  asflicense  |   0m 40s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   | 152m  2s |  |  |
   
   
   | Subsystem | Report/Notes |
   |----------:|:-------------|
   | Docker | ClientAPI=1.55 ServerAPI=1.55 base: 
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8536/8/artifact/out/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hadoop/pull/8536 |
   | Optional Tests | dupname asflicense compile javac javadoc mvninstall 
mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets |
   | uname | Linux 512c97be7448 5.15.0-185-generic #195-Ubuntu SMP Fri Jun 19 
17:11:50 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/bin/hadoop.sh |
   | git revision | trunk / d89f1ef1d64126d13f851075e29df3fb6af3cee0 |
   | Default Java | Ubuntu-17.0.19+10-1-24.04.2-Ubuntu |
   | Multi-JDK versions | 
/usr/lib/jvm/java-21-openjdk-amd64:Ubuntu-21.0.11+10-1-24.04.2-Ubuntu 
/usr/lib/jvm/java-17-openjdk-amd64:Ubuntu-17.0.19+10-1-24.04.2-Ubuntu |
   |  Test Results | 
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8536/8/testReport/ |
   | Max. process+thread count | 629 (vs. ulimit of 10000) |
   | modules | C: hadoop-tools/hadoop-azure U: hadoop-tools/hadoop-azure |
   | Console output | 
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8536/8/console |
   | versions | git=2.43.0 maven=3.9.15 spotbugs=4.9.7 |
   | Powered by | Apache Yetus 0.14.1 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   




> Hadoop file system can not browse the folder that has children folder with 
> colon in Windows
> -------------------------------------------------------------------------------------------
>
>                 Key: HDFS-17881
>                 URL: https://issues.apache.org/jira/browse/HDFS-17881
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: fs/azure
>    Affects Versions: 3.4.2
>            Reporter: Toan Le
>            Priority: Critical
>              Labels: azure, azureblob, commons, hadoop-common, 
> pull-request-available
>         Attachments: Screenshot 2026-02-11 at 11.40.36.png, 
> test_hadoop_azure.zip
>
>
> Hi guys, 
> I am facing an issue when browsing the children's folder name with a colon in 
> ADLS.
> Here is my case. My root folder in ADLS contains a folder with a name that 
> includes a colon.
> When I used the Hadoop file system. I got this error on Windows:
> {code:java}
> java -cp ".;./*" AbfsListStatusTest.java [main] WARN 
> org.apache.hadoop.util.NativeCodeLoader - Unable to load native-hadoop 
> library for your platform... using builtin-java classes where applicable 
> [main] ERROR org.apache.hadoop.fs.azurebfs.services.AbfsClient - Unable to 
> deserialize list results for Uri 
> abfss://<containerName>@<storeAccountName>.dfs.core.windows.net 
> java.lang.IllegalArgumentException: java.net.URISyntaxException: Illegal 
> character in scheme name at index 0: \FestSpecial:         at 
> org.apache.hadoop.fs.Path.initialize(Path.java:264)         at 
> org.apache.hadoop.fs.Path.<init>(Path.java:222)         at 
> org.apache.hadoop.fs.azurebfs.services.AbfsClient.getVersionedFileStatusFromEntry(AbfsClient.java:1846)
>          at 
> org.apache.hadoop.fs.azurebfs.services.AbfsDfsClient.parseListPathResults(AbfsDfsClient.java:1373)
>          at 
> org.apache.hadoop.fs.azurebfs.services.AbfsDfsClient.listPath(AbfsDfsClient.java:347)
>          at 
> org.apache.hadoop.fs.azurebfs.AzureBlobFileSystemStore.listStatus(AzureBlobFileSystemStore.java:1278)
>          at 
> org.apache.hadoop.fs.azurebfs.AzureBlobFileSystemStore.listStatus(AzureBlobFileSystemStore.java:1242)
>          at 
> org.apache.hadoop.fs.azurebfs.AzureBlobFileSystemStore.listStatus(AzureBlobFileSystemStore.java:1224)
>          at 
> org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem.listStatus(AzureBlobFileSystem.java:713)
>          at AbfsListStatusOAuthTest.main(AbfsListStatusTest.java:45)         
> at 
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
>          at java.base/java.lang.reflect.Method.invoke(Method.java:580)        
>  at jdk.compiler/com.sun.tools.javac.launcher.Main.execute(Main.java:484)     
>     at jdk.compiler/com.sun.tools.javac.launcher.Main.run(Main.java:208)      
>    at jdk.compiler/com.sun.tools.javac.launcher.Main.main(Main.java:135) 
> Caused by: java.net.URISyntaxException: Illegal character in scheme name at 
> index 0: \FestSpecial:         
> at java.base/java.net.URI$Parser.fail(URI.java:2995)         
> at java.base/java.net.URI$Parser.checkChars(URI.java:3166)         
> at java.base/java.net.URI$Parser.checkChar(URI.java:3176)         
> at java.base/java.net.URI$Parser.parse(URI.java:3191)         
> at java.base/java.net.URI.<init>(URI.java:807)         
> at org.apache.hadoop.fs.Path.initialize(Path.java:261)         
> ... 14 more Exception in thread "main" Status code: -1 error code: null error 
> message: Parsing of Json List Response Failed in 
> DfsClient.java.lang.IllegalArgumentException: java.net.URISyntaxException: 
> Illegal character in scheme name at index 0: \FestSpecial:         at 
> org.apache.hadoop.fs.azurebfs.services.AbfsDfsClient.parseListPathResults(AbfsDfsClient.java:1390)
>          at 
> org.apache.hadoop.fs.azurebfs.services.AbfsDfsClient.listPath(AbfsDfsClient.java:347)
>          at 
> org.apache.hadoop.fs.azurebfs.AzureBlobFileSystemStore.listStatus(AzureBlobFileSystemStore.java:1278)
>          at 
> org.apache.hadoop.fs.azurebfs.AzureBlobFileSystemStore.listStatus(AzureBlobFileSystemStore.java:1242)
>          at 
> org.apache.hadoop.fs.azurebfs.AzureBlobFileSystemStore.listStatus(AzureBlobFileSystemStore.java:1224)
>          at 
> org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem.listStatus(AzureBlobFileSystem.java:713)
>          at AbfsListStatusOAuthTest.main(AbfsListStatusTest.java:45) Caused 
> by: java.lang.IllegalArgumentException: java.net.URISyntaxException: Illegal 
> character in scheme name at index 0: \FestSpecial:         at 
> org.apache.hadoop.fs.Path.initialize(Path.java:264)         at 
> org.apache.hadoop.fs.Path.<init>(Path.java:222)         at 
> org.apache.hadoop.fs.azurebfs.services.AbfsClient.getVersionedFileStatusFromEntry(AbfsClient.java:1846)
>          at 
> org.apache.hadoop.fs.azurebfs.services.AbfsDfsClient.parseListPathResults(AbfsDfsClient.java:1373)
>          at 
> org.apache.hadoop.fs.azurebfs.services.AbfsDfsClient.listPath(AbfsDfsClient.java:347)
>          at 
> org.apache.hadoop.fs.azurebfs.AzureBlobFileSystemStore.listStatus(AzureBlobFileSystemStore.java:1278)
>          at 
> org.apache.hadoop.fs.azurebfs.AzureBlobFileSystemStore.listStatus(AzureBlobFileSystemStore.java:1242)
>          at 
> org.apache.hadoop.fs.azurebfs.AzureBlobFileSystemStore.listStatus(AzureBlobFileSystemStore.java:1224)
>          at 
> org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem.listStatus(AzureBlobFileSystem.java:713)
>          at AbfsListStatusOAuthTest.main(AbfsListStatusTest.java:45)         
> at 
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
>          at java.base/java.lang.reflect.Method.invoke(Method.java:580)        
>  at jdk.compiler/com.sun.tools.javac.launcher.Main.execute(Main.java:484)     
>     at jdk.compiler/com.sun.tools.javac.launcher.Main.run(Main.java:208)      
>    at jdk.compiler/com.sun.tools.javac.launcher.Main.main(Main.java:135) 
> Caused by: java.net.URISyntaxException: Illegal character in scheme name at 
> index 0: \FestSpecial:         at 
> java.base/java.net.URI$Parser.fail(URI.java:2995)         at 
> java.base/java.net.URI$Parser.checkChars(URI.java:3166)         at 
> java.base/java.net.URI$Parser.checkChar(URI.java:3176)         at 
> java.base/java.net.URI$Parser.parse(URI.java:3191)         at 
> java.base/java.net.URI.<init>(URI.java:807)         at 
> org.apache.hadoop.fs.Path.initialize(Path.java:261)         ... 14 more
>  {code}
> I tested my script, and it worked on Linux.
> Could you please help me check it?
> I compressed all my scripts ({_}AbfsListStatusTest.java{_}) and library into 
> the ticket ({_}test_hadoop_azure.zip{_}).
> Here is the _AbfsListStatusTest.java:_
> {code:java}
> {code}
> _import org.apache.hadoop.conf.Configuration;
> import org.apache.hadoop.fs.FileStatus;
> import org.apache.hadoop.fs.FileSystem;
> import org.apache.hadoop.fs.Path;
> import java.net.URI;
> public class AbfsListStatusOAuthTest \{
>     public static void main(String[] args) throws Exception {
>         // Inputs (use env vars or hardcode)
>         String accountName   = System.getenv("ADLS_STORAGE_ACCOUNT_NAME");
>         String containerName = System.getenv("ADLS_CONTAINER_NAME");
>         String tenantId      = System.getenv("ADLS_TENANT_ID");
>         String clientId      = System.getenv("ADLS_CLIENT_ID");
>         String clientSecret  = System.getenv("ADLS_CLIENT_SECRET");
>         String dirPath = (args.length > 0) ? args[0] : "/";
>         // Use abfss for OAuth
>         String fsUri = String.format("abfss://%s@%s.dfs.core.windows.net", 
> containerName, accountName);
>         String accountFqdn = accountName + ".dfs.core.windows.net";
>         Configuration conf = new Configuration(false);
>         // Ensure ABFS impls are known
>         conf.set("fs.abfss.impl", 
> "org.apache.hadoop.fs.azurebfs.SecureAzureBlobFileSystem");
>         conf.set("fs.abfs.impl",  
> "org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem");
>         // --- OAuth configs (scoped to the account host) ---
>         conf.set("fs.azure.account.auth.type." + accountFqdn, "OAuth");
>         conf.set("fs.azure.account.oauth.provider.type." + accountFqdn,
>                 
> "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider");
>         conf.set("fs.azure.account.oauth2.client.id." + accountFqdn, 
> clientId);
>         conf.set("fs.azure.account.oauth2.client.secret." + accountFqdn, 
> clientSecret);
>         // Token endpoint (try v1 first — Hadoop ABFS commonly uses this)
>         conf.set("fs.azure.account.oauth2.client.endpoint." + accountFqdn,
>                 "https://login.microsoftonline.com/"; + tenantId + 
> "/oauth2/token");
>         // Create FS and call listStatus
>         FileSystem fs = FileSystem.get(new URI(fsUri), conf);
>         FileStatus[] statuses = fs.listStatus(new Path(dirPath));
>         System.out.println("Found " + statuses.length + " entries under " + 
> dirPath);
>         for (FileStatus st : statuses) {
>             System.out.printf("%s  isDir=%s  len=%d%n",
>                     st.getPath(), st.isDirectory(), st.getLen());
>         }
>         fs.close();
>     }
> }_ 
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to