This is an automated email from the ASF dual-hosted git repository.
git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/groovy-dev-site.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 2c99259 2025/12/31 21:24:07: Updated geb directory of dev website
from geb@c9e10c0
2c99259 is described below
commit 2c99259783eb2a715c25ed34295b8285f3b2bfd3
Author: jenkins <[email protected]>
AuthorDate: Wed Dec 31 21:24:07 2025 +0000
2025/12/31 21:24:07: Updated geb directory of dev website from geb@c9e10c0
---
geb/index.html | 10 +++----
.../api/geb/driver/CachingDriverFactory.html | 11 +++++--
.../geb/navigator/AttributeAccessingMetaClass.html | 2 +-
geb/manual/snapshot/api/geb/spock/GebSpec.html | 2 +-
...icallyDispatchesToBrowserAstTransformation.html | 2 +-
geb/manual/snapshot/api/index-all.html | 4 ++-
geb/manual/snapshot/index.html | 35 ++++++++++++++++++++++
7 files changed, 55 insertions(+), 11 deletions(-)
diff --git a/geb/index.html b/geb/index.html
index b1f5113..e35b5c0 100644
--- a/geb/index.html
+++ b/geb/index.html
@@ -51,9 +51,9 @@
<div class="ui container">
<a href="./manual/current/api/" class="item">
<div class="ui green horizontal
label">current</div>
- 8.0.1
+ 8.0.0
</a>
- <a href="./manual/8.0.0/api/" class="item">8.0.0</a><a
href="./manual/7.0/api/" class="item">7.0</a><a href="./manual/6.0/api/"
class="item">6.0</a><a href="./manual/5.1/api/" class="item">5.1</a><a
href="./manual/5.0/api/" class="item">5.0</a><a href="./manual/4.1/api/"
class="item">4.1</a><a href="./manual/4.0/api/" class="item">4.0</a><a
href="./manual/3.4.1/api/" class="item">3.4.1</a><a href="./manual/3.4/api/"
class="item">3.4</a><a href="./manual/3.3/api/" [...]
+ <a href="./manual/7.0/api/" class="item">7.0</a><a
href="./manual/6.0/api/" class="item">6.0</a><a href="./manual/5.1/api/"
class="item">5.1</a><a href="./manual/5.0/api/" class="item">5.0</a><a
href="./manual/4.1/api/" class="item">4.1</a><a href="./manual/4.0/api/"
class="item">4.0</a><a href="./manual/3.4.1/api/" class="item">3.4.1</a><a
href="./manual/3.4/api/" class="item">3.4</a><a href="./manual/3.3/api/"
class="item">3.3</a><a href="./manual/3.2/api/" clas [...]
<a href="./manual/snapshot/api/" class="item"><div
class="ui yellow horizontal label">snapshot</div>8.0.2-SNAPSHOT</a>
</div>
</div>
@@ -62,9 +62,9 @@
<div class="ui container">
<a href="./manual/current/" class="item">
<div class="ui green horizontal
label">current</div>
- 8.0.1
+ 8.0.0
</a>
- <a href="./manual/8.0.0/" class="item">8.0.0</a><a
href="./manual/7.0/" class="item">7.0</a><a href="./manual/6.0/"
class="item">6.0</a><a href="./manual/5.1/" class="item">5.1</a><a
href="./manual/5.0/" class="item">5.0</a><a href="./manual/4.1/"
class="item">4.1</a><a href="./manual/4.0/" class="item">4.0</a><a
href="./manual/3.4.1/" class="item">3.4.1</a><a href="./manual/3.4/"
class="item">3.4</a><a href="./manual/3.3/" class="item">3.3</a><a
href="./manual/3. [...]
+ <a href="./manual/7.0/" class="item">7.0</a><a
href="./manual/6.0/" class="item">6.0</a><a href="./manual/5.1/"
class="item">5.1</a><a href="./manual/5.0/" class="item">5.0</a><a
href="./manual/4.1/" class="item">4.1</a><a href="./manual/4.0/"
class="item">4.0</a><a href="./manual/3.4.1/" class="item">3.4.1</a><a
href="./manual/3.4/" class="item">3.4</a><a href="./manual/3.3/"
class="item">3.3</a><a href="./manual/3.2/" class="item">3.2</a><a
href="./manual/3.1/" [...]
<a href="./manual/snapshot/" class="item"><div
class="ui yellow horizontal label">snapshot</div>8.0.2-SNAPSHOT</a>
</div>
</div>
@@ -93,7 +93,7 @@
<div class="ui four statistics inverted"
data-github-stats="">
<div class="static statistic">
<div class="value">
- 8.0.1
+ 8.0.0
</div>
<div class="label">
Latest Release
diff --git a/geb/manual/snapshot/api/geb/driver/CachingDriverFactory.html
b/geb/manual/snapshot/api/geb/driver/CachingDriverFactory.html
index f1d764b..c066833 100644
--- a/geb/manual/snapshot/api/geb/driver/CachingDriverFactory.html
+++ b/geb/manual/snapshot/api/geb/driver/CachingDriverFactory.html
@@ -157,7 +157,9 @@ implements <a
href='../../geb/driver/DriverFactory.html'>DriverFactory</a></pre>
<tr class="rowColor">
<td class="colFirst"><code></code></td>
<td class="colLast"><code>static <a
href='http://static.javadoc.io/org.seleniumhq.selenium/selenium-api/4.27.0/org/openqa/selenium/WebDriver.html'
title='WebDriver'>WebDriver</a></code></td>
- <td class="colLast"><code><strong><a
href="#clearCacheAndQuitDriver()">clearCacheAndQuitDriver</a></strong>()</code><br></td>
+ <td class="colLast"><code><strong><a
href="#clearCacheAndQuitDriver()">clearCacheAndQuitDriver</a></strong>()</code><br>Note:
When using a perThread cache and executing multiple tests in parallel, it is
possible to inadvertently
+ quit a driver in one thread that is being used by another, depending on how
your test runner handles parallel
+ execution. </td>
</tr>
<tr class="altColor">
@@ -246,7 +248,12 @@ implements <a
href='../../geb/driver/DriverFactory.html'>DriverFactory</a></pre>
<ul class="blockListLast">
<li class="blockList">
<h4>static <a
href='http://static.javadoc.io/org.seleniumhq.selenium/selenium-api/4.27.0/org/openqa/selenium/WebDriver.html'
title='WebDriver'>WebDriver</a> <strong>clearCacheAndQuitDriver</strong>()</h4>
- <p></p>
+ <p> Note: When using a perThread cache and
executing multiple tests in parallel, it is possible to inadvertently
+ quit a driver in one thread that is being used by another, depending on how
your test runner handles parallel
+ execution. The only known case of this is in JUnit's `@BeforeAll` and
`@AfterAll` lifecycle extension methods
+ on multiple classes annotated with `@Execution(CONCURRENT)`, but there may be
others.
+
+ Implicit driver lifecycle management is your friend.</p>
</li>
</ul>
diff --git
a/geb/manual/snapshot/api/geb/navigator/AttributeAccessingMetaClass.html
b/geb/manual/snapshot/api/geb/navigator/AttributeAccessingMetaClass.html
index 2c8b8e3..479015a 100644
--- a/geb/manual/snapshot/api/geb/navigator/AttributeAccessingMetaClass.html
+++ b/geb/manual/snapshot/api/geb/navigator/AttributeAccessingMetaClass.html
@@ -187,7 +187,7 @@ extends <a
href='http://docs.groovy-lang.org/docs/groovy-4.0.26/html/api/groovy/
<tr class="altColor">
<td class="colFirst"><code>class <a
href='http://docs.groovy-lang.org/docs/groovy-4.0.26/html/api/groovy/lang/DelegatingMetaClass.html'
title='DelegatingMetaClass'>DelegatingMetaClass</a></code></td>
- <td class="colLast"><code><a
href='http://docs.groovy-lang.org/docs/groovy-4.0.26/html/api/groovy/lang/DelegatingMetaClass.html#isGroovyObject()'
title='isGroovyObject'>isGroovyObject</a>, <a
href='http://docs.groovy-lang.org/docs/groovy-4.0.26/html/api/groovy/lang/DelegatingMetaClass.html#isModified()'
title='isModified'>isModified</a>, <a
href='http://docs.groovy-lang.org/docs/groovy-4.0.26/html/api/groovy/lang/DelegatingMetaClass.html#addNewInstanceMethod(j
[...]
+ <td class="colLast"><code><a
href='http://docs.groovy-lang.org/docs/groovy-4.0.26/html/api/groovy/lang/DelegatingMetaClass.html#isGroovyObject()'
title='isGroovyObject'>isGroovyObject</a>, <a
href='http://docs.groovy-lang.org/docs/groovy-4.0.26/html/api/groovy/lang/DelegatingMetaClass.html#isModified()'
title='isModified'>isModified</a>, <a
href='http://docs.groovy-lang.org/docs/groovy-4.0.26/html/api/groovy/lang/DelegatingMetaClass.html#addNewInstanceMethod(j
[...]
</tr>
</table>
</ul>
diff --git a/geb/manual/snapshot/api/geb/spock/GebSpec.html
b/geb/manual/snapshot/api/geb/spock/GebSpec.html
index 28eb013..bed19ff 100644
--- a/geb/manual/snapshot/api/geb/spock/GebSpec.html
+++ b/geb/manual/snapshot/api/geb/spock/GebSpec.html
@@ -212,7 +212,7 @@ implements <a
href='../../geb/test/ManagedGebTest.html'>ManagedGebTest</a></pre>
<tr class="altColor">
<td class="colFirst"><code>class <a
href='http://static.javadoc.io/org.spockframework/spock-core/2.3-groovy-4.0/spock/lang/Specification.html'
title='Specification'>Specification</a></code></td>
- <td class="colLast"><code><a
href='http://static.javadoc.io/org.spockframework/spock-core/2.3-groovy-4.0/spock/lang/Specification.html#verifyAll(java.lang.Object,
groovy.lang.Closure)' title='verifyAll'>verifyAll</a>, <a
href='http://static.javadoc.io/org.spockframework/spock-core/2.3-groovy-4.0/spock/lang/Specification.html#verifyAll(java.lang.Object,
java.lang.Class, groovy.lang.Closure)' title='verifyAll'>verifyAll</a>, <a
href='http://static.javadoc.io/org [...]
+ <td class="colLast"><code><a
href='http://static.javadoc.io/org.spockframework/spock-core/2.3-groovy-4.0/spock/lang/Specification.html#verifyAll(java.lang.Object,
groovy.lang.Closure)' title='verifyAll'>verifyAll</a>, <a
href='http://static.javadoc.io/org.spockframework/spock-core/2.3-groovy-4.0/spock/lang/Specification.html#verifyAll(java.lang.Object,
java.lang.Class, groovy.lang.Closure)' title='verifyAll'>verifyAll</a>, <a
href='http://static.javadoc.io/org [...]
</tr>
</table>
</ul>
diff --git
a/geb/manual/snapshot/api/geb/transform/DynamicallyDispatchesToBrowserAstTransformation.html
b/geb/manual/snapshot/api/geb/transform/DynamicallyDispatchesToBrowserAstTransformation.html
index d91c902..a75a1fb 100644
---
a/geb/manual/snapshot/api/geb/transform/DynamicallyDispatchesToBrowserAstTransformation.html
+++
b/geb/manual/snapshot/api/geb/transform/DynamicallyDispatchesToBrowserAstTransformation.html
@@ -234,7 +234,7 @@ extends
org.codehaus.groovy.transform.AbstractASTTransformation</pre>
<tr class="altColor">
<td class="colFirst"><code>class
org.codehaus.groovy.transform.AbstractASTTransformation</code></td>
- <td
class="colLast"><code>org.codehaus.groovy.transform.AbstractASTTransformation#shouldSkipOnDescriptorUndefinedAware(boolean,
java.util.Map, org.codehaus.groovy.ast.MethodNode, java.util.List,
java.util.List),
org.codehaus.groovy.transform.AbstractASTTransformation#tokenize(java.lang.String),
org.codehaus.groovy.transform.AbstractASTTransformation#addError(java.lang.String,
org.codehaus.groovy.ast.ASTNode),
org.codehaus.groovy.transform.AbstractASTTransforma [...]
+ <td
class="colLast"><code>org.codehaus.groovy.transform.AbstractASTTransformation#tokenize(java.lang.String),
org.codehaus.groovy.transform.AbstractASTTransformation#addError(java.lang.String,
org.codehaus.groovy.ast.ASTNode),
org.codehaus.groovy.transform.AbstractASTTransformation#shouldSkipOnDescriptorUndefinedAware(boolean,
java.util.Map, org.codehaus.groovy.ast.MethodNode, java.util.List,
java.util.List), org.codehaus.groovy.transform.AbstractASTTransforma [...]
</tr>
</table>
</ul>
diff --git a/geb/manual/snapshot/api/index-all.html
b/geb/manual/snapshot/api/index-all.html
index dc8cfc1..3978ede 100644
--- a/geb/manual/snapshot/api/index-all.html
+++ b/geb/manual/snapshot/api/index-all.html
@@ -414,7 +414,9 @@ if (location.href.indexOf('is-external=true') == -1) {
<dt><span class="strong"><a
href="geb/driver/CachingDriverFactory.html#clearCache()" title="Method in
CachingDriverFactory">clearCache()</a></span> - Method in <a
href="geb/driver/CachingDriverFactory.html">CachingDriverFactory</a>
</dt><dd> <div class="block"></div></dd>
<dt><span class="strong"><a
href="geb/driver/CachingDriverFactory.html#clearCacheAndQuitDriver()"
title="Method in CachingDriverFactory">clearCacheAndQuitDriver()</a></span> -
Method in <a
href="geb/driver/CachingDriverFactory.html">CachingDriverFactory</a>
-</dt><dd> <div class="block"></div></dd>
+</dt><dd> <div class="block">Note: When using a perThread cache and executing
multiple tests in parallel, it is possible to inadvertently
+ quit a driver in one thread that is being used by another, depending on how
your test runner handles parallel
+ execution. </div></dd>
<dt><span class="strong"><a
href="geb/driver/CachingDriverFactory.html#clearCacheCache()" title="Method in
CachingDriverFactory">clearCacheCache()</a></span> - Method in <a
href="geb/driver/CachingDriverFactory.html">CachingDriverFactory</a>
</dt><dd> <div class="block"></div></dd>
<dt><span class="strong"><a href="geb/Browser.html#clearCookies()"
title="Method in Browser">clearCookies()</a></span> - Method in <a
href="geb/Browser.html">Browser</a>
diff --git a/geb/manual/snapshot/index.html b/geb/manual/snapshot/index.html
index 7709587..064ea26 100644
--- a/geb/manual/snapshot/index.html
+++ b/geb/manual/snapshot/index.html
@@ -2122,6 +2122,41 @@ After calling any of these methods, the next request for
a default driver will r
<div class="paragraph">
<p>This caching behavior is <a
href="#driver-caching-configuration">configurable</a>.</p>
</div>
+<div class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-warning" title="Warning"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>Clearing the webdriver cache in this way is generally safe, though there is
a known gotcha for JUnit 5 tests running in parallel.
+If you have multiple test classes running in parallel and call <code><a
href="api/geb/driver/CachingDriverFactory.html#clearCache()">CachingDriverFactory.clearCache()</a></code>
or <code><a
href="api/geb/driver/CachingDriverFactory.html#clearCacheAndQuitDriver()">CachingDriverFactory.clearCacheAndQuitDriver()</a></code>
in methods annotated with <a
href="https://docs.junit.org/5.0.1/api/org/junit/jupiter/api/BeforeAll.html">@BeforeAll</a>
or <a href="https://docs.junit.org/5.0.1/api/org/ [...]
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>org.openqa.selenium.NoSuchSessionException: Session is
closed</code></p>
+</li>
+<li>
+<p><code>org.openqa.selenium.WebDriverException:
org.openqa.selenium.NoSuchWindowException: Window is closed</code></p>
+</li>
+<li>
+<p><code>java.util.concurrent.RejectedExecutionException: Task
org.openqa.selenium.htmlunit.HtmlUnitDriver$$Lambda$972/0x0000000100572c40@39b402c9
rejected from java.util.concurrent.ThreadPoolExecutor@4fd3fc52[Terminated,
pool size = 0, active threads = 0, queued tasks = 0, completed tasks =
4]</code></p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>This is because the <code>cacheDriverPerThread</code> setting keeps the
webdriver in a ThreadLocal. Since BeforeAll and AfterAll methods on different
test classes annotated with <code>@Execution(CONCURRENT)</code> may execute on
the same thread, it’s possible to inadvertently quit the driver being
used by another test currently executing on the same thread, leading to errors
like those above.</p>
+</div>
+<div class="paragraph">
+<p>If you’re relying on the implicit driver management to clean up the
driver objects for you, you should be fine.
+Likewise, clearing the driver cache in methods annotated with <a
href="https://docs.junit.org/5.0.1/api/org/junit/jupiter/api/BeforeEach.html"><code>@BeforeEach</code></a>
and <a
href="https://docs.junit.org/5.0.1/api/org/junit/jupiter/api/AfterEach.html"><code>@AfterEach</code></a>
should be fine, since parallel test methods (and test-specific lifecycle
methods) should be executed in the same thread. It’s only in the
<code>@BeforeAll</code>/<code>@AfterAll</code> case that you nee [...]
+</div>
+</td>
+</tr>
+</table>
+</div>
</div>
<div class="sect2">
<h3 id="driver-quirks"><a class="link" href="#driver-quirks">3.3. Driver
quirks</a></h3>