Skip to content

Commit 2916b28

Browse files
committed
fix: use proper close method signature
This is meant to avoid diamond inheritance issues where we could have conflicting version of the method if a class implements several interfaces with a close method.
1 parent 299c0b0 commit 2916b28

File tree

6 files changed

+22
-9
lines changed

6 files changed

+22
-9
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/DefaultEventSourceManager.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.javaoperatorsdk.operator.processing.event;
22

3+
import java.io.IOException;
34
import java.util.Collections;
45
import java.util.List;
56
import java.util.Map;
@@ -110,7 +111,11 @@ public Optional<EventSource> deRegisterEventSource(String name) {
110111
lock.lock();
111112
EventSource currentEventSource = eventSources.remove(name);
112113
if (currentEventSource != null) {
113-
currentEventSource.close();
114+
try {
115+
currentEventSource.close();
116+
} catch (IOException e) {
117+
throw new RuntimeException(e);
118+
}
114119
}
115120

116121
return Optional.ofNullable(currentEventSource);
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package io.javaoperatorsdk.operator.processing.event;
22

33
import java.io.Closeable;
4+
import java.io.IOException;
45

56
public interface EventHandler extends Closeable {
67

78
void handleEvent(Event event);
89

910
@Override
10-
default void close() {}
11+
default void close() throws IOException {}
1112
}

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventSource.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.javaoperatorsdk.operator.processing.event;
22

33
import java.io.Closeable;
4+
import java.io.IOException;
45

56
public interface EventSource extends Closeable {
67

@@ -15,7 +16,7 @@ default void start() {}
1516
* {@link EventSourceManager}.
1617
*/
1718
@Override
18-
default void close() {}
19+
default void close() throws IOException {}
1920

2021
void setEventHandler(EventHandler eventHandler);
2122

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventSourceManager.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package io.javaoperatorsdk.operator.processing.event;
22

3-
import io.javaoperatorsdk.operator.OperatorException;
43
import java.io.Closeable;
4+
import java.io.IOException;
55
import java.util.Map;
66
import java.util.Optional;
77

8+
import io.javaoperatorsdk.operator.OperatorException;
9+
810
public interface EventSourceManager extends Closeable {
911

1012
/**
@@ -35,5 +37,5 @@ Optional<EventSource> deRegisterCustomResourceFromEventSource(
3537
Map<String, EventSource> getRegisteredEventSources();
3638

3739
@Override
38-
default void close() {}
40+
default void close() throws IOException {}
3941
}

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/CustomResourceEventSource.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import static io.javaoperatorsdk.operator.processing.KubernetesResourceUtils.getUID;
55
import static io.javaoperatorsdk.operator.processing.KubernetesResourceUtils.getVersion;
66

7+
import java.io.IOException;
78
import java.util.LinkedList;
89
import java.util.List;
910
import java.util.Map;
@@ -68,7 +69,7 @@ public void start() {
6869
}
6970

7071
@Override
71-
public void close() {
72+
public void close() throws IOException {
7273
eventHandler.close();
7374
for (Watch watch : this.watches) {
7475
try {

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/DefaultEventSourceManagerTest.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,15 @@
88
import static org.mockito.Mockito.times;
99
import static org.mockito.Mockito.verify;
1010

11+
import java.io.IOException;
12+
import java.util.Map;
13+
14+
import org.junit.jupiter.api.Test;
15+
1116
import io.fabric8.kubernetes.client.CustomResource;
1217
import io.javaoperatorsdk.operator.TestUtils;
1318
import io.javaoperatorsdk.operator.processing.DefaultEventHandler;
1419
import io.javaoperatorsdk.operator.processing.KubernetesResourceUtils;
15-
import java.util.Map;
16-
import org.junit.jupiter.api.Test;
1720

1821
class DefaultEventSourceManagerTest {
1922

@@ -38,7 +41,7 @@ public void registersEventSource() {
3841
}
3942

4043
@Test
41-
public void closeShouldCascadeToEventSources() {
44+
public void closeShouldCascadeToEventSources() throws IOException {
4245
EventSource eventSource = mock(EventSource.class);
4346
EventSource eventSource2 = mock(EventSource.class);
4447
defaultEventSourceManager.registerEventSource(CUSTOM_EVENT_SOURCE_NAME, eventSource);

0 commit comments

Comments
 (0)