Repository: isis Updated Branches: refs/heads/maint-1.13.3 43a7fc281 -> 7c2ca9933
ISIS-1555: DomainChangeJdoAbstract no longer fails if the target bookmark is now an unknown type Project: http://git-wip-us.apache.org/repos/asf/isis/repo Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/ae74bc95 Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/ae74bc95 Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/ae74bc95 Branch: refs/heads/maint-1.13.3 Commit: ae74bc952ae918027a8af72929198bac6e852be1 Parents: 43a7fc2 Author: Dan Haywood <d...@haywood-associates.co.uk> Authored: Wed Dec 21 11:38:13 2016 +0000 Committer: Dan Haywood <d...@haywood-associates.co.uk> Committed: Wed Dec 21 11:40:14 2016 +0000 ---------------------------------------------------------------------- .../applib/service/DomainChangeJdoAbstract.java | 5 +++-- .../metamodel/MetaModelServiceDefault.java | 18 +++++++++++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/isis/blob/ae74bc95/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/DomainChangeJdoAbstract.java ---------------------------------------------------------------------- diff --git a/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/DomainChangeJdoAbstract.java b/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/DomainChangeJdoAbstract.java index 0307bfa..22c8cd9 100644 --- a/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/DomainChangeJdoAbstract.java +++ b/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/DomainChangeJdoAbstract.java @@ -39,6 +39,7 @@ import org.apache.isis.applib.services.bookmark.Bookmark; import org.apache.isis.applib.services.bookmark.BookmarkService2; import org.apache.isis.applib.services.message.MessageService; import org.apache.isis.applib.services.metamodel.MetaModelService2; +import org.apache.isis.applib.services.metamodel.MetaModelService3; import org.apache.isis.applib.services.publish.PublisherService; import org.apache.isis.applib.services.publish.PublishingService; import org.apache.isis.applib.util.ObjectContracts; @@ -268,7 +269,7 @@ public abstract class DomainChangeJdoAbstract { if (targetObject == null) { return null; } - final MetaModelService2.Sort sortOfObject = metaModelService.sortOf(getTarget()); + final MetaModelService2.Sort sortOfObject = metaModelService.sortOf(getTarget(), MetaModelService3.Mode.RELAXED); return !(sortOfObject.isViewModel() || sortOfObject.isJdoEntity()) ? "Can only open view models or entities" : null; @@ -381,6 +382,6 @@ public abstract class DomainChangeJdoAbstract { protected MessageService messageService; @javax.inject.Inject - protected MetaModelService2 metaModelService; + protected MetaModelService3 metaModelService; } http://git-wip-us.apache.org/repos/asf/isis/blob/ae74bc95/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefault.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefault.java index e20b751..9f45b8f 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefault.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefault.java @@ -205,7 +205,23 @@ public class MetaModelServiceDefault implements MetaModelService3 { if(bookmark == null) { return null; } - final Class<?> domainType = this.fromObjectType(bookmark.getObjectType()); + + final Class<?> domainType; + switch (mode) { + case RELAXED: + try { + domainType = this.fromObjectType(bookmark.getObjectType()); + } catch (Exception e) { + return Sort.UNKNOWN; + } + break; + + case STRICT: + // fall through to... + default: + domainType = this.fromObjectType(bookmark.getObjectType()); + break; + } return sortOf(domainType, mode); }