You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "paolo di tommaso (JIRA)" <ji...@apache.org> on 2018/08/21 18:49:00 UTC

[jira] [Created] (GROOVY-8762) Invalid this reference in nested class

paolo di tommaso created GROOVY-8762:
----------------------------------------

             Summary: Invalid this reference in nested class
                 Key: GROOVY-8762
                 URL: https://issues.apache.org/jira/browse/GROOVY-8762
             Project: Groovy
          Issue Type: Bug
    Affects Versions: 2.5.1, 2.4.15
            Reporter: paolo di tommaso


The following snippet throws an exception when trying to initialise the `y` attribute
{code:java}
class Foo {

    static class Bar extends Closure {

        private int x

        private int y

        Bar(int a) {
            super(null, null);
            x = a
            this.y = a 
        }
        
        public int getMaximumNumberOfParameters() {
            throw new UnsupportedOperationException()
        }

        public Class[] getParameterTypes() {
            throw new UnsupportedOperationException()
        }

        public Object call(final Object... args) {
            throw new UnsupportedOperationException()
        }

        public Object call(final Object arguments) {
            throw new UnsupportedOperationException()
        }

        public Object call() {
            throw new UnsupportedOperationException()
        }
    }

    def doSomething() {
        new Bar(1)
    }
}


assert new Foo().doSomething() 
{code}

Reported error:
{code}
java.lang.NullPointerException
	at Foo$Bar.<init>(ConsoleScript8:12)
	at Foo.doSomething(ConsoleScript8:37)
	at Foo$doSomething.call(Unknown Source)
	at ConsoleScript8.run(ConsoleScript8:42)
{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)