kubernetes-client icon indicating copy to clipboard operation
kubernetes-client copied to clipboard

Cannot invoke "io.fabric8.kubernetes.client.server.mock.KubernetesMockServer.destroy()" because "this.mock" is null

Open marcosflobo opened this issue 1 year ago • 2 comments

Describe the bug

Using the @EnableKubernetesMockClient annotation the test cannot be initialized.

Fabric8 Kubernetes Client version

6.9.2

Steps to reproduce

  1. Create a test like this
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient;
import io.fabric8.kubernetes.client.server.mock.KubernetesMockServer;
import org.junit.jupiter.api.Test;

@EnableKubernetesMockClient(crud = true)
public class ATest {

    KubernetesMockServer server;
    KubernetesClient client;

    @Test
    void test() {

    }
}
  1. Run the test

Expected behavior

Test passes

Runtime

Kubernetes (vanilla)

Kubernetes API Server version

1.25.3@latest

Environment

macOS

Fabric8 Kubernetes Client Logs

ava.lang.NoSuchMethodError: 'void okhttp3.internal.Internal.initializeInstanceForTests()'
	at okhttp3.mockwebserver.MockWebServer.<clinit>(MockWebServer.java:103)
	at io.fabric8.kubernetes.client.server.mock.KubernetesMockServerExtension.initializeKubernetesClientAndMockServer(KubernetesMockServerExtension.java:109)
	at io.fabric8.kubernetes.client.server.mock.KubernetesMockServerExtension.setKubernetesClientAndMockServerFields(KubernetesMockServerExtension.java:156)
	at io.fabric8.kubernetes.client.server.mock.KubernetesMockServerExtension.beforeAll(KubernetesMockServerExtension.java:80)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	Suppressed: java.lang.NullPointerException: Cannot invoke "io.fabric8.kubernetes.client.server.mock.KubernetesMockServer.destroy()" because "this.mock" is null
		at io.fabric8.kubernetes.client.server.mock.KubernetesMockServerExtension.destroy(KubernetesMockServerExtension.java:120)
		at io.fabric8.kubernetes.client.server.mock.KubernetesMockServerExtension.afterAll(KubernetesMockServerExtension.java:70)
		... 1 more

Additional context

No response

marcosflobo avatar Nov 14 '23 21:11 marcosflobo

@marcosflobo : I tried reproducing this issue but couldn't reproduce it. For me, it seems to be running okay. Could you please check my reproducer project to see what I'm missing? What JUnit version are you using? Do you have any kind of exclusion for okhttp in your project?

fabric8-5589-reproducer.zip

rohanKanojia avatar Nov 15 '23 04:11 rohanKanojia

This issue has been automatically marked as stale because it has not had any activity since 90 days. It will be closed if no further activity occurs within 7 days. Thank you for your contributions!

stale[bot] avatar Mar 02 '24 00:03 stale[bot]

I encountered this issue in a gradle project and was able to resolve it by adding com.squareup.okhttp3:mockwebserver as a test dependency.

Kyle-Cooley avatar May 15 '24 16:05 Kyle-Cooley