Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-23315

NPE at hudson.plugins.im.tools.BuildHelper.isFix

XMLWordPrintable

      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.

            kutzi kutzi
            corsix Peter Cawley
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: