-
Bug
-
Resolution: Fixed
-
Major
-
None
We're observing the following NPE, which is causing builds to spuriously fail:
18:21:55 FATAL: null
18:21:55 java.lang.NullPointerException
18:21:55 at hudson.plugins.im.tools.BuildHelper.isFix(BuildHelper.java:69)
18:21:55 at hudson.plugins.im.build_notify.SummaryOnlyBuildToChatNotifier.buildCompletionMessage(SummaryOnlyBuildToChatNotifier.java:34)
18:21:55 at hudson.plugins.im.IMPublisher.notifyChatsOnBuildEnd(IMPublisher.java:577)
18:21:55 at hudson.plugins.im.IMPublisher.notifyOnBuildEnd(IMPublisher.java:304)
18:21:55 at hudson.plugins.im.IMPublisher$1.endBuild(IMPublisher.java:718)
18:21:55 at hudson.matrix.MatrixBuild$MatrixBuildExecution.post2(MatrixBuild.java:407)
18:21:55 at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:658)
18:21:55 at hudson.model.Run.execute(Run.java:1731)
18:21:55 at hudson.matrix.MatrixBuild.run(MatrixBuild.java:306)
18:21:55 at hudson.model.ResourceController.execute(ResourceController.java:88)
18:21:55 at hudson.model.Executor.run(Executor.java:231)
18:21:55 at hudson.model.OneOffExecutor.run(OneOffExecutor.java:43)
The line reported by the tip of the stack trace would seem to be the middle return statement in the following:
@Deprecated public static boolean isFix(AbstractBuild<?, ?> build) { if (build.getResult() != Result.SUCCESS) { return false; } AbstractBuild<?, ?> previousBuild = getPreviousNonAbortedBuild(build); if (previousBuild != null) { return previousBuild.getResult().isWorseThan(Result.SUCCESS); } return false; }
The job in question is configured to allow multiple concurrent builds, at which point it seems plausible that previousBuild ends up being set to a build that is still in progress, causing getResult to return null.