Index: Tools/GardeningServer/model/ct-step-failure.html |
diff --git a/Tools/GardeningServer/model/ct-step-failure.html b/Tools/GardeningServer/model/ct-step-failure.html |
index de5fad4470fc524800ee78aa203ce1c6c0b198f4..25ffb1871b89e6d638b367130f505f97d855c1c6 100644 |
--- a/Tools/GardeningServer/model/ct-step-failure.html |
+++ b/Tools/GardeningServer/model/ct-step-failure.html |
@@ -6,7 +6,18 @@ found in the LICENSE file. |
<script> |
function CTStepFailure(step, reason, resultsByBuilder) { |
- this.key = step + '::' + reason; |
+ this.key = step + '::' |
+ |
+ // The key needs to be unique, so disambiguate null reason |
+ // failures by their builders, but don't do regular failures |
+ // by builders because we want failures with reasons to update |
+ // the existing failure group instead of causing the group to |
+ // get recreated since throwing it away loses in app state. |
+ if (reason) |
+ this.key += reason; |
+ else |
+ this.key += Object.keys(resultsByBuilder).join('::'); |
+ |
this.step = step; |
// FIXME: Rename this to reason. |
this.testName = reason; |