yangdong2398 opened a new pull request, #8823: URL: https://github.com/apache/hadoop/pull/8823
### Description of PR JIRA: https://issues.apache.org/jira/browse/HADOOP-20021 Follow-up to HDFS-11161 (hadoop-bos), found while verifying the module with the `hadoop fs` CLI and the contract suite on JDK 17. - Upgrade `bce-java-sdk` 0.10.330 -> 0.10.332. 0.10.330 throws `NullPointerException` on `hadoop fs -ls bos://bucket/` because the list response has no `owner`; 0.10.332 guards it. - Hierarchy (namespace) buckets: - `rename`: follow the FileSystem contract when the destination is an existing directory, and refuse to rename into its own descendant. - `create`: throw `ParentNotDirectoryException` when an ancestor is a file. - Map HTTP 400 `InvalidArgument` to `BosException` instead of `SessionTokenExpireException`; the latter was retried by the retry policy and caused ~150s timeouts. - Packaging: stop bundling guava, httpclient, httpcore and commons-codec in the shaded jar and use the ones shipped with Hadoop (jar ~14MB -> ~9.4MB). `httpcore-nio` and `httpasyncclient` are still bundled: the SDK's `BceHttpClient` needs them at class load time even with async put disabled, and Hadoop does not ship them. - Update `LICENSE-binary` (SDK version, `httpcore-nio`, `httpasyncclient`). ### How was this patch tested? JDK 17, endpoint `http://bj.bcebos.com`, run against real BOS with credentials from environment variables (`EnvironmentVariableCredentialsProvider`): - Contract suite on both a flat bucket and a hierarchy bucket: 140 tests, 0 failures, 0 errors, 31 skipped (append, concat, unbuffer, setTimes, rootdir, and 2 in create). - `hadoop fs` CLI on both buckets: `mkdir -p`, `put`, `cat`, `mv`, `ls` (including bucket root), `rm -r`, `-checksum`. - `mvn checkstyle:check` (0 violations), `javadoc:javadoc` and `spotbugs:check` (0 bugs) on `hadoop-bos`. Limitations: the CLI check used a Maven-resolved classpath, not a built distribution tarball. Since guava/httpclient now come from Hadoop, hadoop-bos needs `hadoop-common` (not only `hadoop-client-api`) on the classpath. ### For code changes: - [x] Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')? - [x] Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation? - [x] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under [ASF 2.0](http://www.apache.org/legal/resolved.html#category-a)? - [x] If applicable, have you updated the `LICENSE`, `LICENSE-binary`, `NOTICE-binary` files? ### AI Tooling - [x] The PR includes the phrase "Contains content generated by Claude Code" where Claude Code is the name of the AI tool used. - [x] My use of AI contributions follows the ASF legal policy https://www.apache.org/legal/generative-tooling.html Contains content generated by Claude Code. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
