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 2022/06/13 07:32:07 UTC

[isis] branch master updated: ISIS-3049: fixes NPE on ApplicationNamespace VM creation

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 11a5f5f302 ISIS-3049: fixes NPE on ApplicationNamespace VM creation
11a5f5f302 is described below

commit 11a5f5f302237a9ee2e8ad4934d600c1cccf8631
Author: andi-huber <ah...@apache.org>
AuthorDate: Mon Jun 13 09:31:58 2022 +0200

    ISIS-3049: fixes NPE on ApplicationNamespace VM creation
---
 .../services/appfeatui/ApplicationFeatureViewModel.java       | 11 +++++++++--
 .../isis/applib/services/appfeatui/ApplicationNamespace.java  |  6 ++----
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/appfeatui/ApplicationFeatureViewModel.java b/api/applib/src/main/java/org/apache/isis/applib/services/appfeatui/ApplicationFeatureViewModel.java
index 4497c703d1..77a74212ed 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/appfeatui/ApplicationFeatureViewModel.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/appfeatui/ApplicationFeatureViewModel.java
@@ -51,6 +51,7 @@ import org.apache.isis.applib.util.Equality;
 import org.apache.isis.applib.util.Hashing;
 import org.apache.isis.applib.util.ObjectContracts;
 import org.apache.isis.applib.util.ToString;
+import org.apache.isis.commons.internal.assertions._Assert;
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.commons.internal.collections._Lists;
 
@@ -84,9 +85,15 @@ public abstract class ApplicationFeatureViewModel implements ViewModel {
             final ApplicationFeatureId featureId,
             final ApplicationFeatureRepository applicationFeatureRepository,
             final FactoryService factoryService) {
-        final Class<? extends ApplicationFeatureViewModel> cls =
+        final Class<? extends ApplicationFeatureViewModel> vmClass =
                 viewModelClassFor(featureId, applicationFeatureRepository);
-        return factoryService.viewModel(cls,
+
+        if(featureId.getSort().isNamespace()) {
+            _Assert.assertEquals(vmClass, ApplicationNamespace.class);
+            return factoryService.viewModel(new ApplicationNamespace(featureId));
+        }
+
+        return factoryService.viewModel(vmClass,
                 Bookmark.forLogicalTypeNameAndIdentifier(
                         featureId.getLogicalTypeName(),
                         featureId.asEncodedString()));
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/appfeatui/ApplicationNamespace.java b/api/applib/src/main/java/org/apache/isis/applib/services/appfeatui/ApplicationNamespace.java
index f31befcdc6..db917388b0 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/appfeatui/ApplicationNamespace.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/appfeatui/ApplicationNamespace.java
@@ -48,7 +48,7 @@ public class ApplicationNamespace extends ApplicationFeatureViewModel {
 
     public static abstract class CollectionDomainEvent<T> extends ApplicationFeatureViewModel.CollectionDomainEvent<ApplicationNamespace, T> {}
 
-    // -- constructors
+    // -- CONSTRUCTORS
 
     public ApplicationNamespace() { }
     public ApplicationNamespace(final ApplicationFeatureId featureId) {
@@ -58,9 +58,7 @@ public class ApplicationNamespace extends ApplicationFeatureViewModel {
         super(memento);
     }
 
-
-
-    // -- contents (collection, for namespaces only)
+    // -- CONTENTS (collection, for namespaces only)
 
     @Collection(
             domainEvent = Contents.DomainEvent.class