Fix: Fix npe for propagation url settings #340
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When upgrading from older versions of the plugin the propagationUrl tag might be missing in
io.jenkins.plugins.bitbucketpushandpullrequest.config.BitBucketPPRPluginConfig.xml
. Since propagationUrl's value is checked for emptiness only this might result in a NPE with error message:java.lang.NullPointerException: Cannot invoke "String.isEmpty()" because the return value of "io.jenkins.plugins.bitbucketpushandpullrequest.config.BitBucketPPRPluginConfig.getPropagationUrl()" is null
This commit adds a check for null+emptiness.
The issue can be reproduced easily by deleting the propagationUrl tag from the given config file, reload and try to trigger a build via webhook.
You can then either enter a whitespace in the config field for propagationUrl and delete it afterwards or enter the line
<propagationUrl></propagationUrl>
into the config file directly. This will prevent throwing a NPE too.Testing done
I provided my fix, built a hpi file and installed it to a testinstance over the old
3.0.3
of the plugin.I made sure
io.jenkins.plugins.bitbucketpushandpullrequest.config.BitBucketPPRPluginConfig.xml
was lacking the propagationUrl tag.I could ensure that afterwards:
Submitter checklist