Skip to content

Re-add Neo4j example apps and docs into monorepo (PR4)#15832

Open
borinquenkid wants to merge 2 commits into
feat/neo4j-gorm-registry-wiringfrom
feat/neo4j-examples-docs
Open

Re-add Neo4j example apps and docs into monorepo (PR4)#15832
borinquenkid wants to merge 2 commits into
feat/neo4j-gorm-registry-wiringfrom
feat/neo4j-examples-docs

Conversation

@borinquenkid

@borinquenkid borinquenkid commented Jul 5, 2026

Copy link
Copy Markdown
Member

📖 Neo4j GormRegistry migration — reading order: 4 of 5:

  1. Migrate grails-data-neo4j to Groovy 4/Jakarta/GORM 8 baseline #15816 — PR1: Groovy4/Jakarta/GORM8 baseline migration (no GormRegistry coupling)
  2. feat(grails-data-neo4j): fold standalone build into root settings.gradle (PR2) #15951 — PR2: fold standalone build into root settings.gradle
  3. feat(grails-data-neo4j): wire Neo4j adapter to GormRegistry's GormApiFactory mechanism (PR3) #15817 — PR3: wire Neo4jGormApiFactory into GormRegistry
  4. Re-add Neo4j example apps and docs into monorepo (PR4) #15832 — PR4: re-add example apps and docs into monorepo — this PR
  5. chore(grails-data-neo4j): clean up Checkstyle/CodeNarc violations (PR5) #15833 — PR5: Checkstyle/CodeNarc cleanup

You are reading 4 of 5.

This Neo4j chain branches off the core GormRegistry O(M+N) scaling stack's head (#15779#15780#15790) — it depends on that stack but is its own separate sequence, not additional steps within it.

Summary

Stacked on #15817 (PR3 — GormRegistry wiring). This is PR4 of the migration: re-adds the example apps and reference docs that PR2 (#15951, the settings.gradle fold) deliberately deferred.

  • Migrates 3 of the 5 standalone example apps into grails-test-examples/neo4j/ (grails3-neo4j, grails3-neo4j-hibernate, spring-boot), re-authored against the monorepo's convention plugins and org.apache.grails:* coordinates rather than git mv'd wholesale — mirrors how grails-data-graphql's examples were migrated in 9d7d4943d5.
  • Drops neo4j-standalone (no unique coverage beyond grails3-neo4j) and test-data-service (duplicated mongodb's own existing test-data-service example, plus had a stray cross-plugin mongodb-gson-templates dependency).
  • Rewrites grails-data-neo4j/docs/build.gradle against the gormApiDocs marker-property pattern from grails-data-mongodb/docs, replacing the broken fetchSource/rootProject.subprojects.each standalone-build logic (including the hibernate7/jandex exclusion workaround that pattern requires).
  • Along the way: replicates the Jetty/neo4j-java-driver version forces and JDK --add-opens flags into each example app's own build.gradle (Gradle resolves each project's classpath independently, so these don't propagate from a project dependency); fixes stale javax.servlet.error.exception references in error.gsp; fixes a MockGrailsPluginManager compatibility gap in Neo4jWithHibernateSpec's plugin mocking.
  • Neo4jWithHibernateSpec's actual assertion (that Neo4j gets a separate MappingContext when a Hibernate plugin is present) still fails after that mocking fix and is marked @PendingFeature — a pre-existing gap in this example app's own test, unrelated to MockGrailsPluginManager/Neo4jGrailsPlugin internals that's out of scope for an examples/docs migration.

Full details and rationale are in grails-data-neo4j/GORM_REGISTRY_MIGRATION.md's PR4 section.

Test plan

  • All 3 example apps compile (main, test, integrationTest source sets)
  • All 3 example apps' unit tests pass (grails-test-examples-neo4j-grails3-neo4j, -grails3-neo4j-hibernate, -spring-boot)
  • grails-data-neo4j-docs's asciidoctor and groovydoc tasks both execute successfully
  • Full repo-wide ./gradlew build -PskipTests re-check (attempted locally but couldn't be completed due to an environment/session constraint unrelated to the build itself — every narrower check above passed, and PR2's equivalent full-repo check already validated a full build with the broader wiring)

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings July 5, 2026 19:48

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR continues the Neo4j monorepo migration by re-adding selected Neo4j example applications under grails-test-examples/neo4j/ and wiring the Neo4j docs project back into the root build, while removing deferred/duplicate standalone example modules from grails-data-neo4j/examples.

Changes:

  • Adds Neo4j docs and Neo4j example apps as included Gradle projects in settings.gradle.
  • Re-introduces Neo4j example app sources/tests/resources (Grails 3-style apps + standalone Spring Boot demo) under grails-test-examples/neo4j/.
  • Removes legacy standalone example modules previously living under grails-data-neo4j/examples/ (including test-data-service, neo4j-standalone, and older grails3-* examples).

Reviewed changes

Copilot reviewed 49 out of 175 changed files in this pull request and generated no comments.

Show a summary per file
File Description
settings.gradle Includes Neo4j docs project and Neo4j example apps in the monorepo build.
grails-test-examples/neo4j/spring-boot/src/test/groovy/example/BookControllerSpec.groovy Adds a controller test for the standalone Spring Boot Neo4j demo.
grails-test-examples/neo4j/spring-boot/src/main/resources/application.yml Configures embedded ephemeral Neo4j for the Spring Boot demo.
grails-test-examples/neo4j/spring-boot/src/main/groovy/example/BookService.groovy Adds a GORM data service interface for Book.
grails-test-examples/neo4j/spring-boot/src/main/groovy/example/BookController.groovy Adds a REST controller to fetch a Book by title or return the first book.
grails-test-examples/neo4j/spring-boot/src/main/groovy/example/Book.groovy Adds a Neo4j-backed Book domain entity for the Spring Boot demo.
grails-test-examples/neo4j/spring-boot/src/main/groovy/example/Application.groovy Adds Spring Boot entrypoint wiring Neo4j datastore + seed data.
grails-test-examples/neo4j/spring-boot/build.gradle Builds the standalone Spring Boot Neo4j demo and pins Jetty/driver versions for Neo4j harness compatibility.
grails-test-examples/neo4j/grails3-neo4j/src/test/groovy/functional/tests/StandaloneNeo4jSpec.groovy Adds unit-style test asserting mapping context behavior for standalone Neo4j plugin usage.
grails-test-examples/neo4j/grails3-neo4j/src/test/groovy/functional/tests/BookSpec.groovy Adds a basic persistence test for Neo4j Book.
grails-test-examples/neo4j/grails3-neo4j/src/integration-test/groovy/functional/tests/BookControllerSpec.groovy Adds Geb-based integration test coverage for the Grails Neo4j example app.
grails-test-examples/neo4j/grails3-neo4j/grails-app/views/notFound.gsp Adds 404 view for the Grails Neo4j example app.
grails-test-examples/neo4j/grails3-neo4j/grails-app/views/layouts/main.gsp Adds main layout for the Grails Neo4j example app.
grails-test-examples/neo4j/grails3-neo4j/grails-app/views/error.gsp Updates servlet error attribute lookup to jakarta.servlet.*.
grails-test-examples/neo4j/grails3-neo4j/grails-app/views/book/show.gsp Adds scaffold-style show view for Book.
grails-test-examples/neo4j/grails3-neo4j/grails-app/views/book/index.gsp Adds scaffold-style index view for Book.
grails-test-examples/neo4j/grails3-neo4j/grails-app/views/book/edit.gsp Adds scaffold-style edit view for Book.
grails-test-examples/neo4j/grails3-neo4j/grails-app/views/book/create.gsp Adds scaffold-style create view for Book.
grails-test-examples/neo4j/grails3-neo4j/grails-app/services/functional/tests/PersonService.groovy Adds a Neo4j data service interface used by docs/examples (includes tagged snippets).
grails-test-examples/neo4j/grails3-neo4j/grails-app/init/functional/tests/Application.groovy Adds Grails app entrypoint for the Grails Neo4j example app.
grails-test-examples/neo4j/grails3-neo4j/grails-app/init/BootStrap.groovy Adds empty bootstrap hooks for the Grails Neo4j example app.
grails-test-examples/neo4j/grails3-neo4j/grails-app/i18n/messages.properties Adds default i18n messages for scaffolded UI in the Grails Neo4j example.
grails-test-examples/neo4j/grails3-neo4j/grails-app/i18n/messages_ru.properties Adds Russian i18n messages for the example app.
grails-test-examples/neo4j/grails3-neo4j/grails-app/i18n/messages_pt_PT.properties Adds pt_PT i18n messages for the example app.
grails-test-examples/neo4j/grails3-neo4j/grails-app/i18n/messages_it.properties Adds Italian i18n messages for the example app.
grails-test-examples/neo4j/grails3-neo4j/grails-app/i18n/messages_fr.properties Adds French i18n messages for the example app.
grails-test-examples/neo4j/grails3-neo4j/grails-app/i18n/messages_es.properties Adds Spanish i18n messages for the example app.
grails-test-examples/neo4j/grails3-neo4j/grails-app/domain/functional/tests/Person.groovy Adds Neo4j Person domain used for path queries in example/docs snippets.
grails-test-examples/neo4j/grails3-neo4j/grails-app/domain/functional/tests/Book.groovy Adds Neo4j Book domain with constraints.
grails-test-examples/neo4j/grails3-neo4j/grails-app/controllers/UrlMappings.groovy Adds URL mappings for the Grails Neo4j example app.
grails-test-examples/neo4j/grails3-neo4j/grails-app/conf/spring/resources.groovy Adds Spring DSL placeholder for the example app.
grails-test-examples/neo4j/grails3-neo4j/grails-app/conf/logback.xml Adds Logback config for the example app.
grails-test-examples/neo4j/grails3-neo4j/grails-app/conf/application.yml Adds application configuration for embedded ephemeral Neo4j and web defaults.
grails-test-examples/neo4j/grails3-neo4j/grails-app/assets/stylesheets/mobile.css Adds mobile stylesheet for scaffolded UI.
grails-test-examples/neo4j/grails3-neo4j/grails-app/assets/stylesheets/application.css Adds asset-pipeline CSS manifest.
grails-test-examples/neo4j/grails3-neo4j/grails-app/assets/javascripts/application.js Adds asset-pipeline JS manifest and spinner behavior.
grails-test-examples/neo4j/grails3-neo4j/grails-app/assets/images/skin/sorted_desc.gif Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j/grails-app/assets/images/skin/sorted_asc.gif Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j/grails-app/assets/images/skin/shadow.jpg Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j/grails-app/assets/images/skin/information.png Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j/grails-app/assets/images/skin/house.png Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j/grails-app/assets/images/skin/exclamation.png Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j/grails-app/assets/images/skin/database_table.png Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j/grails-app/assets/images/skin/database_save.png Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j/grails-app/assets/images/skin/database_edit.png Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j/grails-app/assets/images/skin/database_delete.png Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j/grails-app/assets/images/skin/database_add.png Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j-hibernate/src/test/groovy/functional/tests/Neo4jWithHibernateSpec.groovy Adjusts plugin mocking and marks the example assertion as pending (currently), testing mapping context separation when Hibernate is present.
grails-test-examples/neo4j/grails3-neo4j-hibernate/src/integration-test/groovy/functional/tests/BookControllerSpec.groovy Adds Geb-based integration test coverage for the Neo4j+Hibernate example app.
grails-test-examples/neo4j/grails3-neo4j-hibernate/src/integration-test/groovy/functional/tests/AuthorControllerSpec.groovy Adds Geb-based integration test coverage for Author scaffolding in the Neo4j+Hibernate example app.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/views/notFound.gsp Adds 404 view for the Neo4j+Hibernate example app.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/views/layouts/main.gsp Adds main layout for the Neo4j+Hibernate example app.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/views/error.gsp Updates servlet error attribute lookup to jakarta.servlet.*.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/views/book/show.gsp Adds scaffold-style show view for Book.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/views/book/index.gsp Adds scaffold-style index view for Book.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/views/book/edit.gsp Adds scaffold-style edit view for Book.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/views/book/create.gsp Adds scaffold-style create view for Book.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/views/author/show.gsp Adds scaffold-style show view for Author.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/views/author/index.gsp Adds scaffold-style index view for Author.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/views/author/edit.gsp Adds scaffold-style edit view for Author.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/views/author/create.gsp Adds scaffold-style create view for Author.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/init/functional/tests/Application.groovy Adds Grails app entrypoint for the Neo4j+Hibernate example app.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/init/BootStrap.groovy Adds empty bootstrap hooks for the Neo4j+Hibernate example app.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/i18n/messages.properties Adds default i18n messages for scaffolded UI in the Neo4j+Hibernate example.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/i18n/messages_ru.properties Adds Russian i18n messages for the example app.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/i18n/messages_pt_PT.properties Adds pt_PT i18n messages for the example app.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/i18n/messages_fr.properties Adds French i18n messages for the example app.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/domain/functional/tests/Book.groovy Adds a Book domain mapped with Neo4j in the Neo4j+Hibernate example.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/domain/functional/tests/Author.groovy Adds an Author domain used by scaffolding in the Neo4j+Hibernate example.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/controllers/UrlMappings.groovy Adds URL mappings for the Neo4j+Hibernate example app.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/conf/spring/resources.groovy Adds Spring DSL placeholder for the Neo4j+Hibernate example app.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/conf/logback.xml Adds Logback config for the Neo4j+Hibernate example app.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/assets/stylesheets/mobile.css Adds mobile stylesheet for scaffolded UI.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/assets/stylesheets/application.css Adds asset-pipeline CSS manifest.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/assets/javascripts/application.js Adds asset-pipeline JS manifest and spinner behavior.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/assets/images/skin/sorted_desc.gif Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/assets/images/skin/sorted_asc.gif Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/assets/images/skin/shadow.jpg Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/assets/images/skin/information.png Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/assets/images/skin/house.png Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/assets/images/skin/exclamation.png Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/assets/images/skin/database_table.png Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/assets/images/skin/database_save.png Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/assets/images/skin/database_edit.png Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/assets/images/skin/database_delete.png Adds UI asset for scaffold templates.
grails-test-examples/neo4j/grails3-neo4j-hibernate/grails-app/assets/images/skin/database_add.png Adds UI asset for scaffold templates.
grails-data-neo4j/examples/test-data-service/src/main/groovy/example/TestBean.groovy Removes legacy test-data-service example source (deprecated/duplicated example).
grails-data-neo4j/examples/test-data-service/src/main/groovy/example/LoginAuthenticationSucessHandler.groovy Removes legacy test-data-service example source (including javax.servlet.* usage).
grails-data-neo4j/examples/test-data-service/src/integration-test/groovy/example/TestServiceSpec.groovy Removes legacy integration test for test-data-service example.
grails-data-neo4j/examples/test-data-service/src/integration-test/groovy/example/StudentServiceSpec.groovy Removes legacy integration test for test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/views/object/_object.gson Removes legacy views-gson template from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/views/notFound.gson Removes legacy JSON 404 view from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/views/errors/_errors.gson Removes legacy validation error template from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/views/error.gson Removes legacy JSON 500 view from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/views/application/index.gson Removes legacy application index view from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/services/example/TestService.groovy Removes legacy service code from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/services/example/StudentService.groovy Removes legacy service code from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/services/example/PersonService.groovy Removes legacy service code from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/services/example/LibraryService.groovy Removes legacy service code from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/services/example/BookService.groovy Removes legacy data service code from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/init/example/BootStrap.groovy Removes legacy bootstrap from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/init/example/Application.groovy Removes legacy application entrypoint from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/i18n/messages.properties Removes legacy i18n messages from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/domain/example/Student.groovy Removes legacy domain from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/domain/example/Person.groovy Removes legacy domain from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/domain/example/Book.groovy Removes legacy domain from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/controllers/example/UrlMappings.groovy Removes legacy URL mappings from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/controllers/example/ApplicationController.groovy Removes legacy controller from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/conf/spring/resources.groovy Removes legacy Spring DSL wiring from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/conf/logback.xml Removes legacy logging config from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/conf/application.yml Removes legacy application config from test-data-service example.
grails-data-neo4j/examples/test-data-service/grails-app/conf/application.groovy Removes legacy config (including hard-coded JWT secret) from test-data-service example.
grails-data-neo4j/examples/test-data-service/gradle.properties Removes standalone Gradle properties for the legacy example.
grails-data-neo4j/examples/test-data-service/build.gradle Removes standalone build script for the legacy example.
grails-data-neo4j/examples/neo4j-standalone/src/test/groovy/example/PersonServiceSpec.groovy Removes legacy neo4j-standalone example test.
grails-data-neo4j/examples/neo4j-standalone/src/main/groovy/example/PersonService.groovy Removes legacy neo4j-standalone example service.
grails-data-neo4j/examples/neo4j-standalone/src/main/groovy/example/Person.groovy Removes legacy neo4j-standalone example domain.
grails-data-neo4j/examples/neo4j-standalone/gradle.properties Removes standalone Gradle properties for neo4j-standalone.
grails-data-neo4j/examples/neo4j-standalone/build.gradle Removes standalone build script for neo4j-standalone.
grails-data-neo4j/examples/neo4j-spring-boot/gradle.properties Removes standalone Gradle properties for legacy neo4j Spring Boot example.
grails-data-neo4j/examples/neo4j-spring-boot/build.gradle Removes standalone build script for legacy neo4j Spring Boot example.
grails-data-neo4j/examples/grails3-neo4j/gradle.properties Removes standalone Gradle properties for legacy Grails 3 Neo4j example.
grails-data-neo4j/examples/grails3-neo4j/build.gradle Removes standalone build script for legacy Grails 3 Neo4j example.
grails-data-neo4j/examples/grails3-neo4j-hibernate/gradle.properties Removes standalone Gradle properties for legacy Grails 3 Neo4j+Hibernate example.
grails-data-neo4j/examples/grails3-neo4j-hibernate/build.gradle Removes standalone build script for legacy Grails 3 Neo4j+Hibernate example.
grails-data-neo4j/boot-plugin/build.gradle Marks the Neo4j boot plugin as contributing to GORM API docs (gormApiDocs = true).
Comments suppressed due to low confidence (2)

grails-test-examples/neo4j/grails3-neo4j-hibernate/src/test/groovy/functional/tests/Neo4jWithHibernateSpec.groovy:51

  • The mock plugin registered as "hibernate" is currently returning Neo4jGrailsPlugin from getPluginClass(). MockGrailsPluginManager#registerMockPlugin derives the registered plugin's name from the plugin class, so this ends up registering a Neo4j plugin again and Neo4jGrailsPlugin#hasHibernatePlugin() will never detect Hibernate, making the test setup incorrect.
    grails-test-examples/neo4j/grails3-neo4j-hibernate/src/test/groovy/functional/tests/Neo4jWithHibernateSpec.groovy:44
  • The test name says the two mapping contexts are the same, but the assertion below expects them to be different (!=). This makes the test intent harder to understand when reading failures.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

borinquenkid and others added 2 commits July 9, 2026 21:16
…PR4)

Migrates 3 of the 5 standalone example apps into grails-test-examples/neo4j/
(grails3-neo4j, grails3-neo4j-hibernate, spring-boot), re-authored against the
monorepo's convention plugins and org.apache.grails:* coordinates rather than
git mv'd wholesale, mirroring how grails-data-graphql's examples were migrated
in 9d7d494. Drops neo4j-standalone (no unique coverage) and test-data-service
(duplicated mongodb's own example, plus a stray cross-plugin dependency).

Rewrites grails-data-neo4j/docs/build.gradle against the gormApiDocs
marker-property pattern from grails-data-mongodb/docs, replacing the broken
fetchSource/rootProject.subprojects.each standalone-build logic, including the
hibernate7/jandex exclusion workaround that pattern requires.

Along the way: replicates the Jetty/neo4j-java-driver forces and JDK
--add-opens flags into each example app's own build.gradle (Gradle resolves
each project's classpath independently); fixes stale javax.servlet.error.exception
references in error.gsp; fixes a MockGrailsPluginManager compatibility gap in
Neo4jWithHibernateSpec's plugin mocking. That spec's actual assertion (that
Neo4j gets a separate MappingContext when a Hibernate plugin is present) still
fails and is marked @PendingFeature - a pre-existing gap in this example app's
own test, out of scope for an examples/docs migration.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…errides

The three neo4j example apps deliberately force Jetty to 9.4.x and
neo4j-java-driver to 4.4.13 for compatibility with the embedded Neo4j
3.5.x test harness, diverging from the versions the Spring Boot BOM
(pulled in transitively via grails-bom) would otherwise select. This
was already documented in a comment but never registered with
validateDependencyVersions, so CI failed with "Dependency version
validation failed" for grails3-neo4j and grails3-neo4j-hibernate.

Declare the override via project.ext.allowedBomOverrides, the
mechanism the validator itself points to for intentional deviations.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@codecov

codecov Bot commented Jul 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (feat/neo4j-gorm-registry-wiring@087b7bc). Learn more about missing BASE report.

Additional details and impacted files

Impacted file tree graph

@@                         Coverage Diff                          @@
##             feat/neo4j-gorm-registry-wiring     #15832   +/-   ##
====================================================================
  Coverage                                   ?   49.6410%           
  Complexity                                 ?      17038           
====================================================================
  Files                                      ?       1961           
  Lines                                      ?      93741           
  Branches                                   ?      16465           
====================================================================
  Hits                                       ?      46534           
  Misses                                     ?      39962           
  Partials                                   ?       7245           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@testlens-app

testlens-app Bot commented Jul 10, 2026

Copy link
Copy Markdown

🚨 TestLens detected 10 failed tests 🚨

Here is what you can do:

  1. Inspect the test failures carefully.
  2. If you are convinced that some of the tests are flaky, you can mute them below.
  3. Finally, trigger a rerun by checking the rerun checkbox.

Test Summary

CI / Functional Tests (Java 25, indy=false) > :grails-test-examples-neo4j-grails3-neo4j-hibernate:integrationTest

Test Runs Flakiness
AuthorControllerSpec > Test list authors 0% 🟢
AuthorControllerSpec > Test save author 0% 🟢
BookControllerSpec > Test list books 0% 🟢

CI / Functional Tests (Java 25, indy=false) > :grails-test-examples-neo4j-grails3-neo4j:integrationTest

Test Runs Flakiness
BookControllerSpec > Test list books 0% 🟢
BookControllerSpec > Test save book 0% 🟢

SiteMesh 2 Compatibility / SiteMesh 2 Functional Tests (Java 21, indy=false) > :grails-test-examples-neo4j-grails3-neo4j-hibernate:integrationTest

Test Runs Flakiness
AuthorControllerSpec > Test list authors 0% 🟢
AuthorControllerSpec > Test save author 0% 🟢
BookControllerSpec > Test list books 0% 🟢

SiteMesh 2 Compatibility / SiteMesh 2 Functional Tests (Java 21, indy=false) > :grails-test-examples-neo4j-grails3-neo4j:integrationTest

Test Runs Flakiness
BookControllerSpec > Test list books 0% 🟢
BookControllerSpec > Test save book 0% 🟢

🏷️ Commit: 8786d41
▶️ Tests: 14044 executed
⚪️ Checks: 41/41 completed

Test Failures

AuthorControllerSpec > Test list authors (:grails-test-examples-neo4j-grails3-neo4j-hibernate:integrationTest in CI / Functional Tests (Java 25, indy=false))
java.lang.reflect.InvocationTargetException
	at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
	at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
	at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
	at geb.Configuration.createDriver(Configuration.groovy:378)
	at geb.Browser.createDriver(Browser.groovy:1047)
	at geb.Browser.getDriver(Browser.groovy:170)
	at geb.Browser.retrieveCurrentUri(Browser.groovy:1239)
	at geb.Browser.go(Browser.groovy:514)
	at geb.Browser.go(Browser.groovy:492)
	at geb.spock.GebSpec.methodMissing(GebSpec.groovy:1)
	at functional.tests.AuthorControllerSpec.Test list authors(AuthorControllerSpec.groovy:30)
	Suppressed: java.lang.reflect.InvocationTargetException
		at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
		at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
		at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
		at geb.Configuration.createDriver(Configuration.groovy:378)
		at geb.Browser.createDriver(Browser.groovy:1047)
		at geb.Browser.getDriver(Browser.groovy:170)
		at geb.Browser.clearCookies(Browser.groovy:636)
		at geb.Browser.clearCookiesQuietly(Browser.groovy:644)
		at geb.test.GebTestManager.resetBrowser(GebTestManager.groovy:148)
		at geb.test.GebTestManager.afterTest(GebTestManager.groovy:120)
		at geb.spock.GebExtension.addManagerCalls_closure3(GebExtension.groovy:77)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:141)
		at geb.spock.GebExtension.addManagerCalls_closure2(GebExtension.groovy:65)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.149'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '25.0.3'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
		at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
		at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
		at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
		at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
		at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
		... 21 more
Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.149'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '25.0.3'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
	at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
	... 13 more
AuthorControllerSpec > Test save author (:grails-test-examples-neo4j-grails3-neo4j-hibernate:integrationTest in CI / Functional Tests (Java 25, indy=false))
java.lang.reflect.InvocationTargetException
	at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
	at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
	at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
	at geb.Configuration.createDriver(Configuration.groovy:378)
	at geb.Browser.createDriver(Browser.groovy:1047)
	at geb.Browser.getDriver(Browser.groovy:170)
	at geb.Browser.retrieveCurrentUri(Browser.groovy:1239)
	at geb.Browser.go(Browser.groovy:514)
	at geb.Browser.go(Browser.groovy:492)
	at geb.spock.GebSpec.methodMissing(GebSpec.groovy:1)
	at functional.tests.AuthorControllerSpec.Test save author(AuthorControllerSpec.groovy:38)
	Suppressed: java.lang.reflect.InvocationTargetException
		at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
		at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
		at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
		at geb.Configuration.createDriver(Configuration.groovy:378)
		at geb.Browser.createDriver(Browser.groovy:1047)
		at geb.Browser.getDriver(Browser.groovy:170)
		at geb.Browser.clearCookies(Browser.groovy:636)
		at geb.Browser.clearCookiesQuietly(Browser.groovy:644)
		at geb.test.GebTestManager.resetBrowser(GebTestManager.groovy:148)
		at geb.test.GebTestManager.afterTest(GebTestManager.groovy:120)
		at geb.spock.GebExtension.addManagerCalls_closure3(GebExtension.groovy:77)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:141)
		at geb.spock.GebExtension.addManagerCalls_closure2(GebExtension.groovy:65)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.149'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '25.0.3'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
		at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
		at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
		at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
		at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
		at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
		... 21 more
Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.149'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '25.0.3'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
	at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
	... 13 more
BookControllerSpec > Test list books (:grails-test-examples-neo4j-grails3-neo4j-hibernate:integrationTest in CI / Functional Tests (Java 25, indy=false))
java.lang.reflect.InvocationTargetException
	at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
	at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
	at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
	at geb.Configuration.createDriver(Configuration.groovy:378)
	at geb.Browser.createDriver(Browser.groovy:1047)
	at geb.Browser.getDriver(Browser.groovy:170)
	at geb.Browser.retrieveCurrentUri(Browser.groovy:1239)
	at geb.Browser.go(Browser.groovy:514)
	at geb.Browser.go(Browser.groovy:492)
	at geb.spock.GebSpec.methodMissing(GebSpec.groovy:1)
	at functional.tests.BookControllerSpec.Test list books(BookControllerSpec.groovy:31)
	Suppressed: java.lang.reflect.InvocationTargetException
		at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
		at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
		at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
		at geb.Configuration.createDriver(Configuration.groovy:378)
		at geb.Browser.createDriver(Browser.groovy:1047)
		at geb.Browser.getDriver(Browser.groovy:170)
		at geb.Browser.clearCookies(Browser.groovy:636)
		at geb.Browser.clearCookiesQuietly(Browser.groovy:644)
		at geb.test.GebTestManager.resetBrowser(GebTestManager.groovy:148)
		at geb.test.GebTestManager.afterTest(GebTestManager.groovy:120)
		at geb.spock.GebExtension.addManagerCalls_closure3(GebExtension.groovy:77)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:141)
		at geb.spock.GebExtension.addManagerCalls_closure2(GebExtension.groovy:65)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.149'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '25.0.3'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
		at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
		at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
		at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
		at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
		at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
		... 21 more
Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.149'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '25.0.3'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
	at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
	... 13 more
BookControllerSpec > Test list books (:grails-test-examples-neo4j-grails3-neo4j:integrationTest in CI / Functional Tests (Java 25, indy=false))
java.lang.reflect.InvocationTargetException
	at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
	at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
	at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
	at geb.Configuration.createDriver(Configuration.groovy:378)
	at geb.Browser.createDriver(Browser.groovy:1047)
	at geb.Browser.getDriver(Browser.groovy:170)
	at geb.Browser.retrieveCurrentUri(Browser.groovy:1239)
	at geb.Browser.go(Browser.groovy:514)
	at geb.Browser.go(Browser.groovy:492)
	at geb.spock.GebSpec.methodMissing(GebSpec.groovy:1)
	at functional.tests.BookControllerSpec.Test list books(BookControllerSpec.groovy:30)
	Suppressed: java.lang.reflect.InvocationTargetException
		at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
		at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
		at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
		at geb.Configuration.createDriver(Configuration.groovy:378)
		at geb.Browser.createDriver(Browser.groovy:1047)
		at geb.Browser.getDriver(Browser.groovy:170)
		at geb.Browser.clearCookies(Browser.groovy:636)
		at geb.Browser.clearCookiesQuietly(Browser.groovy:644)
		at geb.test.GebTestManager.resetBrowser(GebTestManager.groovy:148)
		at geb.test.GebTestManager.afterTest(GebTestManager.groovy:120)
		at geb.spock.GebExtension.addManagerCalls_closure3(GebExtension.groovy:77)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:141)
		at geb.spock.GebExtension.addManagerCalls_closure2(GebExtension.groovy:65)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.149'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '25.0.3'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
		at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
		at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
		at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
		at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
		at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
		... 21 more
Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.149'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '25.0.3'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
	at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
	... 13 more
BookControllerSpec > Test save book (:grails-test-examples-neo4j-grails3-neo4j:integrationTest in CI / Functional Tests (Java 25, indy=false))
java.lang.reflect.InvocationTargetException
	at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
	at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
	at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
	at geb.Configuration.createDriver(Configuration.groovy:378)
	at geb.Browser.createDriver(Browser.groovy:1047)
	at geb.Browser.getDriver(Browser.groovy:170)
	at geb.Browser.retrieveCurrentUri(Browser.groovy:1239)
	at geb.Browser.go(Browser.groovy:514)
	at geb.Browser.go(Browser.groovy:492)
	at geb.spock.GebSpec.methodMissing(GebSpec.groovy:1)
	at functional.tests.BookControllerSpec.Test save book(BookControllerSpec.groovy:38)
	Suppressed: java.lang.reflect.InvocationTargetException
		at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
		at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
		at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
		at geb.Configuration.createDriver(Configuration.groovy:378)
		at geb.Browser.createDriver(Browser.groovy:1047)
		at geb.Browser.getDriver(Browser.groovy:170)
		at geb.Browser.clearCookies(Browser.groovy:636)
		at geb.Browser.clearCookiesQuietly(Browser.groovy:644)
		at geb.test.GebTestManager.resetBrowser(GebTestManager.groovy:148)
		at geb.test.GebTestManager.afterTest(GebTestManager.groovy:120)
		at geb.spock.GebExtension.addManagerCalls_closure3(GebExtension.groovy:77)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:141)
		at geb.spock.GebExtension.addManagerCalls_closure2(GebExtension.groovy:65)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.149'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '25.0.3'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
		at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
		at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
		at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
		at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
		at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
		... 21 more
Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.149'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '25.0.3'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
	at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
	... 13 more
AuthorControllerSpec > Test list authors (:grails-test-examples-neo4j-grails3-neo4j-hibernate:integrationTest in SiteMesh 2 Compatibility / SiteMesh 2 Functional Tests (Java 21, indy=false))
java.lang.reflect.InvocationTargetException
	at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
	at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
	at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
	at geb.Configuration.createDriver(Configuration.groovy:378)
	at geb.Browser.createDriver(Browser.groovy:1047)
	at geb.Browser.getDriver(Browser.groovy:170)
	at geb.Browser.retrieveCurrentUri(Browser.groovy:1239)
	at geb.Browser.go(Browser.groovy:514)
	at geb.Browser.go(Browser.groovy:492)
	at geb.spock.GebSpec.methodMissing(GebSpec.groovy:1)
	at functional.tests.AuthorControllerSpec.Test list authors(AuthorControllerSpec.groovy:30)
	Suppressed: java.lang.reflect.InvocationTargetException
		at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
		at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
		at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
		at geb.Configuration.createDriver(Configuration.groovy:378)
		at geb.Browser.createDriver(Browser.groovy:1047)
		at geb.Browser.getDriver(Browser.groovy:170)
		at geb.Browser.clearCookies(Browser.groovy:636)
		at geb.Browser.clearCookiesQuietly(Browser.groovy:644)
		at geb.test.GebTestManager.resetBrowser(GebTestManager.groovy:148)
		at geb.test.GebTestManager.afterTest(GebTestManager.groovy:120)
		at geb.spock.GebExtension.addManagerCalls_closure3(GebExtension.groovy:77)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:141)
		at geb.spock.GebExtension.addManagerCalls_closure2(GebExtension.groovy:65)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.80'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '21.0.11'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
		at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
		at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
		at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
		at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
		at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
		... 21 more
Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.80'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '21.0.11'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
	at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
	... 13 more
AuthorControllerSpec > Test save author (:grails-test-examples-neo4j-grails3-neo4j-hibernate:integrationTest in SiteMesh 2 Compatibility / SiteMesh 2 Functional Tests (Java 21, indy=false))
java.lang.reflect.InvocationTargetException
	at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
	at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
	at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
	at geb.Configuration.createDriver(Configuration.groovy:378)
	at geb.Browser.createDriver(Browser.groovy:1047)
	at geb.Browser.getDriver(Browser.groovy:170)
	at geb.Browser.retrieveCurrentUri(Browser.groovy:1239)
	at geb.Browser.go(Browser.groovy:514)
	at geb.Browser.go(Browser.groovy:492)
	at geb.spock.GebSpec.methodMissing(GebSpec.groovy:1)
	at functional.tests.AuthorControllerSpec.Test save author(AuthorControllerSpec.groovy:38)
	Suppressed: java.lang.reflect.InvocationTargetException
		at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
		at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
		at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
		at geb.Configuration.createDriver(Configuration.groovy:378)
		at geb.Browser.createDriver(Browser.groovy:1047)
		at geb.Browser.getDriver(Browser.groovy:170)
		at geb.Browser.clearCookies(Browser.groovy:636)
		at geb.Browser.clearCookiesQuietly(Browser.groovy:644)
		at geb.test.GebTestManager.resetBrowser(GebTestManager.groovy:148)
		at geb.test.GebTestManager.afterTest(GebTestManager.groovy:120)
		at geb.spock.GebExtension.addManagerCalls_closure3(GebExtension.groovy:77)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:141)
		at geb.spock.GebExtension.addManagerCalls_closure2(GebExtension.groovy:65)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.80'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '21.0.11'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
		at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
		at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
		at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
		at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
		at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
		... 21 more
Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.80'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '21.0.11'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
	at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
	... 13 more
BookControllerSpec > Test list books (:grails-test-examples-neo4j-grails3-neo4j:integrationTest in SiteMesh 2 Compatibility / SiteMesh 2 Functional Tests (Java 21, indy=false))
java.lang.reflect.InvocationTargetException
	at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
	at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
	at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
	at geb.Configuration.createDriver(Configuration.groovy:378)
	at geb.Browser.createDriver(Browser.groovy:1047)
	at geb.Browser.getDriver(Browser.groovy:170)
	at geb.Browser.retrieveCurrentUri(Browser.groovy:1239)
	at geb.Browser.go(Browser.groovy:514)
	at geb.Browser.go(Browser.groovy:492)
	at geb.spock.GebSpec.methodMissing(GebSpec.groovy:1)
	at functional.tests.BookControllerSpec.Test list books(BookControllerSpec.groovy:30)
	Suppressed: java.lang.reflect.InvocationTargetException
		at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
		at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
		at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
		at geb.Configuration.createDriver(Configuration.groovy:378)
		at geb.Browser.createDriver(Browser.groovy:1047)
		at geb.Browser.getDriver(Browser.groovy:170)
		at geb.Browser.clearCookies(Browser.groovy:636)
		at geb.Browser.clearCookiesQuietly(Browser.groovy:644)
		at geb.test.GebTestManager.resetBrowser(GebTestManager.groovy:148)
		at geb.test.GebTestManager.afterTest(GebTestManager.groovy:120)
		at geb.spock.GebExtension.addManagerCalls_closure3(GebExtension.groovy:77)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:141)
		at geb.spock.GebExtension.addManagerCalls_closure2(GebExtension.groovy:65)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.80'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '21.0.11'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
		at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
		at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
		at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
		at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
		at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
		... 21 more
Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.80'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '21.0.11'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
	at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
	... 13 more
BookControllerSpec > Test list books (:grails-test-examples-neo4j-grails3-neo4j-hibernate:integrationTest in SiteMesh 2 Compatibility / SiteMesh 2 Functional Tests (Java 21, indy=false))
java.lang.reflect.InvocationTargetException
	at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
	at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
	at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
	at geb.Configuration.createDriver(Configuration.groovy:378)
	at geb.Browser.createDriver(Browser.groovy:1047)
	at geb.Browser.getDriver(Browser.groovy:170)
	at geb.Browser.retrieveCurrentUri(Browser.groovy:1239)
	at geb.Browser.go(Browser.groovy:514)
	at geb.Browser.go(Browser.groovy:492)
	at geb.spock.GebSpec.methodMissing(GebSpec.groovy:1)
	at functional.tests.BookControllerSpec.Test list books(BookControllerSpec.groovy:31)
	Suppressed: java.lang.reflect.InvocationTargetException
		at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
		at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
		at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
		at geb.Configuration.createDriver(Configuration.groovy:378)
		at geb.Browser.createDriver(Browser.groovy:1047)
		at geb.Browser.getDriver(Browser.groovy:170)
		at geb.Browser.clearCookies(Browser.groovy:636)
		at geb.Browser.clearCookiesQuietly(Browser.groovy:644)
		at geb.test.GebTestManager.resetBrowser(GebTestManager.groovy:148)
		at geb.test.GebTestManager.afterTest(GebTestManager.groovy:120)
		at geb.spock.GebExtension.addManagerCalls_closure3(GebExtension.groovy:77)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:141)
		at geb.spock.GebExtension.addManagerCalls_closure2(GebExtension.groovy:65)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.80'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '21.0.11'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
		at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
		at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
		at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
		at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
		at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
		... 21 more
Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.80'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '21.0.11'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
	at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
	... 13 more
BookControllerSpec > Test save book (:grails-test-examples-neo4j-grails3-neo4j:integrationTest in SiteMesh 2 Compatibility / SiteMesh 2 Functional Tests (Java 21, indy=false))
java.lang.reflect.InvocationTargetException
	at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
	at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
	at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
	at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
	at geb.Configuration.createDriver(Configuration.groovy:378)
	at geb.Browser.createDriver(Browser.groovy:1047)
	at geb.Browser.getDriver(Browser.groovy:170)
	at geb.Browser.retrieveCurrentUri(Browser.groovy:1239)
	at geb.Browser.go(Browser.groovy:514)
	at geb.Browser.go(Browser.groovy:492)
	at geb.spock.GebSpec.methodMissing(GebSpec.groovy:1)
	at functional.tests.BookControllerSpec.Test save book(BookControllerSpec.groovy:38)
	Suppressed: java.lang.reflect.InvocationTargetException
		at geb.driver.NameBasedDriverFactory.getDriver(NameBasedDriverFactory.groovy:48)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy:64)
		at geb.driver.CachingDriverFactory.getDriver_closure5(CachingDriverFactory.groovy)
		at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:88)
		at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:63)
		at geb.Configuration.createDriver(Configuration.groovy:378)
		at geb.Browser.createDriver(Browser.groovy:1047)
		at geb.Browser.getDriver(Browser.groovy:170)
		at geb.Browser.clearCookies(Browser.groovy:636)
		at geb.Browser.clearCookiesQuietly(Browser.groovy:644)
		at geb.test.GebTestManager.resetBrowser(GebTestManager.groovy:148)
		at geb.test.GebTestManager.afterTest(GebTestManager.groovy:120)
		at geb.spock.GebExtension.addManagerCalls_closure3(GebExtension.groovy:77)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
		at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:141)
		at geb.spock.GebExtension.addManagerCalls_closure2(GebExtension.groovy:65)
		at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:139)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.80'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '21.0.11'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
		at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
		at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
		at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
		at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
		at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
		at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
		at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
		at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
		... 21 more
Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome instance exited. Examine ChromeDriver verbose log to determine the cause. 
Host info: host: 'runnervm5mmn9', ip: '10.1.0.80'
Build info: version: '4.43.0', revision: 'dd0f534'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.17.0-1018-azure', java.version: '21.0.11'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: /usr/bin/google-chrome, extensions: []}}]}]
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:195)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:606)
	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:290)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:213)
	at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:115)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:92)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:87)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51)
	... 13 more

Muted Tests

Select tests to mute in this pull request:

  • AuthorControllerSpec > Test list authors
  • AuthorControllerSpec > Test save author
  • BookControllerSpec > Test list books
  • BookControllerSpec > Test save book

Reuse successful test results:

  • ♻️ Only rerun the tests that failed or were muted before

Click the checkbox to trigger a rerun:

  • Rerun jobs

Learn more about TestLens at testlens.app.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants