keycloak / keycloak

Open Source Identity and Access Management For Modern Applications and Services
https://www.keycloak.org
Apache License 2.0
23.33k stars 6.76k forks source link

MigrationTest » IllegalArgument argument type mismatch [JDK Temurin 17] #20455

Closed lhanusov closed 1 year ago

lhanusov commented 1 year ago

Before reporting an issue

Area

core

Describe the bug

MigrationTest in GH Actions fails: https://github.com/lhanusov/keycloak/actions/runs/5012199798/jobs/8984391145 Error: IllegalArgument argument type mismatch JDK: Temurin 17

If you build auth-server-quarkus with Temurin and run it with Temurin it fails. If you build auth-server-quarkus with Temurin and run it with RH OpenJDK it fails. If you build auth-server-quarkus with RH OpenJDK and run it with RH OpenJDK it passes. If you build auth-server-quarkus with RH OpenJDK and run it with Temurin it passes.

Version

999.0.0-SNAPSHOT

Expected behavior

Test class MigrationTest should pass.

Actual behavior

Test class MigrationTest fails.

How to Reproduce?

Run GH actions in your fork or install JDK Temurin 17 locally, build whole project and trigger the test:

./mvnw clean install -Dsurefire.rerunFailingTestsCount=2 -nsu -B \ -Pjpa -Pauth-server-quarkus -Pdb-mariadb -Pauth-server-migration \ -Dtest=MigrationTest \ -Dmigration.mode=auto \ -Dmigrated.auth.server.version=19.0.3 \ -Dmigration.import.file.name=migration-realm-19.0.3.json \ -Dauth.server.ssl.required=false \ -Dauth.server.db.host=localhost \ -f testsuite/integration-arquillian/pom.xml

Anything else?

No response

lhanusov commented 1 year ago

@mposolda @vmuzikar @vramik @miquelsi Hi guys, this failure is related to MigrationTest class which is planned to be a part of GH Actions workflow created by @miquelsi.

mposolda commented 1 year ago

@lhanusov I am not sure why is this assigned to me? From the log, I can see that there is not any issue in the migration itself, but something in the arquillian layer when running MigrationTest:

Error:  Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.888 s <<< FAILURE! - in org.keycloak.testsuite.migration.MigrationTest
Error: OR] org.keycloak.testsuite.migration.MigrationTest  Time elapsed: 1.851 s  <<< ERROR!
-- java.lang.IllegalArgumentException: argument type mismatch
--  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
--  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
--  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
--  at java.base/java.lang.reflect.Method.invoke(Method.java:568)
--  at org.jboss.arquillian.container.impl.MapObject.populate(MapObject.java:54)
--  at org.jboss.arquillian.container.impl.ContainerImpl.createDeployableConfiguration(ContainerImpl.java:109)

It seems that correct area for this is area/testsuite as this looks like a testsuite issue. I suppose we need support for the setup with:

Not sure who's responsible for setup of this, but for now, I am unassigned from myself until this is clearified.

lhanusov commented 1 year ago

It seems this fix: https://github.com/keycloak/keycloak/pull/20600 removed that problem with both Java -> tested locally.

vmuzikar commented 1 year ago

@mabartos Do you think we can close this as @lhanusov indicates it's fixed already?

mabartos commented 1 year ago

@vmuzikar I've been discussing it with @lhanusov, and it seems the issue is not solved yet. Executions of the migration test in the GHA CI fail. We need to analyze it more.

lhanusov commented 1 year ago

@miquelsi @vmuzikar @mabartos recent PR: https://github.com/keycloak/keycloak/pull/20654 GH Actions still failing

From my point of view this is no more a problem of Quarkus build but Arquillian, because currently it doesn't matter if it's built with Temurin or RH JDK, and recent build and test show that it's fine to trigger tests with integration-arquillian or integration-arquillian-tests-base

I am not able to reproduce it via cmd and maven, only with Junit plugin in IntelliJ and still not every time, because it sometimes fails on NullpointerException when there is a missing Maria DB container (Junit somehow forgets to start Docker pluging).

2023-05-30 16:23:19,934 INFO  [org.keycloak.quarkus.runtime.hostname.DefaultHostnameProvider] (main) Hostname settings: Base URL: <unset>, Hostname: <request>, Strict HTTPS: false, Path: <request>, Strict BackChannel: false, Admin URL: <unset>, Admin: <request>, Port: -1, Proxied: false
2023-05-30 16:23:20,638 INFO  [org.keycloak.common.crypto.CryptoIntegration] (main) Detected crypto provider: org.keycloak.crypto.def.DefaultCryptoProvider
2023-05-30 16:23:21,050 WARN  [io.agroal.pool] (agroal-11) Datasource '<default>': Failed to create connection due to NullPointerException
2023-05-30 16:23:21,051 WARN  [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator] (JPA Startup Thread: keycloak-default) HHH000342: Could not obtain connection to query metadata: java.lang.NullPointerException: Cannot invoke "org.mariadb.jdbc.UrlParser.getOptions()" because "urlParser" is null
    at org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:146)
    at org.mariadb.jdbc.MariaDbDataSource.getConnection(MariaDbDataSource.java:275)
    at org.mariadb.jdbc.MariaDbDataSource.getXAConnection(MariaDbDataSource.java:453)
    at io.agroal.pool.ConnectionFactory.createConnection(ConnectionFactory.java:216)
    at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:513)
    at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:494)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at io.agroal.pool.util.PriorityScheduledExecutor.beforeExecute(PriorityScheduledExecutor.java:75)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.lang.Thread.run(Thread.java:833)
2023-05-30 16:23:24,252 INFO  [org.infinispan.CLUSTER] (main) ISPN000080: Disconnecting JGroups channel `ISPN`
2023-05-30 16:23:24,391 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: Failed to start server in (import_export) mode
2023-05-30 16:23:24,391 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) Error details:: java.lang.NullPointerException: Cannot invoke "org.mariadb.jdbc.UrlParser.getOptions()" because "urlParser" is null
    at org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:146)
    at org.mariadb.jdbc.MariaDbDataSource.getConnection(MariaDbDataSource.java:275)
    at org.mariadb.jdbc.MariaDbDataSource.getXAConnection(MariaDbDataSource.java:453)
    at io.agroal.pool.ConnectionFactory.createConnection(ConnectionFactory.java:216)
    at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:513)
    at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:494)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at io.agroal.pool.util.PriorityScheduledExecutor.beforeExecute(PriorityScheduledExecutor.java:75)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.lang.Thread.run(Thread.java:833)

Test ignored.

java.lang.RuntimeException: java.io.IOException: Command import was executed with exit status 1

    at org.keycloak.testsuite.arquillian.containers.KeycloakQuarkusServerDeployableContainer.start(KeycloakQuarkusServerDeployableContainer.java:52)
    at org.jboss.arquillian.container.impl.ContainerImpl.start(ContainerImpl.java:179)
    at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$8.perform(ContainerLifecycleController.java:137)
    at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$8.perform(ContainerLifecycleController.java:133)
    at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forContainer(ContainerLifecycleController.java:208)
    at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.startContainer(ContainerLifecycleController.java:133)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
    at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
    at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:90)
    at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java:54)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
    at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:95)
    at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:133)
    at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:105)
    at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:62)
    at org.keycloak.testsuite.arquillian.AuthServerTestEnricher.startMigratedContainer(AuthServerTestEnricher.java:348)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
    at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
    at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:90)
    at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:133)
    at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:105)
    at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:62)
    at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java:83)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
    at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
    at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:90)
    at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:69)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
    at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:95)
    at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:133)
    at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:105)
    at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeSuite(EventTestRunnerAdaptor.java:71)
    at org.jboss.arquillian.junit.AdaptorManager.initializeAdaptor(AdaptorManager.java:23)
    at org.jboss.arquillian.junit.AdaptorManagerWithNotifier.initializeAdaptor(AdaptorManagerWithNotifier.java:19)
    at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:109)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
    at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
    at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
    at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
    at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
Caused by: java.io.IOException: Command import was executed with exit status 1
    at org.keycloak.testsuite.arquillian.containers.KeycloakQuarkusServerDeployableContainer.executeCommand(KeycloakQuarkusServerDeployableContainer.java:85)
    at org.keycloak.testsuite.arquillian.containers.KeycloakQuarkusServerDeployableContainer.importRealm(KeycloakQuarkusServerDeployableContainer.java:127)
    at org.keycloak.testsuite.arquillian.containers.KeycloakQuarkusServerDeployableContainer.start(KeycloakQuarkusServerDeployableContainer.java:46)
    ... 61 more

When working with CMD all Maven steps works fine with both Javas: RH JDK 17 and Temurin 17

CMD steps with or without wrapper possible (./mvnw):

BUILD: mvn clean install -nsu -B -DskipTests
TEST: mvn clean install -Dsurefire.rerunFailingTestsCount=2 -nsu -B   -Pjpa -Pauth-server-quarkus -Pdb-mariadb -Pauth-server-migration   -Dtest=MigrationTest   -Dmigration.mode=auto   -Dmigrated.auth.server.version=19.0.3   -Dmigration.import.file.name=migration-realm-19.0.3.json   -Dauth.server.ssl.required=false   -Dauth.server.db.host=localhost -Darquillian.debug=true -f testsuite/integration-arquillian/pom.xml

OR

TEST: mvn clean install -Dsurefire.rerunFailingTestsCount=2 -nsu -B   -Pjpa -Pauth-server-quarkus -Pdb-mariadb -Pauth-server-migration   -Dtest=MigrationTest   -Dmigration.mode=auto   -Dmigrated.auth.server.version=19.0.3   -Dmigration.import.file.name=migration-realm-19.0.3.json   -Dauth.server.ssl.required=false   -Dauth.server.db.host=localhost -Darquillian.debug=true -f testsuite/integration-arquillian/tests/base/pom.xml 
lhanusov commented 1 year ago

Removing - core and Quarkus team, because it's related to test suite only.

lhanusov commented 1 year ago

Can't reproduce anymore -> GH failure still persists it will be fixed after RHBK22 release

ahus1 commented 1 year ago

Still happens for me randomly, see https://github.com/keycloak/keycloak/actions/runs/5223358364/jobs/9430423415

@lhanusov - please consider re-opening.

lhanusov commented 1 year ago

@stianst @ahus1 @miquelsi re-opening issue since it has happened 4 times with oracle or postgres db CI: https://github.com/keycloak/keycloak/actions/runs/5305486765, https://github.com/keycloak/keycloak/actions/runs/5301319685, https://github.com/keycloak/keycloak/actions/runs/5295814986, https://github.com/keycloak/keycloak/actions/runs/5227632824

lhanusov commented 1 year ago

Intial problem was caused by maven JPA profile: -Pjpa Maybe there is another dependency problem introduced after some PR.

rmartinc commented 1 year ago

@lhanusov I took a look to this and maybe the problem is that I needed to add a variant method setProvidersPath(String) in this commit. Looking the code in arquillian it can be that it chooses the wrong method. Maybe we should create a different setProvidersPathString . Can you try with something like the following and see if it avoids the flaky?

rmartinc commented 1 year ago

@lhanusov I did the test the other way around. I just left the setProvidersPath(Path) method and maintained the providersPath in the xml (forcing the error). And the exception is exactly the one shown in the failed CI runs:

[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.245 s <<< FAILURE! - in org.keycloak.testsuite.migration.MigrationTest
[ERROR] org.keycloak.testsuite.migration.MigrationTest  Time elapsed: 1.236 s  <<< ERROR!
java.lang.IllegalArgumentException: argument type mismatch
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.jboss.arquillian.container.impl.MapObject.populate(MapObject.java:54)
    at org.jboss.arquillian.container.impl.ContainerImpl.createDeployableConfiguration(ContainerImpl.java:109)
    at org.jboss.arquillian.container.impl.ContainerImpl.setup(ContainerImpl.java:165)
    at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$7.perform(ContainerLifecycleController.java:127)
    at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$7.perform(ContainerLifecycleController.java:124)
    at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forContainer(ContainerLifecycleController.java:208)
    at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.setupContainer(ContainerLifecycleController.java:124)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
    at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
    at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:90)
    at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java:54)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
    at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:95)
    at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:133)
    at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:105)
    at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:62)
    at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$1.perform(ContainerLifecycleController.java:58)
    at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$1.perform(ContainerLifecycleController.java:52)
    at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forEachContainer(ContainerLifecycleController.java:172)
    at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.setupContainers(ContainerLifecycleController.java:52)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
    at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
    at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:90)
    at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:133)
    at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:105)
    at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:62)
    at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java:82)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
    at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
    at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:90)
    at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:69)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
    at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:95)
    at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:133)
    at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:105)
    at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeSuite(EventTestRunnerAdaptor.java:71)
    at org.jboss.arquillian.junit.AdaptorManager.initializeAdaptor(AdaptorManager.java:23)
    at org.jboss.arquillian.junit.AdaptorManagerWithNotifier.initializeAdaptor(AdaptorManagerWithNotifier.java:19)
    at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:109)
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:377)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:284)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:248)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:167)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:456)
    at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:169)
    at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:595)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:581)

So I think that something similar to my commit can work.

lhanusov commented 1 year ago

@rmartinc Thanks Ricardo, yes the class overloading of Arquillian has most probably a reflection bug and behaves unstable. Thank you for the fix. I've reproduced the error only when commenting the overloaded class with String argument and forcing to use the setter with Path argument.