de.flapdoodle.embed.mongo: java.lang.reflect.InaccessibleObjectException when starting application

Spring Boot mongodb version: 2.5.3 flapdoodle version: 3.0.0 JDK 16

I noticed the following exception on application startup when running my unit tests with the embedded mongodb:

java.lang.reflect.InaccessibleObjectException: Unable to make field private final long java.lang.ProcessImpl.handle accessible: module java.base does not "opens java.lang" to unnamed module @71a794e5
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
	at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:177)
	at java.base/java.lang.reflect.Field.setAccessible(Field.java:171)
	at de.flapdoodle.embed.process.runtime.Processes.windowsProcessId(Processes.java:114)
	at de.flapdoodle.embed.process.runtime.Processes.access$200(Processes.java:51)
	at de.flapdoodle.embed.process.runtime.Processes$PidHelper$3.getPid(Processes.java:215)
	at de.flapdoodle.embed.process.runtime.Processes.processId(Processes.java:82)
	at de.flapdoodle.embed.process.runtime.ProcessControl.<init>(ProcessControl.java:65)
	at de.flapdoodle.embed.process.runtime.ProcessControl.start(ProcessControl.java:165)
	at de.flapdoodle.embed.process.runtime.AbstractProcess.<init>(AbstractProcess.java:96)
	at de.flapdoodle.embed.mongo.AbstractMongoProcess.<init>(AbstractMongoProcess.java:53)
	at de.flapdoodle.embed.mongo.MongodProcess.<init>(MongodProcess.java:50)
	at de.flapdoodle.embed.mongo.MongodExecutable.start(MongodExecutable.java:44)
	at de.flapdoodle.embed.mongo.MongodExecutable.start(MongodExecutable.java:34)
	at de.flapdoodle.embed.process.runtime.Executable.start(Executable.java:109)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1912)
...

This exception does not seem to have any significant impact since the application continues to start and the tests run fine, but I am wondering where it comes from and how I can get rid of it?

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Reactions: 2
  • Comments: 17 (3 by maintainers)

Most upvoted comments

@thomaschampagne try this:

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <argLine>
            --add-opens java.base/java.lang=ALL-UNNAMED
        </argLine>
    </configuration>
</plugin>

I’m experiencing the same exception using JDK 17 LTS