Skip to content

java.base does not "opens java.util.function" since 1.14.0 #1383

@artemptushkin

Description

@artemptushkin

Appeared since version 1.14.0

Given:

val defaultConsumer = spyk<Consumer<RequestConfig.Builder>> {
            every { this@spyk.accept(any()) } returns Unit
        }

I get

java.lang.reflect.InaccessibleObjectException: Unable to make private void java.util.function.Consumer.lambda$andThen$0(java.util.function.Consumer,java.lang.Object) accessible: module java.base does not "opens java.util.function" to unnamed module @7f8a9499
	at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391)
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367)
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315)
	at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:203)
	at java.base/java.lang.reflect.Method.setAccessible(Method.java:197)
	at io.mockk.proxy.jvm.advice.MethodCall.call(MethodCall.kt:13)
	at io.mockk.proxy.jvm.advice.SelfCallEliminatorCallable.call(SelfCallEliminatorCallable.kt:14)
	at io.mockk.impl.instantiation.JvmMockFactoryHelper.handleOriginalCall(JvmMockFactoryHelper.kt:96)
	at io.mockk.impl.instantiation.JvmMockFactoryHelper.access$handleOriginalCall(JvmMockFactoryHelper.kt:19)
	at io.mockk.impl.instantiation.JvmMockFactoryHelper$mockHandler$1$invocation$1$1.invoke(JvmMockFactoryHelper.kt:28)
	at io.mockk.impl.stub.MockKStub$handleInvocation$originalPlusToString$1.invoke(MockKStub.kt:235)
	at io.mockk.impl.stub.SpyKStub.defaultAnswer(SpyKStub.kt:15)
	at io.mockk.impl.stub.MockKStub.answer(MockKStub.kt:44)
	at io.mockk.impl.recording.states.AnsweringState.call(AnsweringState.kt:16)
	at io.mockk.impl.recording.CommonCallRecorder.call(CommonCallRecorder.kt:53)
	at io.mockk.impl.stub.MockKStub.handleInvocation(MockKStub.kt:271)
	at io.mockk.impl.instantiation.JvmMockFactoryHelper$mockHandler$1.invocation(JvmMockFactoryHelper.kt:24)
	at io.mockk.proxy.jvm.advice.Interceptor.call(Interceptor.kt:21)
	at java.base/java.util.function.Consumer.lambda$andThen$0(Consumer.java:65)
	at java.base/java.util.function.Consumer.lambda$andThen$0(Consumer.java:65)
	at org.springframework.boot.http.client.HttpComponentsClientHttpRequestFactoryBuilder.createDefaultRequestConfig(HttpComponentsClientHttpRequestFactoryBuilder.java:239)
	at org.springframework.boot.http.client.HttpComponentsClientHttpRequestFactoryBuilder.createHttpClient(HttpComponentsClientHttpRequestFactoryBuilder.java:205)
	at org.springframework.boot.http.client.HttpComponentsClientHttpRequestFactoryBuilder.createClientHttpRequestFactory(HttpComponentsClientHttpRequestFactoryBuilder.java:193)
	at org.springframework.boot.http.client.HttpComponentsClientHttpRequestFactoryBuilder.createClientHttpRequestFactory(HttpComponentsClientHttpRequestFactoryBuilder.java:59)
	at org.springframework.boot.http.client.AbstractClientHttpRequestFactoryBuilder.build(AbstractClientHttpRequestFactoryBuilder.java:76)
	at org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder.build(ClientHttpRequestFactoryBuilder.java:53)

I guess it's possible to fix with JVM args, but I don't want to, it doesn't make sense it have it on the client side, IMO.

Is it possible to fix on your side? If it's my mis configuration I'd like to know to

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions