Klaus,

Thanks for spending the time to provide an MCVE.

I have to admit I have no idea what exactly is going on here, but what I'm
certain of is:

1. This is happening in 2.3.1 because in that version private
geb.Page#getAtChecker method has been introduced and it does not exist in
2.2, see:
-
https://github.com/geb/geb/blob/a948be381fd2e25b5b170a421a555b8bd90128d0/module/geb-core/src/main/groovy/geb/Page.groovy#L498
-
https://github.com/geb/geb/blob/a948be381fd2e25b5b170a421a555b8bd90128d0/module/geb-core/src/main/groovy/geb/Page.groovy#L513
vs
-
https://github.com/geb/geb/blob/0a6789cb3912a13dd69c8e9a58bc10dc746221e0/module/geb-core/src/main/groovy/geb/Page.groovy#L237
in
2.2

In your stacktrace getAtChecker() is called
from getShouldVerifyAtImplicitly() but that method does not exist in 2.2 so
I showed a different code path as an example.

2. Initialising Groovy FX has to be doing something very strange to Groovy
internals or class loading if after it happens out of a sudden private
properties are not found when accessed from within the class declaring them.

We could potentially cater for GroovyFX causing this behaviour but I'm not
sure that if we fix this particular instance a similar issue would not pop
up elsewhere or that we actually should. The code in question is valid
Groovy code and all tests in our suite pass so why should we be forced not
to use it? I'd be inclined to suggest going and asking on the GroovyFX
mailing list but the project seems not to be actively developed and the
mailing list page asks to post on the general Groovy User mailing list so I
don't expect that to yield any results. Another thing I'd potentially try
is to use plain JavaFX instead of GroovyFX - the scene you are building
seems simple enough so I'd expect using plain JavaFX not to be too big of
an inconvenience in this case.

Cheers,
Marcin

On Fri, May 17, 2019 at 3:46 PM Klaus L. <[email protected]> wrote:

> I admit being tempted to just roll back to Geb 2.2 and abandon the topic.
> But that cannot be the solution, right?
>
> So I built up a new Geb/Cucumber Maven project, boiling it down to an MCVE
> (see attached zip file).
>
> At least now I am able to link the problem to JavaFX:
> We developed a little GroovyFX dialogue running in a separate thread,
> allowing to interact with the running Maven Cucumber job (pausing at will,
> evaluating some expressions etc.).
> And now the MissingPropertyException arises if
>
>    - Geb has version 2.3.1 AND
>    - JavaFX "Application" is launched during Cucumber World hook.
>
> Reverting to Geb 2.2 OR removing the GroovyFX call both remove the
> Exception.
>
> Now I am completely lost! How can those two seemingly unrelated "things"
> interfere??? :-(
> Any ideas, anyone?
>
> Klaus
>
> PS: Stacktrace from MCVE project for reference:
>
> groovy.lang.MissingPropertyException: Unable to resolve atChecker as
> content for automation.EcosiaStartPage, or as a property on its Navigator
> context. Is atChecker a class you forgot to import?
> at
> geb.content.PageContentSupport.propertyMissing(PageContentSupport.groovy:47)
> at geb.content.PageContentSupport$propertyMissing.call(Unknown Source)
> at geb.Page.propertyMissing(Page.groovy:112)
> at geb.Page.getShouldVerifyAtImplicitly(Page.groovy:477)
> at geb.Browser.to(Browser.groovy:560)
> at geb.Browser$to$1.callCurrent(Unknown Source)
> at geb.Browser.to(Browser.groovy:537)
> at geb.Browser$to$0.callCurrent(Unknown Source)
> at geb.Browser.to(Browser.groovy:526)
> at geb.Browser.to(Browser.groovy)
> at
> geb.binding.BindingUpdater$InvocationForwarding.doCall(BindingUpdater.groovy:106)
> at automation.EcosiaSteps$_run_closure1.doCall(EcosiaSteps.groovy:6)
> at ✽.I open Ecosia(src/test/resources/features/Ecosia.feature:4)
>
>
>
> Am Donnerstag, 16. Mai 2019 10:28:26 UTC+2 schrieb Klaus L.:
>>
>> Thanks for responding :)
>>
>> Providing an MCVE is not that easy here though, because we have "modular"
>> setup with a shared library (bringing in a large GebConfig and necessary
>> dependencies), and actual product-related test projects. So I would have to
>> flatten the whole structure and compose a whole new small test project e.g.
>> for google.com :(
>>
>> @Trinidad: Thanks for the reference!
>> However it seems you are on a quite outdated version of cucumber (1.2.5
>> vs. 4.3.x), so I do not know if we are comparable here.
>>
>> But focusing on the other difference (Gradle vs. Maven), I played around
>> with the configs and found something peculiar:
>> When I modify my maven-failsafe-plugin config to reuse the Maven JVM
>> process ( <forkCount>0</forkCount> ) then the error disappears!
>> This is no feasible workaround for me for other reasons, but an
>> interesting observation, I think :-)
>>
>>
>>
>> Am Mittwoch, 15. Mai 2019 05:13:29 UTC+2 schrieb Trinidad Esparza:
>>>
>>> We recently updated the Geb project examples with all proper
>>> dependencies .
>>>
>>> https://github.com/geb/geb-example-cucumber-jvm/blob/master/build.gradle
>>>
>>> If this doesn’t work let us know but please provide example code.
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Geb User Mailing List" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/geb-user/86515f31-c5e7-4e03-aabb-69f898adc1bc%40googlegroups.com
> <https://groups.google.com/d/msgid/geb-user/86515f31-c5e7-4e03-aabb-69f898adc1bc%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "Geb 
User Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/geb-user/CA%2B52dQRqQx86D90dc93Amts_5vPikP8_3dUiQ1CHTCfeSSMydg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to