groovy
  1. groovy
  2. GROOVY-3311

NPE on Groovy 1.6-RC2: Cannot invoke method times() on null object

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 1.6-beta-2, 1.6-rc-1, 1.6-rc-2
    • Fix Version/s: 1.6-rc-3, 1.6.1, 1.7-beta-1
    • Component/s: None
    • Labels:
      None
    • Testcase included:
      yes
    • Number of attachments :
      0

      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

      { hour -> hours << new Date(time + hour*1000*60*60) }

      }

      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]

        Activity

        Hide
        Roshan Dawrani added a comment -

        I am not familiar with merging from one branch to another branch. Can I do the usual check-in to 1.6.0 branch?

        Show
        Roshan Dawrani added a comment - I am not familiar with merging from one branch to another branch. Can I do the usual check-in to 1.6.0 branch?
        Hide
        Guillaume Laforge added a comment -

        I must confess I usually rarely use the svn merge command, and instead create patches I reapply to other branches – not the best practice I guess, but one I'm used to do anyway.
        I think you need a commit after an svn merge anyway, so you should be able to try it safely locally, if I'm not mistaken.
        You may also copy'n paste back the areas where you made changes, as a workaround.

        Show
        Guillaume Laforge added a comment - I must confess I usually rarely use the svn merge command, and instead create patches I reapply to other branches – not the best practice I guess, but one I'm used to do anyway. I think you need a commit after an svn merge anyway, so you should be able to try it safely locally, if I'm not mistaken. You may also copy'n paste back the areas where you made changes, as a workaround.
        Hide
        Roshan Dawrani added a comment -

        I know about the delta code that I applied and I can safely apply it on 1.6.0.

        Shall I go ahead and make this change on 1.6.0 then?

        Show
        Roshan Dawrani added a comment - I know about the delta code that I applied and I can safely apply it on 1.6.0. Shall I go ahead and make this change on 1.6.0 then?
        Hide
        Guillaume Laforge added a comment -

        As suggested by Jochen on the list, we should discuss any commit on the mailing-list first.
        So bring that again on the list, and Jochen will confirm if it's okay.
        But I think we should bring it in 1.6.0 as well.

        Show
        Guillaume Laforge added a comment - As suggested by Jochen on the list, we should discuss any commit on the mailing-list first. So bring that again on the list, and Jochen will confirm if it's okay. But I think we should bring it in 1.6.0 as well.
        Hide
        Roshan Dawrani added a comment -

        Fixed the issue on 1.6.0 branch too.

        Show
        Roshan Dawrani added a comment - Fixed the issue on 1.6.0 branch too.

          People

          • Assignee:
            Roshan Dawrani
            Reporter:
            Alexander Kleymenov
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: