On 26.09.2016 09:02, Michael Rüegg wrote:
Hi,

I have a Groovy based DSL in which I want to access variables from declared 
bindings. Here's my DSL implementation:

https://gist.github.com/MichaelRueegg/f3f09aeb5853bdb58ca017eb1d4d7a30

As you can see, when I bind the variable magicValue with def (DSL_OK), I can 
access its value in my DSL, whereas otherwise (DSL_NOT_OK) I get a

java.lang.NullPointerException: Cannot get property 'magicValue' on null object

in the first case you are accessing a local variable, which is done without bothering with owner and delegate of the Closure instance. In the second case you are going through these to find the meaning of the magicValue. But since you use rehydrate to set owner and delegate to null, you will end up in an error. Why do you do rehydrate at all? Maybe in your bigger code there is a need for this I won't see here, but in what I see I obviously fail to see the need. If you have to use it, then of course you will have to set owner and/or delegate, or else you won't be able to sue the standard mechanisms to access the binding from the Closure instance

bye Jochen

Reply via email to