You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/01/22 19:48:21 UTC
[isis] branch master updated: ISIS-2158: fail more verbose if
action result produces a detached entity
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 ad7c381 ISIS-2158: fail more verbose if action result produces a detached entity
ad7c381 is described below
commit ad7c38190f49ed1f2b47a9de6caccde39ce12d2f
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Jan 22 20:48:11 2020 +0100
ISIS-2158: fail more verbose if action result produces a detached entity
---
.../persistencecapable/JdoPersistenceCapableFacetImpl.java | 14 ++++++++++----
.../isis/viewer/wicket/ui/panels/FormExecutorDefault.java | 6 +++---
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
index 74f803b..81790fd 100644
--- a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
+++ b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
@@ -19,7 +19,6 @@
package org.apache.isis.persistence.jdo.datanucleus5.metamodel.facets.object.persistencecapable;
import java.lang.reflect.Method;
-import java.util.UUID;
import javax.jdo.annotations.IdentityType;
@@ -64,7 +63,7 @@ public class JdoPersistenceCapableFacetImpl extends JdoPersistenceCapableFacetAb
@Override
public String identifierFor(ObjectSpecification spec, Object pojo) {
- //TODO simplify, spec is already loaded
+ //TODO simplify?, spec is already loaded
if(pojo==null || !isPersistableType(pojo.getClass())) {
return "?";
@@ -76,8 +75,15 @@ public class JdoPersistenceCapableFacetImpl extends JdoPersistenceCapableFacetAb
final String identifier = persistenceSession.identifierFor(pojo);
return identifier;
} else {
- final String identifier = UUID.randomUUID().toString();
- return identifier;
+
+ throw _Exceptions.illegalArgument(
+ "The persistence layer does not recognize given object of type %s, "
+ + "meaning the object has no identifier that associates it with the persistence layer. "
+ + "(most likely, because the object is detached, eg. was not persisted after being new-ed up)",
+ pojo.getClass().getName());
+
+ //final String identifier = UUID.randomUUID().toString();
+ //return identifier;
}
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
index f61b6fb..7213fa3 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
@@ -166,9 +166,9 @@ implements FormExecutor {
redirectFacet = actionModel.getActionMemento().getAction(getSpecificationLoader()).getFacet(RedirectFacet.class);
}
- if (shouldRedirect(targetAdapter, resultAdapter, redirectFacet) ||
- hasBlobsOrClobs(page) ||
- targetIfAny == null ) {
+ if (shouldRedirect(targetAdapter, resultAdapter, redirectFacet)
+ || hasBlobsOrClobs(page)
+ || targetIfAny == null) {
redirectTo(resultAdapter, targetIfAny);