jenkinsci / jenkinsci/gerrit-trigger-plugin
[JENKINS-34514] NPE if job is marked as parameterized with no parameters
- Dominant language
- Java
- Stars
- 226
- Forks
- 289
- PR merge metrics
- No merged PRs in 30d
Description
If a build is marked as "This build is parameterized" but has no defined parameters, the Gerrit Trigger cannot trigger it. An NPE gets logged:
```
Apr 29, 2016 12:22:28 PM com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.ToGerritRunListener onTriggered
INFO: Project [Some_Build_Project] triggered by Gerrit: [PatchsetCreated: Change-Id for #43226: Idde0e7ec2fa298b9f5fb9ee59f63af390699fedb PatchSet: 1]
Apr 29, 2016 12:22:28 PM com.sonymobile.tools.gerrit.gerritevents.GerritHandler notifyListeners
SEVERE: When notifying listener: com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.EventListener@19fdac1f about event: PatchsetCreated: Change-Id for #43226: Idde0e7ec2fa298b9f5fb9ee59f63af390699fedb Pa
tchSet: 1
Apr 29, 2016 12:22:28 PM com.sonymobile.tools.gerrit.gerritevents.GerritHandler notifyListeners
SEVERE: Notify-error:
java.lang.NullPointerException
at com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.EventListener.getDefaultParametersValues(EventListener.java:278)
at com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.EventListener.createParameters(EventListener.java:252)
at com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.EventListener.schedule(EventListener.java:182)
at com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.EventListener.schedule(EventListener.java:158)
at com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.EventListener.gerritEvent(EventListener.java:100)
at com.sonymobile.tools.gerrit.gerritevents.GerritHandler.notifyListener(GerritHandler.java:328)
at com.sonymobile.tools.gerrit.gerritevents.GerritHandler.notifyListeners(GerritHandler.java:296)
at com.sonyericsson.hudson.plugins.gerrit.trigger.JenkinsAwareGerritHandler.notifyListeners(JenkinsAwareGerritHandler.java:77)
at com.sonymobile.tools.gerrit.gerritevents.workers.AbstractGerritEventWork.perform(AbstractGerritEventWork.java:46)
at com.sonymobile.tools.gerrit.gerritevents.workers.AbstractJsonObjectWork.perform(AbstractJsonObjectWork.java:77)
at com.sonymobile.tools.gerrit.gerritevents.workers.StreamEventsStringWork.perform(StreamEventsStringWork.java:67)
at com.sonymobile.tools.gerrit.gerritevents.workers.EventThread.run(EventThread.java:66)
at com.sonyericsson.hudson.plugins.gerrit.trigger.SystemEventThread.run(SystemEventThread.java:66)
```
Even after fixing the job (by deselecting the parameters option), manual trigger via 'query and trigger Gerrit patchsets' doesn't work for the specific patchset generating the NPE. Nothing happens. A new patchset is required to get the trigger to work.
---
Originally reported by wsaxon, imported from: NPE if job is marked as parameterized with no parameters
rsandell
Raw content of original issue
If a build is marked as "This build is parameterized" but has no defined parameters, the Gerrit Trigger cannot trigger it. An NPE gets logged:
Apr 29, 2016 12:22:28 PM com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.ToGerritRunListener onTriggered
INFO: Project [Some_Build_Project] triggered by Gerrit: [PatchsetCreated: Change-Id for #43226: Idde0e7ec2fa298b9f5fb9ee59f63af390699fedb PatchSet: 1]
Apr 29, 2016 12:22:28 PM com.sonymobile.tools.gerrit.gerritevents.GerritHandler notifyListeners
SEVERE: When notifying listener: com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.EventListener@19fdac1f about event: PatchsetCreated: Change-Id for #43226: Idde0e7ec2fa298b9f5fb9ee59f63af390699fedb Pa
tchSet: 1
Apr 29, 2016 12:22:28 PM com.sonymobile.tools.gerrit.gerritevents.GerritHandler notifyListeners
SEVERE: Notify-error:
java.lang.NullPointerException
at com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.EventListener.getDefaultParametersValues(EventListener.java:278)
at com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.EventListener.createParameters(EventListener.java:252)
at com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.EventListener.schedule(EventListener.java:182)
at com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.EventListener.schedule(EventListener.java:158)
at com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.EventListener.gerritEvent(EventListener.java:100)
at com.sonymobile.tools.gerrit.gerritevents.GerritHandler.notifyListener(GerritHandler.java:328)
at com.sonymobile.tools.gerrit.gerritevents.GerritHandler.notifyListeners(GerritHandler.java:296)
at com.sonyericsson.hudson.plugins.gerrit.trigger.JenkinsAwareGerritHandler.notifyListeners(JenkinsAwareGerritHandler.java:77)
at com.sonymobile.tools.gerrit.gerritevents.workers.AbstractGerritEventWork.perform(AbstractGerritEventWork.java:46)
at com.sonymobile.tools.gerrit.gerritevents.workers.AbstractJsonObjectWork.perform(AbstractJsonObjectWork.java:77)
at com.sonymobile.tools.gerrit.gerritevents.workers.StreamEventsStringWork.perform(StreamEventsStringWork.java:67)
at com.sonymobile.tools.gerrit.gerritevents.workers.EventThread.run(EventThread.java:66)
at com.sonyericsson.hudson.plugins.gerrit.trigger.SystemEventThread.run(SystemEventThread.java:66)Even after fixing the job (by deselecting the parameters option), manual trigger via 'query and trigger Gerrit patchsets' doesn't work for the specific patchset generating the NPE. Nothing happens. A new patchset is required to get the trigger to work.
- environment:
Gerrit 2.12.2, Jenkins 1.651.1, Gerrit Trigger 2.20.0
Contributor guide
Research direction
Start in EventListener.java at getDefaultParametersValues, createParameters, and schedule, then reproduce a Gerrit event for a job marked parameterized with no parameters. Verify that triggering the event, including the reported patchset query flow, no longer logs a NullPointerException and successfully schedules the build.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- ci-cd
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100