Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
1.6-beta-2, 1.6-rc-1, 1.6-rc-2
-
None
-
None
Description
The following code breaks Groovy 1.6 with NPE, while passes fine on Groovy 1.5.7:
[code]
--------- test.gr --------------
public class Day extends Date {
static sdf = new java.text.SimpleDateFormat("dd.MM.yyyy")
public static Day get(_date)
{ return new Day(sdf.parse(_date)) }def hours = []
public Day(Date _date) {
super(_date.time)
def time = getTime()
24.times
}
public String toString()
{ sdf.format(this) } static def period = (1..3).toList().collect { get "1${it}.11.2007" }
}
println new Day(new Date())
--------------------------------
[/code]
>> groovy-1.6-RC2/bin/groovy test.gr
[code]
Caught: java.lang.ExceptionInInitializerError
java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
. . .
Caused by: java.lang.NullPointerException: Cannot invoke method times() on null object
at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:77)
at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:743)
at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:720)
at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:17)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:43)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at Day.<init>(test.gr:14)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
. . .
[/code]