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);
     }
 

Reply via email to