bazel-contrib / bazel-contrib/rules_jvm_external
java_export fails with vague message for incorrect credentials to sonatype
- Dominant language
- Java
- Stars
- 373
- Forks
- 301
- Avg merge
- 7d 17h
- Merged PRs (30d)
- 3
Description
To reproduce:
```
$ git clone git@github.com:bazelbuild/rules_jvm_external.git
$ cd rules_jvm_external/examples/java-export/
$ bazel run //:example-export.publish --define maven_repo=https://oss.sonatype.org/content/repositories/snapshots/ --define maven_user=xxx --define maven_password=yyy
INFO: Analyzed target //:example-export.publish (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
Target //:example-export.publish up-to-date:
bazel-bin/example-export.publish-publisher
INFO: Elapsed time: 0.244s, Critical Path: 0.00s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action
INFO: Build completed successfully, 1 total action
Uploading com.example:bazel-example:0.0.1 to https://oss.sonatype.org/content/repositories/snapshots/
Dec 24, 2020 12:49:50 PM rules.jvm.external.maven.MavenPublisher lambda$httpUpload$1
INFO: Uploading to https://oss.sonatype.org/content/repositories/snapshots/com/example/bazel-example/0.0.1/bazel-example-0.0.1.pom
Dec 24, 2020 12:49:51 PM rules.jvm.external.maven.MavenPublisher lambda$httpUpload$1
INFO: Uploading to https://oss.sonatype.org/content/repositories/snapshots/com/example/bazel-example/0.0.1/bazel-example-0.0.1.pom.md5
Dec 24, 2020 12:49:51 PM rules.jvm.external.maven.MavenPublisher lambda$httpUpload$1
INFO: Uploading to https://oss.sonatype.org/content/repositories/snapshots/com/example/bazel-example/0.0.1/bazel-example-0.0.1.pom.sha1
Dec 24, 2020 12:49:51 PM rules.jvm.external.maven.MavenPublisher lambda$httpUpload$1
INFO: Uploading to https://oss.sonatype.org/content/repositories/snapshots/com/example/bazel-example/0.0.1/bazel-example-0.0.1.jar
Dec 24, 2020 12:49:51 PM rules.jvm.external.maven.MavenPublisher lambda$httpUpload$1
INFO: Uploading to https://oss.sonatype.org/content/repositories/snapshots/com/example/bazel-example/0.0.1/bazel-example-0.0.1.jar.md5
Dec 24, 2020 12:49:52 PM rules.jvm.external.maven.MavenPublisher lambda$httpUpload$1
INFO: Uploading to https://oss.sonatype.org/content/repositories/snapshots/com/example/bazel-example/0.0.1/bazel-example-0.0.1.jar.sha1
Dec 24, 2020 12:49:52 PM rules.jvm.external.maven.MavenPublisher lambda$httpUpload$1
INFO: Uploading to https://oss.sonatype.org/content/repositories/snapshots/com/example/bazel-example/0.0.1/bazel-example-0.0.1-sources.jar
Dec 24, 2020 12:49:52 PM rules.jvm.external.maven.MavenPublisher lambda$httpUpload$1
INFO: Uploading to https://oss.sonatype.org/content/repositories/snapshots/com/example/bazel-example/0.0.1/bazel-example-0.0.1-sources.jar.md5
Dec 24, 2020 12:49:52 PM rules.jvm.external.maven.MavenPublisher lambda$httpUpload$1
INFO: Uploading to https://oss.sonatype.org/content/repositories/snapshots/com/example/bazel-example/0.0.1/bazel-example-0.0.1-sources.jar.sha1
Dec 24, 2020 12:49:52 PM rules.jvm.external.maven.MavenPublisher lambda$httpUpload$1
INFO: Uploading to https://oss.sonatype.org/content/repositories/snapshots/com/example/bazel-example/0.0.1/bazel-example-0.0.1-javadoc.jar
Dec 24, 2020 12:49:53 PM rules.jvm.external.maven.MavenPublisher lambda$httpUpload$1
INFO: Uploading to https://oss.sonatype.org/content/repositories/snapshots/com/example/bazel-example/0.0.1/bazel-example-0.0.1-javadoc.jar.md5
Dec 24, 2020 12:49:53 PM rules.jvm.external.maven.MavenPublisher lambda$httpUpload$1
INFO: Uploading to https://oss.sonatype.org/content/repositories/snapshots/com/example/bazel-example/0.0.1/bazel-example-0.0.1-javadoc.jar.sha1
Exception in thread "main" java.util.concurrent.ExecutionException: java.lang.RuntimeException: BASIC realm="Sonatype Nexus Repository Manager"
at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2022)
at rules.jvm.external.maven.MavenPublisher.main(MavenPublisher.java:90)
Caused by: java.lang.RuntimeException: BASIC realm="Sonatype Nexus Repository Manager"
at rules.jvm.external.maven.MavenPublisher.lambda$httpUpload$1(MavenPublisher.java:205)
at rules.jvm.external.maven.MavenPublisher.lambda$upload$0(MavenPublisher.java:173)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
```
name/pw are wrong obviously and that's the issue on upload, but message issues around "BASIC realm" is vague.
@shs96c asks to be tagged.
Contributor guide
Research direction
Start with MavenPublisher.java at the stack-trace locations around lines 90 and 205, then reproduce the documented java-export publish command with invalid credentials. Trace how the upload failure is reported and make the resulting error identify the authentication problem rather than only the BASIC realm; verify the command reports the clearer message.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100