jenkinsci / jenkinsci/lockable-resources-plugin
Update to 1309.ve21874387edf logs NullPointerException when old build is discarded
- Dominant language
- Java
- Stars
- 99
- Forks
- 205
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 8
Description
### Jenkins and plugins versions report
Environment
```text
Jenkins: 2.462.2
OS: Linux - 6.10.10-200.fc40.x86_64
Java: 11.0.24 - Red Hat, Inc. (OpenJDK 64-Bit Server VM)
---
```
### What Operating System are you using (both controller, and any agents involved in the problem)?
Fedora 40, both for controller and agents
### Reproduction steps
1. Have a pipeline job that uses a lockable resource.
2. Set a "Discard old builds" option with "Log Rotation" strategy and "Max # of builds to keep" = 3.
3. Run the pipeline job 4 times.
4. Observe the Jenkins controller logs.
### Expected Results
No NPE
### Actual Results
```
Sep 20, 2024 12:50:28 AM INFO org.jenkins.plugins.lockableresources.queue.LockRunListener onDeleted
my-pipeline-job resource1
Sep 20, 2024 12:50:28 AM WARNING jenkins.util.Listeners lambda$notify$0
null
java.lang.NullPointerException
at PluginClassLoader for lockable-resources//org.jenkins.plugins.lockableresources.LockableResourcesManager.unlockBuild(LockableResourcesManager.java:655)
at PluginClassLoader for lockable-resources//org.jenkins.plugins.lockableresources.queue.LockRunListener.onDeleted(LockRunListener.java:110)
at hudson.model.listeners.RunListener.lambda$fireDeleted$4(RunListener.java:271)
at jenkins.util.Listeners.lambda$notify$0(Listeners.java:59)
at jenkins.util.Listeners.notify(Listeners.java:67)
at hudson.model.listeners.RunListener.fireDeleted(RunListener.java:269)
at hudson.model.Run.delete(Run.java:1646)
at hudson.tasks.LogRotator.perform(LogRotator.java:167)
at hudson.model.Job.logRotate(Job.java:486)
at jenkins.model.JobGlobalBuildDiscarderStrategy.apply(JobGlobalBuildDiscarderStrategy.java:54)
at jenkins.model.BackgroundGlobalBuildDiscarder.lambda$processJob$0(BackgroundGlobalBuildDiscarder.java:67)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at jenkins.model.BackgroundGlobalBuildDiscarder.processJob(BackgroundGlobalBuildDiscarder.java:61)
at jenkins.model.BackgroundGlobalBuildDiscarder.execute(BackgroundGlobalBuildDiscarder.java:55)
at hudson.model.AsyncPeriodicWork.lambda$doRun$0(AsyncPeriodicWork.java:102)
at java.base/java.lang.Thread.run(Thread.java:829)
```
### Anything else?
_No response_
### Are you interested in contributing a fix?
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.