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 2021/12/08 20:36:24 UTC

[isis] branch master updated: ISIS-2911: fixes prev. commit (NPE on nullable bookmark)

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 91160fe  ISIS-2911: fixes prev. commit (NPE on nullable bookmark)
91160fe is described below

commit 91160fea86c0de80141b527dde30698f9df5c140
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Dec 8 21:36:15 2021 +0100

    ISIS-2911: fixes prev. commit (NPE on nullable bookmark)
---
 .../facets/object/recreatable/RecreatableObjectFacetAbstract.java | 8 +++++---
 .../RecreatableObjectFacetDeclarativeInitializingAbstract.java    | 6 ++++--
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetAbstract.java
index fabc2d0..705992d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetAbstract.java
@@ -21,6 +21,8 @@ package org.apache.isis.core.metamodel.facets.object.recreatable;
 import java.lang.reflect.Method;
 import java.util.function.BiConsumer;
 
+import org.springframework.lang.Nullable;
+
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.commons.ClassExtensions;
@@ -91,12 +93,12 @@ implements ViewModelFacet {
      * {@link org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet.RecreationMechanism#INSTANTIATES}
      * (ignored otherwise).
      */
-    protected Object doInstantiate(final Class<?> viewModelClass, final Bookmark bookmark) {
+    protected Object doInstantiate(final Class<?> viewModelClass, final @Nullable Bookmark bookmark) {
         throw new IllegalStateException("doInstantiate() must be overridden if RecreationMechanism is INSTANTIATES");
     }
 
     @Override
-    public final void initialize(final Object viewModelPojo, final Bookmark bookmark) {
+    public final void initialize(final Object viewModelPojo, final @Nullable Bookmark bookmark) {
         if (getRecreationMechanism() == RecreationMechanism.INSTANTIATES) {
             throw new IllegalStateException("This view model instantiates rather than initializes");
         }
@@ -110,7 +112,7 @@ implements ViewModelFacet {
      * {@link org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet.RecreationMechanism#INITIALIZES}
      * (ignored otherwise).
      */
-    protected void doInitialize(final Object viewModelPojo, final Bookmark bookmark) {
+    protected void doInitialize(final Object viewModelPojo, final @Nullable Bookmark bookmark) {
         throw new IllegalStateException("doInitialize() must be overridden if RecreationMechanism is INITIALIZE");
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
index 5042f1b..f735d03 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
@@ -18,6 +18,8 @@
  */
 package org.apache.isis.core.metamodel.facets.object.recreatable;
 
+import org.springframework.lang.Nullable;
+
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.urlencoding.UrlEncodingService;
 import org.apache.isis.commons.internal.memento._Mementos;
@@ -50,9 +52,9 @@ extends RecreatableObjectFacetAbstract {
     @Override
     protected void doInitialize(
             final Object viewModelPojo,
-            final Bookmark bookmark) {
+            final @Nullable Bookmark bookmark) {
 
-        val memento = parseMemento(bookmark.getIdentifier());
+        val memento = parseMemento(bookmark!=null ? bookmark.getIdentifier() : null);
         val mementoKeys = memento.keySet();
 
         if(mementoKeys.isEmpty()) {