This is an automated email from the ASF dual-hosted git repository. borinquenkid pushed a commit to branch test/document-datamapping-core-finders in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 0f4b0e18fb9cedd5cb4a20c078db15abcaae1d16 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Sat Aug 15 15:23:33 2026 -0500 Fix IntelliJ warnings on ListOrderByFinder - match.find() result is intentionally ignored - isMethodMatch already guarantees the match succeeds before invoke() is ever called, same as DynamicFinder#createFinderInvocation. - new LinkedHashMap((Map) arguments[0]) is an unchecked copy-constructor call on a raw Map, needed since FinderMethod's invoke() signature is itself raw. Both suppressed on the enclosing invoke() method, alongside the existing rawtypes suppression. Co-Authored-By: Claude Sonnet 5 <[email protected]> --- .../datastore/gorm/finders/ListOrderByFinder.java | 34 ++++++++++------------ 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/finders/ListOrderByFinder.java b/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/finders/ListOrderByFinder.java index 2816249ddd..9c6b35e5c7 100644 --- a/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/finders/ListOrderByFinder.java +++ b/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/finders/ListOrderByFinder.java @@ -26,14 +26,12 @@ import java.util.regex.Pattern; import groovy.lang.Closure; import org.grails.datastore.mapping.core.Datastore; -import org.grails.datastore.mapping.core.Session; import org.grails.datastore.mapping.core.SessionCallback; import org.grails.datastore.mapping.query.Query; import org.grails.datastore.mapping.reflect.NameUtils; /** * The "listOrderBy*" static persistent method. Allows ordered listing of instances based on their properties. - * * eg. * Account.listOrderByHolder(); * Account.listOrderByHolder(max); // max results @@ -66,7 +64,7 @@ public class ListOrderByFinder implements FinderMethod { } @Override - @SuppressWarnings("rawtypes") + @SuppressWarnings({"rawtypes", "unchecked", "ResultOfMethodCallIgnored"}) public Object invoke(final Class clazz, final String methodName, final Closure additionalCriteria, final Object[] arguments) { Matcher match = pattern.matcher(methodName); @@ -75,25 +73,23 @@ public class ListOrderByFinder implements FinderMethod { String nameInSignature = match.group(2); final String propertyName = NameUtils.decapitalizeFirstChar(nameInSignature); - return FinderSupport.execute(datastore, new SessionCallback<>() { - public Object doInSession(final Session session) { - Query q = session.createQuery(clazz); - DynamicFinder.applyAdditionalCriteria(q, additionalCriteria); + return FinderSupport.execute(datastore, (SessionCallback<Object>) session -> { + Query q = session.createQuery(clazz); + DynamicFinder.applyAdditionalCriteria(q, additionalCriteria); - boolean ascending = true; - if (arguments.length > 0 && (arguments[0] instanceof Map)) { - final Map args = new LinkedHashMap((Map) arguments[0]); - final Object order = args.remove(DynamicFinder.ARGUMENT_ORDER); - if (order != null && "desc".equalsIgnoreCase(order.toString())) { - ascending = false; - } - DynamicFinder.populateArgumentsForCriteria(clazz, q, args); + boolean ascending = true; + if (arguments.length > 0 && (arguments[0] instanceof Map)) { + final Map args = new LinkedHashMap((Map) arguments[0]); + final Object order = args.remove(DynamicFinder.ARGUMENT_ORDER); + if (order != null && "desc".equalsIgnoreCase(order.toString())) { + ascending = false; } - - q.order(ascending ? Query.Order.asc(propertyName) : Query.Order.desc(propertyName)); - q.projections().distinct(); - return q.list(); + DynamicFinder.populateArgumentsForCriteria(clazz, q, args); } + + q.order(ascending ? Query.Order.asc(propertyName) : Query.Order.desc(propertyName)); + q.projections().distinct(); + return q.list(); }); }
