The JLS (recent versions at least) states:
It is a compile-time error if a final variable is also declared volatile.
Compiling this class:
in Java gives the following compilation error:
Groovy currently passes compilation but then gives the following error at runtime when trying to create an instance of such a class:
Groovy should also have a compilation error for this case.