FINERACT-2657: Fix NPE updating a provisioning criteria by matching definitions on categoryId#6027
Merged
adamsaghy merged 1 commit intoJun 29, 2026
Conversation
d9295bf to
9406803
Compare
adamsaghy
requested changes
Jun 26, 2026
adamsaghy
left a comment
Contributor
There was a problem hiding this comment.
I dont like this approach.
why to iterate through all definition one by one, instead of look up by id?
9406803 to
7d3a6e3
Compare
…efinitions on categoryId - The update path matched incoming definitions by the surrogate id, but the public UPDATE payload keys each definition only by categoryId, so data.getId() was null and the match threw a NullPointerException (HTTP 500) on every provisioning-criteria update. - Expose the criteria's definitions indexed by categoryId (its natural key) via ProvisioningCriteria.getDefinitionsByCategoryId(), and have the write service build that index once and resolve each incoming definition with a direct lookup instead of rescanning the whole set per entry. - Reject an unknown categoryId with a clean validation error instead of the NPE. - Index with a first-wins merge function: (criteria_id, category_id) is not DB-unique, so a duplicate category must not make the update 500 via Collectors.toMap; the prior scan also matched the first. - Add ProvisioningCriteriaTest (the categoryId index) and ProvisioningCriteriaWritePlatformServiceJpaRepositoryImplTest (update applied by categoryId; unknown category -> clean 400, not an NPE). Signed-off-by: oluexpert99 <farooq@techservicehub.io>
7d3a6e3 to
c847c36
Compare
Contributor
Author
|
@adamsaghy , Thank you. concerns addressed |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
payload keys each definition only by categoryId, so data.getId() was null and update() threw a
NullPointerException (HTTP 500) on every provisioning-criteria update.
unknown categoryId with a clean validation error instead of the NPE; add a getCategoryId() accessor
on ProvisioningCriteriaDefinition.
validation path.
Checklist
Please make sure these boxes are checked before submitting your pull request - thanks!
Your assigned reviewer(s) will follow our guidelines for code reviews.