fix: allow nullable uid in InetOrgPerson#19373
Open
ezhilnn wants to merge 1 commit into
Open
Conversation
Signed-off-by: ezhilnn <ezhilnaga4732@gmail.com>
3c516d5 to
dd57915
Compare
Author
|
@spring-projects-issues can someone approve this |
romge
suggested changes
Jul 3, 2026
|
|
||
| public static class Essence extends Person.Essence { | ||
|
|
||
| private @Nullable String username; |
There was a problem hiding this comment.
This can be removed like in the previous version when the instance.getUsername() is directly checked in setUid()
Comment on lines
248
to
251
| public void setUsername(String username) { | ||
| super.setUsername(username); | ||
| this.username = username; | ||
| } |
There was a problem hiding this comment.
Remove this, no override is necessary when no local username variable is used.
| ((InetOrgPerson) this.instance).uid = uid; | ||
|
|
||
| if (this.username == null) { | ||
| if (this.username == null && uid != null) { |
There was a problem hiding this comment.
Suggested change
| if (this.username == null && uid != null) { | |
| if (this.instance.getUsername() == null) { |
Directly check the instance.getUsername(). The check for uid != null is not necessary.
Comment on lines
224
to
+227
| String uid = ctx.getStringAttribute("uid"); | ||
| Assert.notNull(uid, "uid cannot be null"); | ||
| setUid(uid); | ||
| if (uid != null) { | ||
| setUid(uid); | ||
| } |
There was a problem hiding this comment.
Suggested change
| String uid = ctx.getStringAttribute("uid"); | |
| Assert.notNull(uid, "uid cannot be null"); | |
| setUid(uid); | |
| if (uid != null) { | |
| setUid(uid); | |
| } | |
| setUid(ctx.getStringAttribute("uid")); |
I would just restore the original code, also to be consistent with the other attributes:
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.
Fixes #19370
Problem
uidis marked@Nullableon the field but two places contradictedthis:
getUid()calledObjects.requireNonNull(), throwing NPE if uid is nullEssence(DirContextOperations)constructor calledAssert.notNull(),throwing IllegalArgumentException if uid is absent from LDAP context
According to the LDAP inetOrgPerson schema,
uidis not a mandatoryfield. This behavior also regressed from pre-7.1.0 behavior (introduced
in commit c5632cc).
Changes
getUid()now returns@Nullable Stringand returns the field directlysetUid()if absentsetUid()now accepts@Nullable Stringand guards username mappingwith a null check
Testing
testNullUidIsAllowed()to verify null uid no longer throws