You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2021/07/19 08:55:10 UTC

[isis] branch master updated: ISIS-2800: fixing potential NPE in reasonVetoed

This is an automated email from the ASF dual-hosted git repository.

danhaywood 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 45e06e5  ISIS-2800: fixing potential NPE in reasonVetoed
45e06e5 is described below

commit 45e06e5b44c8a3d96934a367b475453317638af3
Author: mwhesse <mw...@gmail.com>
AuthorDate: Mon Jul 19 13:03:46 2021 +0700

    ISIS-2800: fixing potential NPE in reasonVetoed
---
 .../isis/core/metamodel/interactions/managed/ManagedMember.java  | 8 +++++---
 .../core/metamodel/interactions/managed/ManagedParameter.java    | 8 +++++---
 .../core/metamodel/interactions/managed/ManagedProperty.java     | 7 ++++---
 .../interactions/managed/ParameterNegotiationModel.java          | 9 +++++++++
 4 files changed, 23 insertions(+), 9 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedMember.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedMember.java
index 4ac66b8..ba8bdcf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedMember.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedMember.java
@@ -39,7 +39,9 @@ import lombok.NonNull;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import lombok.val;
+import lombok.extern.log4j.Log4j2;
 
+@Log4j2
 @RequiredArgsConstructor
 public abstract class ManagedMember implements ManagedFeature {
 
@@ -153,6 +155,7 @@ public abstract class ManagedMember implements ManagedFeature {
 
         } catch (final Exception ex) {
 
+            log.warn(ex.getLocalizedMessage(), ex);
             return Optional.of(InteractionVeto.hidden(new Veto("failure during visibility evaluation")));
 
         }
@@ -176,9 +179,8 @@ public abstract class ManagedMember implements ManagedFeature {
 
         } catch (final Exception ex) {
 
-            return Optional.of(InteractionVeto
-                    .readonly(
-                            new Veto(ex.getLocalizedMessage())));
+            log.warn(ex.getLocalizedMessage(), ex);
+            return Optional.of(InteractionVeto.readonly(new Veto("failure during usability evaluation")));
 
         }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedParameter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedParameter.java
index 2618dbd..77b50c4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedParameter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedParameter.java
@@ -20,6 +20,8 @@ package org.apache.isis.core.metamodel.interactions.managed;
 
 import java.util.Optional;
 
+import org.apache.logging.log4j.Logger;
+
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.Veto;
@@ -35,6 +37,7 @@ public interface ManagedParameter extends ManagedValue, ManagedFeature {
     @Override
     ObjectActionParameter getMetaModel();
     ParameterNegotiationModel getNegotiationModel();
+    Logger _getLogger();
 
     /**
      * @param params
@@ -55,9 +58,8 @@ public interface ManagedParameter extends ManagedValue, ManagedFeature {
 
         } catch (final Exception ex) {
 
-            return Optional.of(InteractionVeto
-                    .readonly(
-                            new Veto(ex.getLocalizedMessage())));
+            _getLogger().warn(ex.getLocalizedMessage(), ex);
+            return Optional.of(InteractionVeto.readonly(new Veto("failure during usability evaluation")));
 
         }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedProperty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedProperty.java
index 37e704f..6442dcd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedProperty.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedProperty.java
@@ -36,7 +36,9 @@ import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
 import lombok.Getter;
 import lombok.NonNull;
 import lombok.val;
+import lombok.extern.log4j.Log4j2;
 
+@Log4j2
 public final class ManagedProperty extends ManagedMember {
 
     // -- FACTORIES
@@ -98,9 +100,8 @@ public final class ManagedProperty extends ManagedMember {
 
         } catch (final Exception ex) {
 
-            return Optional.of(InteractionVeto
-                    .invalid(
-                            new Veto(ex.getLocalizedMessage())));
+            log.warn(ex.getLocalizedMessage(), ex);
+            return Optional.of(InteractionVeto.invalid(new Veto("failure during validity evaluation")));
 
         }
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ParameterNegotiationModel.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ParameterNegotiationModel.java
index 37a2561..d15456a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ParameterNegotiationModel.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ParameterNegotiationModel.java
@@ -22,6 +22,8 @@ import java.util.stream.IntStream;
 
 import javax.annotation.Nullable;
 
+import org.apache.logging.log4j.Logger;
+
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.commons.binding.Bindable;
 import org.apache.isis.commons.binding.Observable;
@@ -41,6 +43,7 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
 import lombok.Getter;
 import lombok.NonNull;
 import lombok.val;
+import lombok.extern.log4j.Log4j2;
 
 
 /**
@@ -211,6 +214,7 @@ public class ParameterNegotiationModel {
 
     // -- INTERNAL HOLDER OF PARAMETER BINDABLES
 
+    @Log4j2
     private static class ParameterModel implements ManagedParameter {
 
         @Getter(onMethod_ = {@Override}) private final int paramNr;
@@ -312,6 +316,11 @@ public class ParameterNegotiationModel {
             return observableParamChoices;
         }
 
+        @Override
+        public Logger _getLogger() {
+            return log;
+        }
+
     }