Skip to content

5.10.x: KubernetesAttributesExtractor does not define or inherit extract(String) method #3635

@mbuccini

Description

@mbuccini

Describe the bug

Hello everyone,

I get the following error:

Exception in thread "MockWebServer" java.lang.AbstractMethodError: Receiver class io.fabric8.kubernetes.client.server.mock.KubernetesAttributesExtractor does not define or inherit an implementation of the resolved method 'abstract io.fabric8.mockwebserver.crud.AttributeSet extract(java.lang.String)' of interface io.fabric8.mockwebserver.crud.AttributeExtractor.
	at io.fabric8.mockwebserver.crud.CrudDispatcher.doGet(CrudDispatcher.java:175)
	at io.fabric8.mockwebserver.crud.CrudDispatcher.handlePatch(CrudDispatcher.java:80)
	at io.fabric8.mockwebserver.crud.CrudDispatcher.dispatch(CrudDispatcher.java:45)
	at io.fabric8.kubernetes.client.server.mock.KubernetesMixedDispatcher.dispatch(KubernetesMixedDispatcher.java:65)
	at okhttp3.mockwebserver.MockWebServer$4.processOneRequest(MockWebServer.java:573)
	at okhttp3.mockwebserver.MockWebServer$4.processConnection(MockWebServer.java:531)
	at okhttp3.mockwebserver.MockWebServer$4.execute(MockWebServer.java:456)
	at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

when I try to execute:

kubernetesServer
                .getClient()
                .batch()
                .v1()
                .jobs()
                .inNamespace("namespace")
                .withName("name")
                .patchStatus(job);

The version affected is 5.10.x. It works with 5.4 until 5.9.

It seems that the method was implemented: https://github.com/fabric8io/kubernetes-client/blob/v5.9.0/kubernetes-server-mock/src/main/java/io/fabric8/kubernetes/client/server/mock/KubernetesAttributesExtractor.java#L164

while it's not the case anymore: https://github.com/fabric8io/kubernetes-client/blob/v5.10.0/kubernetes-server-mock/src/main/java/io/fabric8/kubernetes/client/server/mock/KubernetesAttributesExtractor.java

If you need more info, let me know :)

Fabric8 Kubernetes Client version

5.10.0

Steps to reproduce

Run the following snippet:

Job job = new JobBuilder()
                .withApiVersion("batch/v1")
                .withNewMetadata()
                .withNamespace("default")
                .withName("name")
                .endMetadata()
                .withNewSpec()
                .withNewTemplate()
                .withNewSpec()
                .addNewContainer()
                .withImage("openjdk:18-jdk-alpine")
                .withName("name")
                .withCommand("java", "--version")
                .endContainer()
                .withRestartPolicy("Never")
                .endSpec()
                .endTemplate()
                .endSpec()
                .build();

kubernetesServer .getClient().
                        .batch()
                        .v1()
                        .jobs()
                        .inNamespace("default")
                        .create(job);

JobStatus jobStatus = new JobStatus();
jobStatus.setFailed(1);
job.setStatus(jobStatus);        
     
kubernetesServer
                .getClient()
                .batch()
                .v1()
                .jobs()
                .inNamespace("namespace")
                .withName("name")
                .patchStatus(job);

Expected behavior

The method should work as it does with the versions until 5.9.

Runtime

Kubernetes (vanilla), other (please specify in additional context)

Kubernetes API Server version

other (please specify in additional context)

Environment

macOS

Fabric8 Kubernetes Client Logs

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Waiting on feedbackIssues that require feedback from User/Other community membersstatus/stale

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions