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

Jobs with syntactically incorrect config missing the cron spec for a trigger produces NullPointerException

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      To re-produce you just need to use the https://wiki.jenkins-ci.org/display/JENKINS/GitHub+pull+request+builder+plugin and not use the "cron('H/5 * * * *')" as the documentation says.

      Then, the following stacktrace is triggered:

      Jun 23, 2016 10:35:00 AM hudson.triggers.Trigger$Cron doRun
      WARNING: Cron thread throw an exception
      java.lang.NullPointerException
          at hudson.triggers.Trigger.checkTriggers(Trigger.java:267)
          at hudson.triggers.Trigger$Cron.doRun(Trigger.java:221)
          at hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:50)
          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
          at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
          at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
          at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
          at java.lang.Thread.run(Thread.java:745)
      

      Any cron job on the instance will work because of this issue

        Attachments

          Activity

          Hide
          danielbeck Daniel Beck added a comment -

          Fixed in 2.15

          Show
          danielbeck Daniel Beck added a comment - Fixed in 2.15
          Hide
          jglick Jesse Glick added a comment -

          I would say this may not have been a defect to begin with. The plugin documentation describes the proper usage of this trigger with Job DSL. The Jenkins GUI will ensure that cron is non-null, but from a scripted client like Job DSL you are expected to define all mandatory fields. If cron is meaningfully optional in this context—some Trigger implementations do not really require it, because they have an empty run, though I think this one does—then Trigger.readResolve should set it to the empty string rather than null.

          Show
          jglick Jesse Glick added a comment - I would say this may not have been a defect to begin with. The plugin documentation describes the proper usage of this trigger with Job DSL. The Jenkins GUI will ensure that cron is non-null, but from a scripted client like Job DSL you are expected to define all mandatory fields. If cron is meaningfully optional in this context—some Trigger implementations do not really require it, because they have an empty run , though I think this one does—then Trigger.readResolve should set it to the empty string rather than null.
          Hide
          danielbeck Daniel Beck added a comment -

          Jesse Glick It's ugly – further investigation showed that the problem is that GhprbTrigger#readResolve doesn't call super.readResolve() – which would prevent the invalid trigger from being created.

          Still a valid robustness improvement IMO.

          Show
          danielbeck Daniel Beck added a comment - Jesse Glick It's ugly – further investigation showed that the problem is that GhprbTrigger#readResolve doesn't call super.readResolve() – which would prevent the invalid trigger from being created. Still a valid robustness improvement IMO.
          Hide
          scm_issue_link SCM/JIRA link daemon added a comment -

          Code changed in jenkins
          User: Felix Belzunce Arcos
          Path:
          core/src/main/java/hudson/triggers/Trigger.java
          test/src/test/java/hudson/triggers/TriggerTest.java
          http://jenkins-ci.org/commit/jenkins/4278804582b34f123414bde521bd91b009d8e353
          Log:
          JENKINS-36748 Do not process null specs in triggers (#2482)

          Show
          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Felix Belzunce Arcos Path: core/src/main/java/hudson/triggers/Trigger.java test/src/test/java/hudson/triggers/TriggerTest.java http://jenkins-ci.org/commit/jenkins/4278804582b34f123414bde521bd91b009d8e353 Log: JENKINS-36748 Do not process null specs in triggers (#2482) JENKINS-36748 Add a test case and not process null specs JENKINS-36748 Correct license and add a minor comment JENKINS-36748 Add a Waning logger when spec is null
          Hide
          oleg_nenashev Oleg Nenashev added a comment -

          Additional fix has been merged towards jenkins-2.20

          Show
          oleg_nenashev Oleg Nenashev added a comment - Additional fix has been merged towards jenkins-2.20
          Hide
          scm_issue_link SCM/JIRA link daemon added a comment -

          Code changed in jenkins
          User: Felix Belzunce Arcos
          Path:
          core/src/main/java/hudson/triggers/Trigger.java
          test/src/test/java/hudson/triggers/TriggerTest.java
          http://jenkins-ci.org/commit/jenkins/a59dd9d45f544b6464bf0574ab5a0bb12b7d7008
          Log:
          JENKINS-36748 Do not process null specs in triggers (#2482)

          (cherry picked from commit 4278804582b34f123414bde521bd91b009d8e353)

          Show
          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Felix Belzunce Arcos Path: core/src/main/java/hudson/triggers/Trigger.java test/src/test/java/hudson/triggers/TriggerTest.java http://jenkins-ci.org/commit/jenkins/a59dd9d45f544b6464bf0574ab5a0bb12b7d7008 Log: JENKINS-36748 Do not process null specs in triggers (#2482) JENKINS-36748 Add a test case and not process null specs JENKINS-36748 Correct license and add a minor comment JENKINS-36748 Add a Waning logger when spec is null (cherry picked from commit 4278804582b34f123414bde521bd91b009d8e353)

            People

            • Assignee:
              fbelzunc Félix Belzunce Arcos
              Reporter:
              fbelzunc Félix Belzunce Arcos
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: