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/09/13 14:58:57 UTC

[isis] branch master updated: ISIS-2846: fixes potential NPE in canonical description handling

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 d5985b7  ISIS-2846: fixes potential NPE in canonical description handling
d5985b7 is described below

commit d5985b76ce452a2f53304768bcbb6f6b4c7753a7
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Sep 13 16:58:48 2021 +0200

    ISIS-2846: fixes potential NPE in canonical description handling
    
    also renames the named/described extension attributes
---
 .../core/metamodel/spec/feature/ObjectFeature.java |  3 +-
 .../AbstractTypeFeatureReprRenderer.java           | 32 +++++++++++++++-------
 2 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectFeature.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectFeature.java
index 7f119eb..b747fee 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectFeature.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectFeature.java
@@ -23,6 +23,7 @@ import java.util.function.Supplier;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.commons.internal.base._Either;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -141,7 +142,7 @@ public interface ObjectFeature extends Specification {
         val staticDescription = getStaticDescription();
         return staticDescription.isPresent()
                 ? _Either.left(staticDescription.get())
-                : _Either.right(getCanonicalDescription());
+                : _Either.right(_Strings.nullToEmpty(getCanonicalDescription()));
     }
 
     /**
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeFeatureReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeFeatureReprRenderer.java
index 49aa286..ff910b9 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeFeatureReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeFeatureReprRenderer.java
@@ -98,21 +98,33 @@ extends ReprRendererAbstract<ParentSpecAndFeature<T>> {
     protected abstract void putExtensionsSpecificToFeature();
 
     protected void putExtensionsName() {
-        getObjectFeature().getStaticOrCanonicalFriendlyName()
+        getObjectFeature()
+        .getStaticOrCanonicalFriendlyName()
         .accept(
-                staticForm->
-                    getExtensions().mapPut("staticFriendlyName", staticForm),
-                canonicalForm->
-                    getExtensions().mapPut("canonicalFriendlyName", canonicalForm));
+                staticForm->{
+                    getExtensions().mapPut("friendlyName", staticForm);
+                    getExtensions().mapPut("friendlyNameForm", "static");
+                },
+                canonicalForm->{
+                    getExtensions().mapPut("friendlyName", canonicalForm);
+                    getExtensions().mapPut("friendlyNameForm", "canonical");
+                });
     }
 
     protected void putExtensionsDescriptionIfAvailable() {
-        getObjectFeature().getStaticOrCanonicalDescription()
+        getObjectFeature()
+        .getStaticOrCanonicalDescription()
         .accept(
-                staticForm->
-                    getExtensions().mapPut("staticDescription", staticForm),
-                canonicalForm->
-                    getExtensions().mapPut("canonicalDescription", canonicalForm));
+                staticForm->{
+                    if(staticForm.isEmpty()) return;
+                    getExtensions().mapPut("description", staticForm);
+                    getExtensions().mapPut("descriptionForm", "static");
+                },
+                canonicalForm->{
+                    if(canonicalForm.isEmpty()) return;
+                    getExtensions().mapPut("description", canonicalForm);
+                    getExtensions().mapPut("descriptionForm", "canonical");
+                });
     }
 
 }
\ No newline at end of file