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

Inner classes of inner classes can't find outer class method names.

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.7.10
    • Fix Version/s: 1.8-rc-4, 1.7.11
    • Component/s: None
    • Labels:
      None

      Description

      Jay Ashworth reported a problem that arose between 1.7.6 and 1.7.7. His example used Swing events and requires manual clicking to use. I've reduced it to a simple test case (although not in JUnit form).

      The interesting thing is that it takes two levels of Runnable inner classes for the problem to show up. Turns out threads are not part of the issue.

      Demo script attached. The output for Groovy 1.7.10 is:

      Resolved
      After
      Resolved
      Caught: java.lang.NoSuchMethodError: TestInnerRefs$2.this$dist$invoke$2(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
      at TestInnerRefs$2$3.methodMissing(TestRunner.groovy)
      at TestInnerRefs$2$3.run(TestRunner.groovy:24)
      at TestInnerRefs$2.run(TestRunner.groovy:27)
      at TestInnerRefs.dontEvent(TestRunner.groovy:31)
      at TestRunner.run(TestRunner.groovy:49)

      1. TestRunner.groovy
        0.7 kB
        James P. White

        Activity

        Hide
        blackdrag Jochen Theodorou added a comment -

        fixed

        Show
        blackdrag Jochen Theodorou added a comment - fixed
        Hide
        rumour Jay Ashworth added a comment -

        This also applies to 1.8 up to the latest available version, 1.8RC3.

        Show
        rumour Jay Ashworth added a comment - This also applies to 1.8 up to the latest available version, 1.8RC3.

          People

          • Assignee:
            blackdrag Jochen Theodorou
            Reporter:
            jimwhite James P. White
          • Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development