This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 2173692ed5 ISIS-3262: interaction service: don't ignore flush
exceptions
2173692ed5 is described below
commit 2173692ed59b2e8f4e429227085d62b038fea272
Author: Andi Huber <[email protected]>
AuthorDate: Tue Oct 25 11:04:46 2022 +0200
ISIS-3262: interaction service: don't ignore flush exceptions
---
.../runtimeservices/session/InteractionServiceDefault.java | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git
a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/session/InteractionServiceDefault.java
b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/session/InteractionServiceDefault.java
index 429b1bd78e..7a75891927 100644
---
a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/session/InteractionServiceDefault.java
+++
b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/session/InteractionServiceDefault.java
@@ -376,10 +376,12 @@ implements
private void preInteractionClosed(final CausewayInteraction interaction) {
completeAndPublishCurrentCommand();
+ RuntimeException flushException = null;
try {
transactionServiceProvider.get().flushTransaction();
- } catch (Exception e) {
- //[ISIS-3262] if flush fails just ignore, proceed with closing ...
+ } catch (RuntimeException e) {
+ //[ISIS-3262] if flush fails rethrow later, when interaction was
closed ...
+ flushException = e;
}
val isSynchronizationActive =
TransactionSynchronizationManager.isSynchronizationActive();
@@ -389,6 +391,10 @@ implements
interactionScopeLifecycleHandler.onTopLevelInteractionPreDestroy(); //
cleanup the InteractionScope (Spring scope)
interactionScopeLifecycleHandler.onTopLevelInteractionClosed(); //
cleanup the InteractionScope (Spring scope)
interaction.close(); // do this last
+
+ if(flushException!=null) {
+ throw flushException;
+ }
}
private void closeInteractionLayerStackDownToStackSize(final int
downToStackSize) {