diff --git a/src/main/java/hudson/plugins/emailext/plugins/content/BuildStatusContent.java b/src/main/java/hudson/plugins/emailext/plugins/content/BuildStatusContent.java index 82f3d10f8..cdf920267 100644 --- a/src/main/java/hudson/plugins/emailext/plugins/content/BuildStatusContent.java +++ b/src/main/java/hudson/plugins/emailext/plugins/content/BuildStatusContent.java @@ -46,8 +46,29 @@ public

, B extends AbstractBuild> String g } } else if (buildResult == Result.UNSTABLE) { B prevBuild = build.getPreviousBuild(); - if (prevBuild != null && (prevBuild.getResult() == Result.UNSTABLE)) { - return "Still Unstable"; + if (prevBuild != null) { + if (prevBuild.getResult() == Result.UNSTABLE) { + return "Still Unstable"; + } else if (prevBuild.getResult() == Result.SUCCESS) { + return "Unstable"; + } else if (prevBuild.getResult() == Result.FAILURE || + prevBuild.getResult() == Result.ABORTED || + prevBuild.getResult() == Result.NOT_BUILT) { + //iterate through previous builds + //(fail_or_aborted)*--> unstable : return still unstable + //(fail_or_aborted)*--> unstable : return unstable + B previous = prevBuild.getPreviousBuild(); + while (previous != null) { + if (previous.getResult() == Result.SUCCESS) { + return "Unstable"; + } + if (previous.getResult() == Result.UNSTABLE) { + return "Still unstable"; + } + previous = previous.getPreviousBuild(); + } + return "Unstable"; + } } else { return "Unstable"; }