)]}'
{
  "commit": "26be41a5f4ef2b3812665b36f136d2e44ae12688",
  "tree": "817cc7c546e54e273870542858207fbe0204000c",
  "parents": [
    "dbcf260e0318ef553d606b0510832cfe8a5b14eb"
  ],
  "author": {
    "name": "Googler",
    "email": "ilist@google.com",
    "time": "Thu Oct 06 09:54:44 2022 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Oct 06 09:56:11 2022 -0700"
  },
  "message": "Fix a NPE in compatible target skipping\n\nUnder a complex set of conditions a NPE is triggered. It was caused by IncompatibleTargetChecker constructing a RuleConfiguredTarget without adding a VisibilityProviderImpl to it. All other locations where RuleConfiguredTarget is constructed add the provider, namely RuleConfiguredTargetBuilder.\n\nWhen the set of conditions is met, code path checking the visibility retrieves the provider without checking if it\u0027s available.\n\nThe data in VisibilityProvider is duplicated with the data already in RuleConfiguredTarget. Fix by removing the provider and retrieving the data directly.\n\nAdd the regression test with description how it happens.\n\nPiperOrigin-RevId: 479339612\nChange-Id: I8e29a9882de87d884f53e104ae14d6a126a8096b\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7ca795ec6f2c2a42a29a6308e5bd05ab0a2b851c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java",
      "new_id": "8a6a9728894f70e4a9efeae2b377c49cae8d5cd0",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java"
    },
    {
      "type": "modify",
      "old_id": "bfcbacd861c5655dd28e70e80f57395635ed34fb",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java",
      "new_id": "9e173504b5a22c352b6c376f780fbb82d7a28057",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java"
    },
    {
      "type": "modify",
      "old_id": "055751093247355535783926047cd97067351afb",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/MergedConfiguredTarget.java",
      "new_id": "b4d9d1802567ae112b5cde9c87312065876df097",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/MergedConfiguredTarget.java"
    },
    {
      "type": "modify",
      "old_id": "c52131d3a536a4997330206ec4bef5769244ac94",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java",
      "new_id": "7726bcb245d8977337b71757c019495e1d4b5c67",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java"
    },
    {
      "type": "modify",
      "old_id": "63f1271e6fb255f3e78d8638a3353232a898df69",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skyframe/ToolchainsForTargetsTest.java",
      "new_id": "888fde941e7135c4e38a1f595d6e451394de914d",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skyframe/ToolchainsForTargetsTest.java"
    }
  ]
}
