Skip to content

fix nullability customizer - #48

Merged
SirCotare merged 3 commits into
v1from
fix-swagger-backport
Jan 21, 2026
Merged

fix nullability customizer#48
SirCotare merged 3 commits into
v1from
fix-swagger-backport

Conversation

@SirCotare

Copy link
Copy Markdown
Member

backport to support jspecify annotation. will be release 1.7.1

@SirCotare SirCotare self-assigned this Jan 14, 2026
@SirCotare
SirCotare requested a review from ThoSap January 14, 2026 16:14

@ThoSap ThoSap left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall LGTM 👍🏼
Let's only clarify these things first.

Comment on lines +18 to +51
public static class BaseClass {
@org.springframework.lang.Nullable
private String baseField;

public String getBaseField() {
return baseField;
}
}

public static class SubClass extends BaseClass {
private String subField;

public String getSubField() {
return subField;
}
}

public static class MethodAnnotated {
private String annotatedGetter;

@jakarta.annotation.Nullable
public String getAnnotatedGetter() {
return annotatedGetter;
}
}

public static class DirectMethodAnnotated {
private String directMethod;

@org.jspecify.annotations.Nullable
public String directMethod() {
return directMethod;
}
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here you have a mix of different @Nullable annotations.


var schema = new Schema<Object>();
// Simulating the concatenated FQN pattern described in the issue
var concatenatedFqn = SubClass.class.getName() + "Com.finstral.something";

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Like you have done it in PR commit https://github.com/aboutbits/spring-boot-toolbox/pull/47/changes#diff-ad71dc1ec29d6eb4c590a1e3e61049b7de72b369f976eabf6485d7eef1c210c6R121

Suggested change
var concatenatedFqn = SubClass.class.getName() + "Com.finstral.something";
var concatenatedFqn = SubClass.class.getName() + "It.aboutbits.something";

components.addSchemas(SubClass.class.getName(), subClassSchema);
openApi.setComponents(components);

assertDoesNotThrow(() -> customizer.customise(openApi));

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we usually use AssertJ
assertThatCode(() -> call()).doesNotThrowAnyException();
instead of this JUnit one?

Same also for the ones below and assertTrue.

@SirCotare
SirCotare merged commit 03d63c3 into v1 Jan 21, 2026
1 check passed
@SirCotare
SirCotare deleted the fix-swagger-backport branch January 21, 2026 15:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants