)]}'
{
  "commit": "3c04dc2353d39618371ffa3dc76df3facfcacb44",
  "tree": "704c23b3682d576f4b6509140d0d4c155b554955",
  "parents": [
    "2161e061cedb0944c144693c2d3f5115d3c5e39f"
  ],
  "author": {
    "name": "twerth CA",
    "email": "twerth@google.com",
    "time": "Thu Aug 27 11:03:56 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Aug 27 11:05:18 2026 -0700"
  },
  "message": "Fix crash when --package_path contains only non-existent directories\n\nWhen `--package_path` is set to directories that do not exist (e.g. `--package_path\u003d/notadir`), `PathPackageLocator` previously skipped all missing entries and returned an instance with an empty list of path entries. Subsequent subsystems expecting at least one package path root (such as Skyfocus, execution tooling, and external package helpers) crashed with unhandled runtime exceptions (`NoSuchElementException` or `IndexOutOfBoundsException`).\n\nValidation now ensures `resolvedPaths` is not empty during package locator creation. If no directories exist on disk, Bazel fails fast with an `AbruptExitException` (`FailureDetails.PackageOptions.Code.PACKAGE_PATH_INVALID`, exit code 2) and reports a descriptive error:\n```\nERROR: None of the directories specified in --package_path \u0027/notadir\u0027 exist\n```\n\nEarly initialization errors during `workspace.initCommand(...)` are caught and surfaced cleanly by `BlazeCommandDispatcher`.\n\nFixes https://github.com/bazelbuild/bazel/issues/17774\n\nPiperOrigin-RevId: 972049409\nChange-Id: I311bdc07b65b2cb9912312d81dfd7dc6e8309692\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "21bdc9f50db69989a685229dfa4d8ce1180f8338",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/pkgcache/PathPackageLocator.java",
      "new_id": "52bec8a0c0742a8f9cdf83e83444aefc70b431ff",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/pkgcache/PathPackageLocator.java"
    },
    {
      "type": "modify",
      "old_id": "c1be3c27bfb1cdb303716b511989a83168772063",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java",
      "new_id": "b7692a6d3181f9e7c0be24642640638316c1faef",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java"
    },
    {
      "type": "modify",
      "old_id": "21bb26d10a459e6ca6f7fe5b3368faa53a9a1c1d",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/runtime/BlazeWorkspace.java",
      "new_id": "0f8e02c8b8c360279cbc253b6b8545f55294e595",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/runtime/BlazeWorkspace.java"
    },
    {
      "type": "modify",
      "old_id": "a8b81be02126c5eb72e035c8836607ae17453e49",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java",
      "new_id": "5582705be72899720bcd5236ae065117aab21c97",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java"
    },
    {
      "type": "modify",
      "old_id": "620008431c90686b0b2e107945e66a4759731c34",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java",
      "new_id": "3ba24a4e3f5199621d614076e7e8633e1a330105",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java"
    },
    {
      "type": "modify",
      "old_id": "771057cdaf49e0d5afd03362bb21ba60d0bbed50",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/pkgcache/BUILD",
      "new_id": "d5060743ff4b4a5108c93becb02cd12f2abb65cf",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/pkgcache/BUILD"
    },
    {
      "type": "modify",
      "old_id": "cb66be8b458b76cb9de4822b113f9da26d01ffbb",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/pkgcache/BuildFileModificationTest.java",
      "new_id": "0370758e2a56c7e22d08ccb8df7feb14137912e7",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/pkgcache/BuildFileModificationTest.java"
    },
    {
      "type": "modify",
      "old_id": "2e176f44a8b8a3fdaf135b0697f760c603b70b7c",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java",
      "new_id": "2139143c49a66b39c0d131b09f3bf4c847edba2a",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java"
    },
    {
      "type": "modify",
      "old_id": "4e29d5c16d312856396fc76471df286f4aae886a",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/pkgcache/PackageLoadingTest.java",
      "new_id": "08adc1540ded43779285c46925a0df92c451a1ee",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/pkgcache/PackageLoadingTest.java"
    },
    {
      "type": "modify",
      "old_id": "d05e7b6500af5a4936be8263e70e848f0f77de1c",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/pkgcache/PathPackageLocatorTest.java",
      "new_id": "8ce491f98ff61c0f7d808ab47f0fb20550924b43",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/pkgcache/PathPackageLocatorTest.java"
    },
    {
      "type": "modify",
      "old_id": "1a3255e89f8c3cf224283d9802f7374292f6ac7f",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/query2/testutil/SkyframeQueryHelper.java",
      "new_id": "590c94759bdca18dc2982fe5410464313b3b03f4",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/query2/testutil/SkyframeQueryHelper.java"
    }
  ]
}
