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

Groovyc stub generation doesn't handle all primitive types properly

    Details

      Description

      The problem manifests when a long value is effectively being changed to an 'int' and results in an exception during compilation.

      Example class:

      class AnObject {
          public static final long serialVersionUID = -5239748510188117876L
      }
      

      Using groovy 1.8.5, the generated stub (during joint compilation using the 'Groovyc' ant taskdef) looks like (sans imports):

      public class AnObject implements
          groovy.lang.GroovyObject {
      public static final long serialVersionUID = -5239748510188117876;
      }
      

      The problem is that this yields a compilation exception 'integer number too large'.

      If you exclude the 'public' keyword on the member definition and re-compile, the stub instead looks like:

      public class AnObject implements
          groovy.lang.GroovyObject {
      public static final  long getSerialVersionUID() { return (long)0;}
      }
      

      This can then compile successfully.

        Attachments

          Activity

            People

            • Assignee:
              melix Cédric Champeau
              Reporter:
              rumour Jay Ashworth
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: