java.lang.NoSuchFieldError: LOCK_WAIT_TIMEOUT with Springboot 2.6.x and R2DBC-mssql 0.9.0-Release
lovababu opened this issue · 3 comments
lovababu commented
spring-boot-r2dbc-starter: v2.6.3/2.6.4
JDK: 11
R2driver: r2dbc-mssql: v0.9.0-RELEASE
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.r2dbc.spi.ConnectionFactory]: Factory method 'connectionFactory' threw exception; nested exception is java.lang.NoSuchFieldError: LOCK_WAIT_TIMEOUT
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.3.16.jar:5.3.16]
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.16.jar:5.3.16]
... 32 common frames omitted
Caused by: java.lang.NoSuchFieldError: LOCK_WAIT_TIMEOUT
at io.r2dbc.mssql.MssqlConnectionFactoryProvider.create(MssqlConnectionFactoryProvider.java:162) ~[r2dbc-mssql-0.9.0.RELEASE.jar:0.9.0.RELEASE]
at io.r2dbc.mssql.MssqlConnectionFactoryProvider.create(MssqlConnectionFactoryProvider.java:48) ~[r2dbc-mssql-0.9.0.RELEASE.jar:0.9.0.RELEASE]
at io.r2dbc.spi.ConnectionFactories.find(ConnectionFactories.java:112) ~[r2dbc-spi-0.8.6.RELEASE.jar:na]
at io.r2dbc.spi.ConnectionFactories.get(ConnectionFactories.java:142) ~[r2dbc-spi-0.8.6.RELEASE.jar:na]
Is Latest version of R2DBC not compatible with Springboot 2.6.x and JDK 11?
mp911de commented
This is a dependency compatibility mismatch. Upgrade r2dbc-spi
to 0.9.0.RELEASE
or 0.9.1.RELEASE
.
lovababu commented
Thanks @mp911de it works. Apologies, thought r2dbc-spi is transitive dependency to r2dbc-mssql, somehow overlooked into the versions.
mp911de commented
It is indeed transitive but when using an application runtime framework such as Spring Boot, dependency versions are managed by Spring Boot and transitive versions are pinned to the ones provided by Spring Boot.