)]}'
{
  "commit": "21b759ddf52f6f752637420e710b64eb070c1e1c",
  "tree": "6b5947fca65b0d9cc757b57ee84de1f463cce545",
  "parents": [
    "b3b3e8bb7320ef76dfec97f66284e0a9f7eda2d2"
  ],
  "author": {
    "name": "Googler",
    "email": "noreply@google.com",
    "time": "Wed Apr 03 10:57:09 2019 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Apr 03 10:58:58 2019 -0700"
  },
  "message": "Fix setting default values for Pattern options\n\nOptions in bazel can have default values assigned to them, which are validated\nagainst allowed values. We have a bug where restricting the possible values of\na Pattern will break the default value. It happens because we create\nPattern objects, which use the default (by reference) implementation of equals.\nThis violates the contract used by bazel converters that options created from\nthe same representation will return true if compared using corresponding equals\nmethod.\n\nCreate a wrapper around Pattern which implements proper equals (compliant with\nthe contract). Also, specify the contract in Converter to explicitly state the\nassumptions and add tests covering the RegexPatternConverter and the\nproblematic scenario from the bug.\n\nRELNOTES: none.\nPiperOrigin-RevId: 241764234\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fee3fcd9d25f87f649282604e623fdf7005a29c8",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/BUILD",
      "new_id": "119de1bc687e0e697f7905062cec215621fa6610",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/BUILD"
    },
    {
      "type": "modify",
      "old_id": "ff37fb09f5dd167a4487339a2aba5d86d3651ade",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/config/ExecutionInfoModifier.java",
      "new_id": "3777ffcd67ce6363175ae261e9518d217ef40961",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/config/ExecutionInfoModifier.java"
    },
    {
      "type": "modify",
      "old_id": "79845b2bd03d9d50b81bf51a5adbc6f7e7686fb0",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/buildtool/BuildRequestOptions.java",
      "new_id": "68f3197d9c4d92aca8edc14b0ef8d17f8efe6bb2",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/buildtool/BuildRequestOptions.java"
    },
    {
      "type": "modify",
      "old_id": "10f0f6a81ee651f6f25dcf84d90d4ee12616d297",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java",
      "new_id": "c00274d26ab98c2b22aa1bf0f54c34e0af9a0415",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java"
    },
    {
      "type": "modify",
      "old_id": "d1eabcc1f30aafbc0c365fd186b179feb0956e3e",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/exec/local/LocalExecutionOptions.java",
      "new_id": "32e1cee2579ee32336fda852f2c540f2284cfb1b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/exec/local/LocalExecutionOptions.java"
    },
    {
      "type": "modify",
      "old_id": "eb92c7c83dfc554ea2927b7a38833bd84e18d769",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/exec/local/LocalSpawnRunner.java",
      "new_id": "4426ad4c5af7da942303f48141a03929924abdf4",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/exec/local/LocalSpawnRunner.java"
    },
    {
      "type": "modify",
      "old_id": "8590ea43c7ffb9708c02ec9d6fdb5c16de662c74",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/runtime/commands/ProfileCommand.java",
      "new_id": "5a3330a7576da92e98b94a857010184f39396b1e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/runtime/commands/ProfileCommand.java"
    },
    {
      "type": "modify",
      "old_id": "f055d4b020220ce5d8cba54f280368288fc667ae",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/common/options/BUILD",
      "new_id": "5936b2c4c603628c3f7d1d76f7af321b0e5351c1",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/common/options/BUILD"
    },
    {
      "type": "modify",
      "old_id": "9b3c13b73e4570e31c5193a7da367b796229e9a1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/common/options/Converter.java",
      "new_id": "f3e6ddd65f4ba27d5e5768549be4b37b2c3239cd",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/common/options/Converter.java"
    },
    {
      "type": "modify",
      "old_id": "6874c7e7a6d6eb22d71911ff17901c9e09fa13a9",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/common/options/Converters.java",
      "new_id": "ef62c9b472e014b4a4a1552d7a162dbeabdd62a3",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/common/options/Converters.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bdf6313a0fea0104fb7d14277b9c228c432cd3dd",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/common/options/RegexPatternOption.java"
    },
    {
      "type": "modify",
      "old_id": "4d1f118e4db50b7316cf857511a24b2527bd83ae",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/exec/local/LocalSpawnRunnerTest.java",
      "new_id": "3a854280432f9885981a36b5eecae8f250ec849b",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/exec/local/LocalSpawnRunnerTest.java"
    },
    {
      "type": "modify",
      "old_id": "76d843b72e54f7dc7344774ba5396bfbf2328502",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/common/options/BUILD",
      "new_id": "40fe246307ae08655d61a97b03c21b48af628ea9",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/common/options/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7d86514bf2b953bdc5888a38461d81bb39a63c32",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/common/options/RegexPatternConverterTest.java"
    }
  ]
}
