I have a vast quantity of tests for a website which worked fine until I
upgrade angularjs. Now they work intermittently.
The particular problem is with Geb's isDisplayed function.
If I upgrade Geb, then I have to upgrade Groovy. I either get
StackOverflowError or ShortTypeHandling errors.
Here are the relevant versions that *used* to work:
<cucumber-jvm.version>1.1.5</cucumber-jvm.version>
<gherkin.version>2.12.2</gherkin.version>
<groovy.version>2.1.6</groovy.version>
<geb.version>0.9.2</geb.version>
<selenium.version>2.38.0</selenium.version>
If I upgrade Geb to 1.1.1, I get:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError:
org/codehaus/groovy/runtime/typehandling/ShortTypeHandling
If I *then* upgrade Groovy to 2.4.11 or later I get:
java.lang.StackOverflowError
at java.lang.ThreadLocal.get(ThreadLocal.java:143)
at
java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryReleaseShared(ReentrantReadWriteLock.java:426)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.releaseShared(AbstractQueuedSynchronizer.java:1340)
at
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock(ReentrantReadWriteLock.java:883)
at
groovy.lang.ExpandoMetaClass.checkInitalised(ExpandoMetaClass.java:837)
The StackOverflowError appears to be triggered by a simple "Given":
Given(~'I am on the reference page for (.+)') { String path ->
}
I've removed the body to confirm that it's actuall just the Given that's
causing the problem.
Where to now?
--
View this message in context:
http://groovy.329449.n5.nabble.com/Version-Hell-tp5741010.html
Sent from the Groovy Users mailing list archive at Nabble.com.