diff options
author | 2015-09-10 20:35:21 +0000 | |
---|---|---|
committer | 2015-09-11 09:45:35 +0000 | |
commit | 7ad99cb9061b8663235bffb4590ee0f9bd9c5820 (patch) | |
tree | 6483ccb3da5ff2e10082ed6623c834a1d9702ff5 /src/main/java/com/google/devtools/build/skyframe/ReverseDepsUtil.java | |
parent | 89312fbebfdab4c4ab977063782237cd8369a8c7 (diff) |
Strictly enforce reverse deps removals.
Now that we don't clean the graph during catastrophes, we should be crashing hard in these cases.
--
MOS_MIGRATED_REVID=102785226
Diffstat (limited to 'src/main/java/com/google/devtools/build/skyframe/ReverseDepsUtil.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/skyframe/ReverseDepsUtil.java | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/skyframe/ReverseDepsUtil.java b/src/main/java/com/google/devtools/build/skyframe/ReverseDepsUtil.java index 26f1136af9..807aa8c440 100644 --- a/src/main/java/com/google/devtools/build/skyframe/ReverseDepsUtil.java +++ b/src/main/java/com/google/devtools/build/skyframe/ReverseDepsUtil.java @@ -106,23 +106,29 @@ public abstract class ReverseDepsUtil<T> { } } + boolean reverseDepsIsEmpty(T container) { + return !isSingleReverseDep(container) + && ((List<SkyKey>) getReverseDepsObject(container)).isEmpty(); + } + /** * See {@code addReverseDeps} method. */ void removeReverseDep(T container, SkyKey reverseDep) { if (isSingleReverseDep(container)) { // This removal is cheap so let's do it and not keep it in reverseDepsToRemove. - // !equals should only happen in case of catastrophe. - if (getReverseDepsObject(container).equals(reverseDep)) { + Preconditions.checkState( + getReverseDepsObject(container).equals(reverseDep), + "toRemove: %s container: %s", + reverseDep, + container); overwriteReverseDepsList(container, ImmutableList.<SkyKey>of()); - } return; } @SuppressWarnings("unchecked") List<SkyKey> reverseDepsAsList = (List<SkyKey>) getReverseDepsObject(container); - if (reverseDepsAsList.isEmpty()) { - return; - } + Preconditions.checkState( + !reverseDepsAsList.isEmpty(), "toRemove: %s container: %s", reverseDep, container); List<SkyKey> reverseDepsToRemove = getReverseDepsToRemove(container); if (reverseDepsToRemove == null) { reverseDepsToRemove = Lists.newArrayListWithExpectedSize(1); |