Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IncompatibleClassChangeError: TenantConfigContext #54

Open
UbiquitousBear opened this issue Feb 8, 2025 · 10 comments
Open

IncompatibleClassChangeError: TenantConfigContext #54

UbiquitousBear opened this issue Feb 8, 2025 · 10 comments

Comments

@UbiquitousBear
Copy link

Due to this change, specifically with TenantConfigContext now becoming an interface, a quarkus application with platform >= 3.16.0 will not start receiving the following error:

java.lang.IncompatibleClassChangeError: Found interface io.quarkus.oidc.runtime.TenantConfigContext, but class was expected
	at io.quarkus.oidc.proxy.runtime.OidcProxy.<init>(OidcProxy.java:50)
	at io.quarkus.oidc.proxy.runtime.OidcProxyRecorder.setupRoutes(OidcProxyRecorder.java:20)
	at io.quarkus.runner.recorded.OidcProxyBuildStep$setup457258572.deploy_0(Unknown Source)
	at io.quarkus.runner.recorded.OidcProxyBuildStep$setup457258572.deploy(Unknown Source)
	at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source)
	at io.quarkus.runtime.Application.start(Application.java:101)
	at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:121)
	at io.quarkus.runtime.Quarkus.run(Quarkus.java:77)
	at io.quarkus.runtime.Quarkus.run(Quarkus.java:48)
	at io.quarkus.runtime.Quarkus.run(Quarkus.java:137)
	at io.quarkus.runner.GeneratedMain.main(Unknown Source)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at io.quarkus.runner.bootstrap.StartupActionImpl$1.run(StartupActionImpl.java:116)
	at java.base/java.lang.Thread.run(Thread.java:1583)
Resulted in: java.lang.RuntimeException: Failed to start quarkus

OidcProxy is no longer initing, due the above on this line.

@gsmet
Copy link
Member

gsmet commented Feb 8, 2025

@UbiquitousBear could you prepare a small Maven reproducer?

I'm having a look but from what I can see, the code is still referencing a class (there's a class for compatibility AFAICS) so I'm not entirely sure what's going on.

@UbiquitousBear
Copy link
Author

UbiquitousBear commented Feb 8, 2025

@gsmet it is: https://github.com/UbiquitousBear/oidc-proxy-reproduer

It can be ran using:

OIDC_AUTH_SERVER_URL=xxx 
OIDC_CLIENT_ID=xxx
OIDC_SECRET=xxx 
WEB_OIDC_CLIENT_ID=xxx
WEB_OIDC_CLIENT_SECRET=xxx  
quarkus dev -Dvertx.disableURIValidation

@sberyozkin
Copy link
Contributor

@UbiquitousBear The pull requests to update Quarkus versions are succeeding, they involve running integration tests

@gsmet
Copy link
Member

gsmet commented Feb 13, 2025

Yeah, what I'm wondering is if we have to rebuild a release with a newer version. I wouldn't be surprised if we broke binary compatibility.

My guess is that pushing a new version would fix it (but I haven't checked!).

@sberyozkin
Copy link
Contributor

Hi @gsmet Do you mean, releasing a new version of quarkus-oidc-proxy ?

@gsmet
Copy link
Member

gsmet commented Feb 13, 2025

Yes. My guess is that there's a binary incompatibility and we need new jars linking to current version of Quarkus.

And let's make it a minor as my guess is that they won't be compatible with the previous versions.

Probably, a good idea to add a compatibility table in the README as people with 3.15 LTS will need to stay on the current version.

@sberyozkin
Copy link
Contributor

sberyozkin commented Feb 13, 2025

Thanks @gsmet, we have 3 issues opened (apart from this one) so I'll get 0.2.0 out hopefully next week

@gsmet
Copy link
Member

gsmet commented Feb 13, 2025

Or you could release now to unblock people and do another next week with some additional fixes?

@UbiquitousBear
Copy link
Author

Yes. My guess is that there's a binary incompatibility and we need new jars linking to current version of Quarkus.

And let's make it a minor as my guess is that they won't be compatible with the previous versions.

Probably, a good idea to add a compatibility table in the README as people with 3.15 LTS will need to stay on the current version.

I’ve only seen the exception when it comes to binary incompatibilities

@sberyozkin
Copy link
Contributor

@gsmet You are right, I was thinking I could it do it rather quickly in the morning, thinking of doing a quick update related to HtmlIUnit coordinates, but during that I found out the integration module was not in the list of modules at the root pom level, the test became stale and failing most likely due to the Keycloak version update (there is another one in deployment), so I need to fix it...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants