)]}'
{
  "commit": "36879f46f53a42ce48361e0283272aebcd1e09b7",
  "tree": "c7a278d764b72d78d0c7104f82f77b64e42aa738",
  "parents": [
    "bd271b7d7b6399b27cb152f9ad69072bce55c000"
  ],
  "author": {
    "name": "Ted Kaplan",
    "email": "tkaplan@roku.com",
    "time": "Thu Sep 10 09:39:06 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Sep 10 17:39:06 2026 +0100"
  },
  "message": "fix: don\u0027t fail resolution when an artifact has no sources jar (#1614)\n\nWhen fetch_sources \u003d True and an artifact publishes a main jar but no\nsources jar (for example the empty com.google.guava:listenablefuture jar\nthat Guava depends on), the Maven and Gradle resolvers\u0027 shared download\nphase threw UriNotFoundException instead of treating the sources jar as\nabsent, failing the whole resolution.\n\nDownloader.download now returns null for a missing sources/javadoc jar so\nthe caller can skip it, matching the `if (sdm !\u003d null)` guard already in\nAbstractMain.getDependencyInfos.\n\nAdds a DownloaderTest unit reproducer plus end-to-end guava installs\nexercised via both the Maven and Gradle resolvers.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c3e1bbfff30a759dcce0ed7be42727e858630123",
      "old_mode": 33188,
      "old_path": "MODULE.bazel",
      "new_id": "f9dd02bcddeb717a1763849ca426e43ef1b6097f",
      "new_mode": 33188,
      "new_path": "MODULE.bazel"
    },
    {
      "type": "modify",
      "old_id": "d28e89cac47f48fc3f806908d0c079a8d53c299f",
      "old_mode": 33188,
      "old_path": "private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/remote/Downloader.java",
      "new_id": "4b3cc5922bc5d0ba0506d8c51e723f65174d1f36",
      "new_mode": 33188,
      "new_path": "private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/remote/Downloader.java"
    },
    {
      "type": "modify",
      "old_id": "26a624db91d7e752fc149f46e5bc381e4a89acb4",
      "old_mode": 33261,
      "old_path": "tests/bazel_run_tests.sh",
      "new_id": "655edef7efcbd1fe1e5c03d92556c69b3a6dfe88",
      "new_mode": 33261,
      "new_path": "tests/bazel_run_tests.sh"
    },
    {
      "type": "modify",
      "old_id": "6eb448307f415906087343f1214ca66adcbac4d9",
      "old_mode": 33188,
      "old_path": "tests/com/github/bazelbuild/rules_jvm_external/resolver/maven/DownloaderTest.java",
      "new_id": "81f943cc4ccc7e08c80f3d6bde3a3dfc3c1f2b1b",
      "new_mode": 33188,
      "new_path": "tests/com/github/bazelbuild/rules_jvm_external/resolver/maven/DownloaderTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2a4a92abdffe154a15d30a4f4cf0e4429cb907f2",
      "new_mode": 33188,
      "new_path": "tests/custom_maven_install/gradle_missing_source_jar_install.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2a4a92abdffe154a15d30a4f4cf0e4429cb907f2",
      "new_mode": 33188,
      "new_path": "tests/custom_maven_install/maven_missing_source_jar_install.json"
    },
    {
      "type": "modify",
      "old_id": "b7298db022f87c72f43293884eac7d831df25fd7",
      "old_mode": 33188,
      "old_path": "tests/unit/build_tests/BUILD",
      "new_id": "34a07fc94a16bd14f5700f5b9da41f2eb4410af0",
      "new_mode": 33188,
      "new_path": "tests/unit/build_tests/BUILD"
    }
  ]
}
