Skip to content

Commit ba3edb9

Browse files
committed
feat: introduce inner ControllerExecution to override toString
This would allow easier diagnosis when the thread is rejected.
1 parent 8eb6171 commit ba3edb9

File tree

2 files changed

+24
-9
lines changed

2 files changed

+24
-9
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package io.javaoperatorsdk.operator.api.config;
22

33
import java.util.Set;
4+
import java.util.concurrent.ExecutorService;
45

56
import io.fabric8.kubernetes.client.Config;
67
import io.fabric8.kubernetes.client.CustomResource;
78
import io.javaoperatorsdk.operator.Metrics;
89
import io.javaoperatorsdk.operator.api.ResourceController;
910

1011
import com.fasterxml.jackson.databind.ObjectMapper;
11-
import java.util.concurrent.ExecutorService;
1212

1313
/** An interface from which to retrieve configuration information. */
1414
public interface ConfigurationService {

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

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import java.util.Set;
88
import java.util.concurrent.ExecutorService;
99
import java.util.concurrent.ScheduledThreadPoolExecutor;
10-
import java.util.concurrent.TimeUnit;
1110
import java.util.concurrent.locks.ReentrantLock;
1211
import java.util.function.Predicate;
1312

@@ -123,13 +122,7 @@ private void executeBufferedEvents(String customResourceUid) {
123122
latestCustomResource.get(),
124123
retryInfo(customResourceUid));
125124
log.debug("Executing events for custom resource. Scope: {}", executionScope);
126-
executor.execute(() -> {
127-
// change thread name for easier debugging
128-
Thread.currentThread().setName("EventHandler-" + controllerName);
129-
PostExecutionControl<R> postExecutionControl =
130-
eventDispatcher.handleExecution(executionScope);
131-
eventProcessingFinished(executionScope, postExecutionControl);
132-
});
125+
executor.execute(new ControllerExecution(executionScope));
133126
} else {
134127
log.debug(
135128
"Skipping executing controller for resource id: {}. Events in queue: {}."
@@ -276,4 +269,26 @@ private void setUnderExecutionProcessing(String customResourceUid) {
276269
private void unsetUnderExecution(String customResourceUid) {
277270
underProcessing.remove(customResourceUid);
278271
}
272+
273+
private class ControllerExecution implements Runnable {
274+
private final ExecutionScope<R> executionScope;
275+
276+
private ControllerExecution(ExecutionScope<R> executionScope) {
277+
this.executionScope = executionScope;
278+
}
279+
280+
@Override
281+
public void run() {
282+
// change thread name for easier debugging
283+
Thread.currentThread().setName("EventHandler-" + controllerName);
284+
PostExecutionControl<R> postExecutionControl =
285+
eventDispatcher.handleExecution(executionScope);
286+
eventProcessingFinished(executionScope, postExecutionControl);
287+
}
288+
289+
@Override
290+
public String toString() {
291+
return controllerName + " -> " + executionScope;
292+
}
293+
}
279294
}

0 commit comments

Comments
 (0)