You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2026/06/23 15:06:50 UTC
(causeway) branch CAUSEWAY-4039 updated: CAUSEWAY-4039 : save result adapter even if view model
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch CAUSEWAY-4039
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/CAUSEWAY-4039 by this push:
new 40f348f894c CAUSEWAY-4039 : save result adapter even if view model
40f348f894c is described below
commit 40f348f894cd18c796eb50d24bbe04c4778ca91b
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Jun 23 16:06:38 2026 +0100
CAUSEWAY-4039 : save result adapter even if view model
---
...tionInvocationFacetForParentedCollectionNavigation.java | 14 +++-----------
.../ActionInvocationFacetForScalarReferenceNavigation.java | 14 +++-----------
.../executor/MemberExecutorServiceDefault.java | 8 ++------
3 files changed, 8 insertions(+), 28 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/synthetic/ActionInvocationFacetForParentedCollectionNavigation.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/synthetic/ActionInvocationFacetForParentedCollectionNavigation.java
index 540c7277a07..7aa95245c00 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/synthetic/ActionInvocationFacetForParentedCollectionNavigation.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/synthetic/ActionInvocationFacetForParentedCollectionNavigation.java
@@ -98,7 +98,7 @@ public ManagedObject invoke(
throw new RecoverableException(validationMessage);
}
val singleMatch = matchResult.singleMatch();
- setCommandResultIfBookmarkable(command, singleMatch, interactionInitiatedBy);
+ setCommandResultIfBookmarkable(command, singleMatch);
return singleMatch;
}
@@ -127,16 +127,8 @@ private void prepareCommandForPublishing(
private void setCommandResultIfBookmarkable(
final Command command,
- final ManagedObject result,
- final InteractionInitiatedBy interactionInitiatedBy) {
- if(command == null || interactionInitiatedBy.isPassThrough() || command.getResult() != null) {
- return;
- }
- val entityState = result.getEntityState();
- if(!entityState.isPersistable() || !entityState.hasOid()) {
- return;
- }
- result.getBookmark()
+ final ManagedObject resultAdapter) {
+ resultAdapter.getBookmark()
.ifPresent(bookmark -> command.updater().setResult(Try.success(bookmark)));
}
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/synthetic/ActionInvocationFacetForScalarReferenceNavigation.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/synthetic/ActionInvocationFacetForScalarReferenceNavigation.java
index 957d85bec69..1ed38fb4855 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/synthetic/ActionInvocationFacetForScalarReferenceNavigation.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/synthetic/ActionInvocationFacetForScalarReferenceNavigation.java
@@ -86,7 +86,7 @@ public ManagedObject invoke(
if (DisabledFacetForNullScalarReferenceNavigation.isNullReference(referencedObject)) {
throw new RecoverableException(DisabledFacetForNullScalarReferenceNavigation.REASON);
}
- setCommandResultIfBookmarkable(command, referencedObject, interactionInitiatedBy);
+ setCommandResultIfBookmarkable(command, referencedObject);
return referencedObject;
}
@@ -115,16 +115,8 @@ private void prepareCommandForPublishing(
private void setCommandResultIfBookmarkable(
final Command command,
- final ManagedObject result,
- final InteractionInitiatedBy interactionInitiatedBy) {
- if (command == null || interactionInitiatedBy.isPassThrough() || command.getResult() != null) {
- return;
- }
- val entityState = result.getEntityState();
- if (!entityState.isPersistable() || !entityState.hasOid()) {
- return;
- }
- result.getBookmark()
+ final ManagedObject resultAdapter) {
+ resultAdapter.getBookmark()
.ifPresent(bookmark -> command.updater().setResult(Try.success(bookmark)));
}
diff --git a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/executor/MemberExecutorServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/executor/MemberExecutorServiceDefault.java
index b0e075a08bc..ffd13dbe60b 100644
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/executor/MemberExecutorServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/executor/MemberExecutorServiceDefault.java
@@ -339,13 +339,9 @@ private Optional<ManagedObject> singletonResultCandidate(final ManagedObject res
private void setCommandResultIfEntityScalar(
final Command command,
final ManagedObject resultAdapter) {
- val entityState = resultAdapter.getEntityState();
- if (!(entityState.isPersistable() || entityState.hasOid())) {
- return;
- }
+ final var entityState = resultAdapter.getEntityState();
if(entityState.isPersistable()) {
- if(entityState.isHollow()
- || entityState.isDetached()) {
+ if(entityState.isHollow() || entityState.isDetached()) {
// ensure that any still-to-be-persisted adapters get persisted to DB.
getTransactionService().flushTransaction();
}