bazel-contrib / bazel-contrib/rules_jvm_external

java_export fails with vague message for incorrect credentials to sonatype

Open
#504 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.