mftruso opened a new issue, #14606:
URL: https://github.com/apache/grails-core/issues/14606

   Thanks for reporting an issue for Grails framework, please review the task 
list below before submitting the 
   issue. Your issue report will be closed if the issue is incomplete and the 
below tasks not completed.
   
   NOTE: If you are unsure about something and the issue is more of a question 
a better place to ask questions is on Stack Overflow 
(http://stackoverflow.com/tags/grails) or Slack 
(http://slack-signup.grails.org). DO NOT use the issue tracker to ask questions.
   
   ### Task List
   
   - [X] Steps to reproduce provided
   - [X] Stacktrace (if present) provided
   - [X] Example that reproduces the problem uploaded to Github
   - [X] Full description of the issue provided (see below)
   
   ### Steps to Reproduce
   
   Using the dynamic finder `InList` causes an error 
   
   In my sample application:
   
   1. Run app `./gradlew bootRun`
   2. Browse to `http://localhost:8080/author/countByCategory?category=Fiction`
   
   ```
   def countByCategory(){
         String category = params.category
         List books = Book.findAllByCategory(category)
         def count = Author.countByBooksInList(books)
         render ([count: count] as JSON)
       }
   ```
   3. Browse to `http://localhost:8080/author/listByCategory?category=Fiction`
   ```
   def listByCategory(){
         String category = params.category
         List books = Book.findAllByCategory(category)
         List authors = Author.findAllByBooksInList(books)
         render authors as JSON
       }
   ```
   
   ### Expected Behaviour
   
   `Author.countByBooksInList(books) == 1` and 
`Author.findAllByBooksInList(books).size() == 1`
   
   ### Actual Behaviour
   countBy
   ```
   2017-08-30 10:26:45.302 ERROR --- [nio-8080-exec-1] 
o.h.engine.jdbc.spi.SqlExceptionHelper   : Parameter "#2" is not set; SQL 
statement:
   select count(*) as y0_ from author this_ where this_.id in (?, ?) limit ? 
[90012-195]
   2017-08-30 10:26:45.379 ERROR --- [nio-8080-exec-1] 
o.g.web.errors.GrailsExceptionResolver   : JdbcSQLException occurred when 
processing request: [GET] /author/countByCategory - parameters:
   category: Fiction
   Parameter "#2" is not set; SQL statement:
   select count(*) as y0_ from author this_ where this_.id in (?, ?) limit ? 
[90012-195]. Stacktrace follows:
   
   java.lang.reflect.InvocationTargetException: null
           at 
org.grails.core.DefaultGrailsControllerClass$ReflectionInvoker.invoke(DefaultGrailsControllerClass.java:211)
           at 
org.grails.core.DefaultGrailsControllerClass.invoke(DefaultGrailsControllerClass.java:188)
           at 
org.grails.web.mapping.mvc.UrlMappingsInfoHandlerAdapter.handle(UrlMappingsInfoHandlerAdapter.groovy:90)
           at 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
           at 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
           at 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
           at 
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
           at 
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
           at 
org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
           at 
org.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:77)
           at 
org.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67)
           at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
           at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
           at java.lang.Thread.run(Thread.java:745)
   Caused by: org.hibernate.exception.GenericJDBCException: could not extract 
ResultSet
           at 
org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47)
           at 
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)
           at 
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97)
           at 
org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:79)
           at org.hibernate.loader.Loader.getResultSet(Loader.java:2122)
           at 
org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1905)
           at 
org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1881)
           at org.hibernate.loader.Loader.doQuery(Loader.java:925)
           at 
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:342)
           at org.hibernate.loader.Loader.doList(Loader.java:2622)
           at org.hibernate.loader.Loader.doList(Loader.java:2605)
           at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2434)
           at org.hibernate.loader.Loader.list(Loader.java:2429)
           at 
org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:109)
           at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1787)
           at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:363)
           at 
org.grails.orm.hibernate.query.AbstractHibernateQuery.singleResultViaListCall(AbstractHibernateQuery.java:801)
           at 
org.grails.orm.hibernate.query.AbstractHibernateQuery.singleResult(AbstractHibernateQuery.java:791)
           at 
org.grails.datastore.gorm.finders.CountByFinder.invokeQuery(CountByFinder.java:55)
           at 
org.grails.datastore.gorm.finders.CountByFinder$1.doInSession(CountByFinder.java:49)
           at 
org.grails.datastore.mapping.core.DatastoreUtils.execute(DatastoreUtils.java:319)
           at 
org.grails.datastore.gorm.finders.AbstractFinder.execute(AbstractFinder.java:42)
           at 
org.grails.datastore.gorm.finders.CountByFinder.doInvokeInternal(CountByFinder.java:46)
           at 
org.grails.datastore.gorm.finders.DynamicFinder.invoke(DynamicFinder.java:252)
           at 
org.grails.datastore.gorm.finders.DynamicFinder.invoke(DynamicFinder.java:390)
           at 
org.grails.datastore.gorm.GormStaticApi.methodMissing(GormStaticApi.groovy:185)
           at 
org.grails.datastore.gorm.GormEntity$Trait$Helper.staticMethodMissing(GormEntity.groovy:756)
           at 
testcountinlist.AuthorController.countByCategory(AuthorController.groovy:14)
           ... 14 common frames omitted
   Caused by: org.h2.jdbc.JdbcSQLException: Parameter "#2" is not set; SQL 
statement:
   select count(*) as y0_ from author this_ where this_.id in (?, ?) limit ? 
[90012-195]
           at 
org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
           at org.h2.message.DbException.get(DbException.java:179)
           at org.h2.message.DbException.get(DbException.java:155)
           at org.h2.expression.Parameter.checkSet(Parameter.java:81)
           at org.h2.command.Prepared.checkParameters(Prepared.java:164)
           at org.h2.command.CommandContainer.query(CommandContainer.java:112)
           at org.h2.command.Command.executeQuery(Command.java:201)
           at 
org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:111)
           at 
org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:70)
   ```
   
   findAllBy
   ```
   2017-08-30 10:28:11.644 ERROR --- [nio-8080-exec-9] 
o.h.engine.jdbc.spi.SqlExceptionHelper   : Parameter "#1" is not set; SQL 
statement:
   select this_.id as id1_0_0_, this_.version as version2_0_0_, this_.name as 
name3_0_0_ from author this_ where this_.id in (?, ?) [90012-195]
   2017-08-30 10:28:11.653 ERROR --- [nio-8080-exec-9] 
o.g.web.errors.GrailsExceptionResolver   : JdbcSQLException occurred when 
processing request: [GET] /author/listByCategory - parameters:
   category: Fiction
   Parameter "#1" is not set; SQL statement:
   select this_.id as id1_0_0_, this_.version as version2_0_0_, this_.name as 
name3_0_0_ from author this_ where this_.id in (?, ?) [90012-195]. Stacktrace 
follows:
   
   java.lang.reflect.InvocationTargetException: null
           at 
org.grails.core.DefaultGrailsControllerClass$ReflectionInvoker.invoke(DefaultGrailsControllerClass.java:211)
           at 
org.grails.core.DefaultGrailsControllerClass.invoke(DefaultGrailsControllerClass.java:188)
           at 
org.grails.web.mapping.mvc.UrlMappingsInfoHandlerAdapter.handle(UrlMappingsInfoHandlerAdapter.groovy:90)
           at 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
           at 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
           at 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
           at 
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
           at 
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
           at 
org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
           at 
org.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:77)
           at 
org.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67)
           at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
           at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
           at java.lang.Thread.run(Thread.java:745)
   Caused by: org.hibernate.exception.GenericJDBCException: could not extract 
ResultSet
           at 
org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47)
           at 
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)
           at 
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97)
           at 
org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:79)
           at org.hibernate.loader.Loader.getResultSet(Loader.java:2122)
           at 
org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1905)
           at 
org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1881)
           at org.hibernate.loader.Loader.doQuery(Loader.java:925)
           at 
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:342)
           at org.hibernate.loader.Loader.doList(Loader.java:2622)
           at org.hibernate.loader.Loader.doList(Loader.java:2605)
           at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2434)
           at org.hibernate.loader.Loader.list(Loader.java:2429)
           at 
org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:109)
           at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1787)
           at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:363)
           at 
org.grails.orm.hibernate.query.AbstractHibernateQuery.listForCriteria(AbstractHibernateQuery.java:716)
           at 
org.grails.orm.hibernate.query.AbstractHibernateQuery.list(AbstractHibernateQuery.java:706)
           at 
org.grails.datastore.gorm.finders.FindAllByFinder.invokeQuery(FindAllByFinder.java:54)
           at 
org.grails.datastore.gorm.finders.FindAllByFinder$1.doInSession(FindAllByFinder.java:48)
           at 
org.grails.datastore.mapping.core.DatastoreUtils.execute(DatastoreUtils.java:319)
           at 
org.grails.datastore.gorm.finders.AbstractFinder.execute(AbstractFinder.java:42)
           at 
org.grails.datastore.gorm.finders.FindAllByFinder.doInvokeInternal(FindAllByFinder.java:45)
           at 
org.grails.datastore.gorm.finders.DynamicFinder.invoke(DynamicFinder.java:252)
           at 
org.grails.datastore.gorm.finders.DynamicFinder.invoke(DynamicFinder.java:390)
           at 
org.grails.datastore.gorm.GormStaticApi.methodMissing(GormStaticApi.groovy:185)
           at 
org.grails.datastore.gorm.GormEntity$Trait$Helper.staticMethodMissing(GormEntity.groovy:756)
           at 
testcountinlist.AuthorController.listByCategory(AuthorController.groovy:21)
           ... 14 common frames omitted
   Caused by: org.h2.jdbc.JdbcSQLException: Parameter "#1" is not set; SQL 
statement:
   select this_.id as id1_0_0_, this_.version as version2_0_0_, this_.name as 
name3_0_0_ from author this_ where this_.id in (?, ?) [90012-195]
           at 
org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
           at org.h2.message.DbException.get(DbException.java:179)
           at org.h2.message.DbException.get(DbException.java:155)
           at org.h2.expression.Parameter.checkSet(Parameter.java:81)
           at org.h2.command.Prepared.checkParameters(Prepared.java:164)
           at org.h2.command.CommandContainer.query(CommandContainer.java:112)
           at org.h2.command.Command.executeQuery(Command.java:201)
           at 
org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:111)
           at 
org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:70)
           ... 38 common frames omitted
   ```
   ### Environment Information
   
   - **Operating System**: macOS 10.12.6
   - **Grails Version:** 3.3.0
   - **JDK Version:** 1.8
   
   ### Example Application
   
   https://github.com/mftruso/testcountinlist


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to