Skip to content

Commit 2432777

Browse files
author
bnasslahsen
committed
NPE with QueryDSL configuration - SpringBoot < 2.3.2. Fixes #864.
1 parent 5732561 commit 2432777

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

springdoc-openapi-data-rest/src/main/java/org/springdoc/data/rest/customisers/QuerydslPredicateOperationCustomizer.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,11 @@ public Operation customize(Operation operation, HandlerMethod handlerMethod) {
107107

108108
Map<String, Object> pathSpecMap = getPathSpec(bindings, "pathSpecs");
109109
//remove blacklisted fields
110-
Set<String> blacklist = getFieldValues(bindings, "denyList");
110+
Set<String> blacklist = getFieldValues(bindings, "denyList", "blackList");
111111
fieldsToAdd.removeIf(blacklist::contains);
112112

113-
Set<String> whiteList = getFieldValues(bindings, "allowList");
114-
Set<String> aliases = getFieldValues(bindings, "aliases");
113+
Set<String> whiteList = getFieldValues(bindings, "allowList", "whiteList");
114+
Set<String> aliases = getFieldValues(bindings, "aliases", null);
115115

116116
fieldsToAdd.addAll(aliases);
117117
fieldsToAdd.addAll(whiteList);
@@ -152,10 +152,13 @@ private QuerydslBindings extractQdslBindings(QuerydslPredicate predicate) {
152152
* @param fieldName the field name
153153
* @return the field values
154154
*/
155-
private Set<String> getFieldValues(QuerydslBindings instance, String fieldName) {
155+
private Set<String> getFieldValues(QuerydslBindings instance, String fieldName, String alternativeFieldName) {
156156
try {
157-
Field field = FieldUtils.getDeclaredField(instance.getClass(),fieldName,true);
158-
return (Set<String>) field.get(instance);
157+
Field field = FieldUtils.getDeclaredField(instance.getClass(), fieldName, true);
158+
if (field == null && alternativeFieldName != null)
159+
field = FieldUtils.getDeclaredField(instance.getClass(), alternativeFieldName, true);
160+
if (field != null)
161+
return (Set<String>) field.get(instance);
159162
}
160163
catch (IllegalAccessException e) {
161164
LOGGER.warn(e.getMessage());
@@ -172,7 +175,7 @@ private Set<String> getFieldValues(QuerydslBindings instance, String fieldName)
172175
*/
173176
private Map<String, Object> getPathSpec(QuerydslBindings instance, String fieldName) {
174177
try {
175-
Field field = FieldUtils.getDeclaredField(instance.getClass(),fieldName,true);
178+
Field field = FieldUtils.getDeclaredField(instance.getClass(), fieldName, true);
176179
return (Map<String, Object>) field.get(instance);
177180
}
178181
catch (IllegalAccessException e) {
@@ -192,7 +195,7 @@ private Optional<Path<?>> getPathFromPathSpec(Object instance) {
192195
if (instance == null) {
193196
return Optional.empty();
194197
}
195-
Field field = FieldUtils.getDeclaredField(instance.getClass(),"path",true);
198+
Field field = FieldUtils.getDeclaredField(instance.getClass(), "path", true);
196199
return (Optional<Path<?>>) field.get(instance);
197200
}
198201
catch (IllegalAccessException e) {

0 commit comments

Comments
 (0)