Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 1.8.5
-
Fix Version/s: 1.8.6, 2.0-beta-3
-
Component/s: Ant integration, Stub generator / Joint compiler
-
Labels:None
-
Number of attachments :
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.