Uploaded image for project: 'Groovy'
  1. Groovy
  2. GROOVY-11411

Static Compilation fails for Grails domain class method getAll()

    XMLWordPrintableJSON

Details

    Description

      Hello,
       
      The following code results in a static compilation error after upgrading from Grails 6.1.2 (which uses Groovy 3.0.11) to Grails 6.2.0 (which uses Groovy 3.0.21):
       
       

      import grails.compiler.GrailsCompileStatic
      import static org.springframework.http.HttpStatus.NO_CONTENT
      
      @GrailsCompileStatic
      class SessionItemGroupController {
          def deleteMultiple() {
              List<Long> longIds = ((String) params.ids)?.split(',')?.collect { String id -> id.toLong() }           
              List<SessionItemGroup> sessionItemGroups = SessionItemGroup.getAll(longIds as Iterable<Serializable>) // This line causes the error            
              response.status = NO_CONTENT.value()    
          }
      }

       
       
      SessionItemGroup is a Grails domain class and this is the error I'm getting when trying to run a Gradle task such as `bootRun` or `build`:
       
      ```
      > Task :compileGroovy FAILED
      startup failed:
      grails-app/controllers/myapp/sessionitem/SessionItemGroupController.groovy: 57: [Static type checking] - Cannot call myapp.sessionitem.SessionItemGroup#getAll(java.lang.Iterable <java.io.Serializable>) with arguments [java.util.List <java.lang.Long>]
      @ line 41, column 56.
      temGroup> sessionItemGroups = SessionIte
      ```
       
      I have created a sample application repository which reproduces the issue:
      https://github.com/tylervz/grails620-groovy-bug-compile-static

      Attachments

        Activity

          People

            Unassigned Unassigned
            tylervz Tyler VanZanten
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: