Closed
Description
Hi
I am testing jdk17 in an application that contains a field in a document of type BigDecimal
.
On application startup, I get the following error:
Trace
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.math.BigInteger java.math.BigDecimal.intVal accessible: module java.base does not "opens java.math" to unnamed module @7d0587f1
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) ~[na:na]
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) ~[na:na]
at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178) ~[na:na]
at java.base/java.lang.reflect.Field.setAccessible(Field.java:172) ~[na:na]
at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:787) ~[spring-core-6.0.0-M3.jar:6.0.0-M3]
at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.doWith(AbstractMappingContext.java:496) ~[spring-data-commons-3.0.0-M3.jar:3.0.0-M3]
at org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:711) ~[spring-core-6.0.0-M3.jar:6.0.0-M3]
at org.springframework.data.mapping.context.AbstractMappingContext.doAddPersistentEntity(AbstractMappingContext.java:382) ~[spring-data-commons-3.0.0-M3.jar:3.0.0-M3]
at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity(AbstractMappingContext.java:339) ~[spring-data-commons-3.0.0-M3.jar:3.0.0-M3]
at org.springframework.data.couchbase.core.mapping.CouchbaseMappingContext.addPersistentEntity(CouchbaseMappingContext.java:139) ~[spring-data-couchbase-5.0.0-M3.jar:5.0.0-M3]
at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.lambda$createAndRegisterProperty$3(AbstractMappingContext.java:551) ~[spring-data-commons-3.0.0-M3.jar:3.0.0-M3]
at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na]
at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.createAndRegisterProperty(AbstractMappingContext.java:548) ~[spring-data-commons-3.0.0-M3.jar:3.0.0-M3]
at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.doWith(AbstractMappingContext.java:502) ~[spring-data-commons-3.0.0-M3.jar:3.0.0-M3]
at org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:711) ~[spring-core-6.0.0-M3.jar:6.0.0-M3]
at org.springframework.data.mapping.context.AbstractMappingContext.doAddPersistentEntity(AbstractMappingContext.java:382) ~[spring-data-commons-3.0.0-M3.jar:3.0.0-M3]
at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity(AbstractMappingContext.java:339) ~[spring-data-commons-3.0.0-M3.jar:3.0.0-M3]
at org.springframework.data.couchbase.core.mapping.CouchbaseMappingContext.addPersistentEntity(CouchbaseMappingContext.java:139) ~[spring-data-couchbase-5.0.0-M3.jar:5.0.0-M3]
at org.springframework.data.couchbase.core.mapping.CouchbaseMappingContext.getPersistentEntity(CouchbaseMappingContext.java:159) ~[spring-data-couchbase-5.0.0-M3.jar:5.0.0-M3]
at org.springframework.data.couchbase.core.mapping.CouchbaseMappingContext.getPersistentEntity(CouchbaseMappingContext.java:41) ~[spring-data-couchbase-5.0.0-M3.jar:5.0.0-M3]
at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentEntity(AbstractMappingContext.java:191) ~[spring-data-commons-3.0.0-M3.jar:3.0.0-M3]
at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentEntity(AbstractMappingContext.java:90) ~[spring-data-commons-3.0.0-M3.jar:3.0.0-M3]
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.lambda$afterPropertiesSet$6(RepositoryFactoryBeanSupport.java:281) ~[spring-data-commons-3.0.0-M3.jar:3.0.0-M3]
at java.base/java.util.Optional.ifPresent(Optional.java:178) ~[na:na]
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:281) ~[spring-data-commons-3.0.0-M3.jar:3.0.0-M3]
at org.springframework.data.couchbase.repository.support.CouchbaseRepositoryFactoryBean.afterPropertiesSet(CouchbaseRepositoryFactoryBean.java:89) ~[spring-data-couchbase-5.0.0-M3.jar:5.0.0-M3]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1787) ~[spring-beans-6.0.0-M3.jar:6.0.0-M3]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1736) ~[spring-beans-6.0.0-M3.jar:6.0.0-M3]
... 44 common frames omitted
Versions
- Spring-boot version: 3.0.0-M2
- Spring-data-couchbase version: 5.0.0-M3
Related issue: #1278
Workaround:
Add JVM Parameter --add-opens java.base/java.math=ALL-UNNAMED