Skip to content

Commit a9dc3b2

Browse files
committed
spring-projectsGH-3869: Implement requested changes in the advice during review.
1 parent 6c5bd49 commit a9dc3b2

File tree

1 file changed

+16
-19
lines changed

1 file changed

+16
-19
lines changed

spring-integration-file/src/main/java/org/springframework/integration/file/remote/session/ContextHolderRequestHandlerAdvice.java

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -87,31 +87,28 @@ public void setContextClearHook(Consumer<Object> contextClearHook) {
8787

8888
@Override
8989
protected Object doInvoke(ExecutionCallback callback, Object target, Message<?> message) {
90-
final var result = callback.execute();
91-
applyKeyProvider(message);
92-
return result;
93-
}
94-
95-
private void applyKeyProvider(Message<?> message) {
96-
if (this.keyProvider != null) {
97-
final Object key = this.keyProvider.apply(message);
98-
if (key != null) {
99-
setContext(key);
100-
clearContext(key);
101-
}
90+
Object result;
91+
final Object key = this.keyProvider.apply(message);
92+
try {
93+
result = callback.execute();
94+
setContext(key);
95+
}
96+
catch (Exception e) {
97+
result = e;
98+
logger.error("Failure setting context holder for " + message + ": " + e.getMessage());
10299
}
100+
finally {
101+
contextClearHook(key);
102+
}
103+
return result;
103104
}
104105

105106
private void setContext(Object key) {
106-
if (this.contextSetHook != null) {
107-
this.contextSetHook.accept(key);
108-
}
107+
this.contextSetHook.accept(key);
109108
}
110109

111-
private void clearContext(Object key) {
112-
if (this.contextClearHook != null) {
113-
this.contextClearHook.accept(key);
114-
}
110+
private void contextClearHook(Object key) {
111+
this.contextClearHook.accept(key);
115112
}
116113

117114
}

0 commit comments

Comments
 (0)