jenkinsci / jenkinsci/gerrit-trigger-plugin
[JENKINS-28161] Gerrit trigger NPE on report and event
- Dominant language
- Java
- Stars
- 226
- Forks
- 289
- PR merge metrics
- No merged PRs in 30d
Description
On a gerrit event, the gerrit trigger fails with NPE:
Apr 29, 2015 6:04:43 PM com.sonyericsson.hudson.plugins.gerrit.gerritevents.GerritHandler notifyListener
SEVERE: Exception thrown during event handling.
java.lang.NullPointerException
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.model.BuildMemory$GerritTriggeredEventComparator.compare(BuildMemory.java:63)
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.model.BuildMemory$GerritTriggeredEventComparator.compare(BuildMemory.java:60)
at java.util.TreeMap.getEntryUsingComparator(TreeMap.java:368)
at java.util.TreeMap.getEntry(TreeMap.java:339)
at java.util.TreeMap.get(TreeMap.java:272)
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.model.BuildMemory.isBuilding(BuildMemory.java:295)
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.ToGerritRunListener.isBuilding(ToGerritRunListener.java:264)
at com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger.gerritEvent(GerritTrigger.java:979)
at com.sonyericsson.hudson.plugins.gerrit.gerritevents.GerritHandler.notifyListener(GerritHandler.java:328)
at com.sonyericsson.hudson.plugins.gerrit.gerritevents.GerritHandler.notifyListeners(GerritHandler.java:290)
at com.sonyericsson.hudson.plugins.gerrit.gerritevents.workers.AbstractGerritEventWork.perform(AbstractGerritEventWork.java:45)
at com.sonyericsson.hudson.plugins.gerrit.gerritevents.workers.AbstractJsonObjectWork.perform(AbstractJsonObjectWork.java:57)
at com.sonyericsson.hudson.plugins.gerrit.gerritevents.workers.StreamEventsStringWork.perform(StreamEventsStringWork.java:66)
at com.sonyericsson.hudson.plugins.gerrit.gerritevents.workers.EventThread.run(EventThread.java:65)
And on a job finished it also throws NPE on:
Apr 29, 2015 5:53:09 PM hudson.model.listeners.RunListener report
WARNING: RunListener failed
java.lang.NullPointerException
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.model.BuildMemory$GerritTriggeredEventComparator.compare(BuildMemory.java:63)
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.model.BuildMemory$GerritTriggeredEventComparator.compare(BuildMemory.java:60)
at java.util.TreeMap.getEntryUsingComparator(TreeMap.java:368)
at java.util.TreeMap.getEntry(TreeMap.java:339)
at java.util.TreeMap.get(TreeMap.java:272)
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.model.BuildMemory.started(BuildMemory.java:168)
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.ToGerritRunListener.onStarted(ToGerritRunListener.java:150)
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.ToGerritRunListener.onStarted(ToGerritRunListener.java:54)
at hudson.model.listeners.RunListener.fireStarted(RunListener.java:213)
at hudson.model.Run.execute(Run.java:1737)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:374)
---
Originally reported by
dcaroest, imported from: Gerrit trigger NPE on report and event
rsandell
Raw content of original issue
On a gerrit event, the gerrit trigger fails with NPE:
Apr 29, 2015 6:04:43 PM com.sonyericsson.hudson.plugins.gerrit.gerritevents.GerritHandler notifyListener
SEVERE: Exception thrown during event handling.
java.lang.NullPointerException
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.model.BuildMemory$GerritTriggeredEventComparator.compare(BuildMemory.java:63)
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.model.BuildMemory$GerritTriggeredEventComparator.compare(BuildMemory.java:60)
at java.util.TreeMap.getEntryUsingComparator(TreeMap.java:368)
at java.util.TreeMap.getEntry(TreeMap.java:339)
at java.util.TreeMap.get(TreeMap.java:272)
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.model.BuildMemory.isBuilding(BuildMemory.java:295)
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.ToGerritRunListener.isBuilding(ToGerritRunListener.java:264)
at com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger.gerritEvent(GerritTrigger.java:979)
at com.sonyericsson.hudson.plugins.gerrit.gerritevents.GerritHandler.notifyListener(GerritHandler.java:328)
at com.sonyericsson.hudson.plugins.gerrit.gerritevents.GerritHandler.notifyListeners(GerritHandler.java:290)
at com.sonyericsson.hudson.plugins.gerrit.gerritevents.workers.AbstractGerritEventWork.perform(AbstractGerritEventWork.java:45)
at com.sonyericsson.hudson.plugins.gerrit.gerritevents.workers.AbstractJsonObjectWork.perform(AbstractJsonObjectWork.java:57)
at com.sonyericsson.hudson.plugins.gerrit.gerritevents.workers.StreamEventsStringWork.perform(StreamEventsStringWork.java:66)
at com.sonyericsson.hudson.plugins.gerrit.gerritevents.workers.EventThread.run(EventThread.java:65)And on a job finished it also throws NPE on:
Apr 29, 2015 5:53:09 PM hudson.model.listeners.RunListener report
WARNING: RunListener failed
java.lang.NullPointerException
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.model.BuildMemory$GerritTriggeredEventComparator.compare(BuildMemory.java:63)
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.model.BuildMemory$GerritTriggeredEventComparator.compare(BuildMemory.java:60)
at java.util.TreeMap.getEntryUsingComparator(TreeMap.java:368)
at java.util.TreeMap.getEntry(TreeMap.java:339)
at java.util.TreeMap.get(TreeMap.java:272)
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.model.BuildMemory.started(BuildMemory.java:168)
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.ToGerritRunListener.onStarted(ToGerritRunListener.java:150)
at com.sonyericsson.hudson.plugins.gerrit.trigger.gerritnotifier.ToGerritRunListener.onStarted(ToGerritRunListener.java:54)
at hudson.model.listeners.RunListener.fireStarted(RunListener.java:213)
at hudson.model.Run.execute(Run.java:1737)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:374)
environment
```
Jenkins 1.607
gerrit trigger 2.11, 2.12 and 2.13
```
Contributor guide
Research direction
Start with BuildMemory.java, especially GerritTriggeredEventComparator.compare at line 63, and trace its callers in isBuilding and started. Reproduce the reported paths for a Gerrit event and a completed job, then verify that neither path throws a NullPointerException.
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
- 35/100