)]}' { "commit": "f301e4529a09b194a9e115894ec09d8fd1449105", "tree": "5d38fd08e28d78b2a16cca37dc41bae87d22548d", "parents": [ "6117cd3cd25b84ac530e142a3db026168424bd72" ], "author": { "name": "Patrick Hiesel", "email": "hiesel@google.com", "time": "Wed Jul 21 14:19:38 2021 +0200" }, "committer": { "name": "Patrick Hiesel", "email": "hiesel@google.com", "time": "Thu Jul 29 10:55:20 2021 +0200" }, "message": "LabelTypes: Return an Optional to make clear that value can be absent\n\nWhen asking LabelTypes for a LabelType by name or ID, that LabelType\nis only returned if the project has a label with name or ID\nconfigured.\n\nMost places in Gerrit correctly handled this implicit behavior, but\nnew code for SubmitRequirements (ChangeField:getMaxMinAnyLabels) did\nnot which made it fail with a NullPointerException in case a label\nthat was voted on the change was removed from project.config\nsince the vote was granted.\n\nIn this commit, we fix the NPE by reworking LabelTypes to return\nan Optional which also makes it so that this programmer error\ncan\u0027t occur in the future.\n\nChange-Id: I9e0f3a940ce21ef1e46b3dbb1675267ae1d76459\n", "tree_diff": [ { "type": "modify", "old_id": "1c38c59ec2b609f2afcc3608b2d723f4e5881111", "old_mode": 33188, "old_path": "java/com/google/gerrit/entities/LabelTypes.java", "new_id": "55a99762871dfe3cff8f14f14170de2fbdcb6d7d", "new_mode": 33188, "new_path": "java/com/google/gerrit/entities/LabelTypes.java" }, { "type": "modify", "old_id": "d60bc8fe75e5d7c3d33f604e59d5e89be002f36b", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/PatchSetUtil.java", "new_id": "326ddf4a524e4b7db1b20ae7d687ea6afffe22e1", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/PatchSetUtil.java" }, { "type": "modify", "old_id": "1efbd37a566d96c5222d230e4f6521b7876a5f0f", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/approval/ApprovalInference.java", "new_id": "8d409e5eff20d592cd51d566133bf699c3771cd7", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/approval/ApprovalInference.java" }, { "type": "modify", "old_id": "b1e85e9b5c3756d82c7700525bf4b2e9ab9daf97", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/approval/ApprovalsUtil.java", "new_id": "a1cdd994ba230edae913f8aa7437c326a10edf8d", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/approval/ApprovalsUtil.java" }, { "type": "modify", "old_id": "30343d41d36849eaf879e447e17089c1448635ee", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/change/LabelNormalizer.java", "new_id": "b5527d714bf4f42d1e9febeffd782d2e66b8124e", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/change/LabelNormalizer.java" }, { "type": "modify", "old_id": "acff03c82f65d22926e8e301ca3a033252b035db", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/change/LabelsJson.java", "new_id": "5ce121b28b637ca7a4b555a3c3af3b2717344380", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/change/LabelsJson.java" }, { "type": "modify", "old_id": "d5b74a803c963b5b4e5c6ee5d7bbeb90e9cafa6b", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/change/ReviewerJson.java", "new_id": "6189708d9dc338a482fa64c89bd68b3e9d65b9f4", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/change/ReviewerJson.java" }, { "type": "modify", "old_id": "3f988a3ea2971a1c7754430ded37f033bac0757d", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/events/EventFactory.java", "new_id": "1bb694ab25662e303ea8c7972e61ddecbd70c1a5", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/events/EventFactory.java" }, { "type": "modify", "old_id": "439f53ebac1668ad522d429ae0b8e3db71d30c14", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/events/StreamEventsApiListener.java", "new_id": "edd192804191f3960f17f8e60bd55fb85b6444a7", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/events/StreamEventsApiListener.java" }, { "type": "modify", "old_id": "1da14f8d6a82d2779c2927e046643f0581a0e484", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/git/MergeUtil.java", "new_id": "a5ea24d1da5090ae9c94697d691555d46e1b9858", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/git/MergeUtil.java" }, { "type": "modify", "old_id": "f00b48eb93982bbaf42d1b705caf59c6a27bf0c9", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/git/receive/ReplaceOp.java", "new_id": "b2a31b90ceded4b6e691b803cb569348b2c720d6", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/git/receive/ReplaceOp.java" }, { "type": "modify", "old_id": "810cd4d9439479b9033c34f9879311e036caee4d", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/index/change/ChangeField.java", "new_id": "1ee12feb6de2e0fdd09da7622ea9450aca3e54ac", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/index/change/ChangeField.java" }, { "type": "modify", "old_id": "6af2345654013ab155299e23d4f6c5c9836ea8a1", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/mail/send/MergedSender.java", "new_id": "56528df1a13c57ed2f0d0bd934ae71047abcc9db", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/mail/send/MergedSender.java" }, { "type": "modify", "old_id": "e33b261287a1adee59040dbb55c385037a04eb7e", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/patch/SubmitWithStickyApprovalDiff.java", "new_id": "62cfa4701007e56fac963cb85524ae56842e8fc2", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/patch/SubmitWithStickyApprovalDiff.java" }, { "type": "modify", "old_id": "2924e6ec07301fd3f8375f47ade14c06b2ce5fed", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/query/approval/MagicValuePredicate.java", "new_id": "326620d1009062092c62359215c90fae33c99512", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/query/approval/MagicValuePredicate.java" }, { "type": "modify", "old_id": "30d5e2f9195fb16000d599d01d74b0cbed24b2d4", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/query/change/EqualsLabelPredicate.java", "new_id": "ade615c88c32b6778419f631fbd42bda124d5741", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/query/change/EqualsLabelPredicate.java" }, { "type": "modify", "old_id": "e3c58e4777fea47e1df240632492c58e83967078", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/query/change/MagicLabelPredicate.java", "new_id": "2c5632299883b2bea01b766951d98eb46bf9f3c2", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/query/change/MagicLabelPredicate.java" }, { "type": "modify", "old_id": "84424a87cc6cd7a4a9372180dccc95150184fcde", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/restapi/change/DeleteVote.java", "new_id": "2c358d06aa299cc7b2d1b6187287eb7e33512c2e", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/restapi/change/DeleteVote.java" }, { "type": "modify", "old_id": "926397191cc326e1fad436f431bcb5d15527360f", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/restapi/change/Move.java", "new_id": "8c218417e8d763a610ba9a4c1e46b9b5aff6a901", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/restapi/change/Move.java" }, { "type": "modify", "old_id": "6816361141417afc90d636a0cd3536d3664d280a", "old_mode": 33188, "old_path": "java/com/google/gerrit/server/restapi/change/PostReview.java", "new_id": "4dbb6ee233e0886b7465082d36af353d79741214", "new_mode": 33188, "new_path": "java/com/google/gerrit/server/restapi/change/PostReview.java" }, { "type": "modify", "old_id": "5ee292ff554c3fdfea613e460fa4d459b3d8609e", "old_mode": 33188, "old_path": "java/gerrit/PRED__load_commit_labels_1.java", "new_id": "9a656b85fb6bfe9fc6081fccd6cdc2015f1c23a7", "new_mode": 33188, "new_path": "java/gerrit/PRED__load_commit_labels_1.java" }, { "type": "modify", "old_id": "fc6b4122f547a052218c46f3c5c0ed98fe99ebc1", "old_mode": 33188, "old_path": "javatests/com/google/gerrit/server/schema/SchemaCreatorImplTest.java", "new_id": "9cba3629f6b5a99ee1fa1b1062d73738d9f69aa9", "new_mode": 33188, "new_path": "javatests/com/google/gerrit/server/schema/SchemaCreatorImplTest.java" }, { "type": "modify", "old_id": "35e6449a517691a880c94e7467bc07360f8e6666", "old_mode": 57344, "old_path": "plugins/reviewnotes", "new_id": "a28ae590486934690e4e0a95d7eb75f8b60644a6", "new_mode": 57344, "new_path": "plugins/reviewnotes" } ] }