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 2020/02/17 05:22:58 UTC

[isis] 01/02: ISIS-2291: fix possible NPE with JGrowlBehaviour

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

commit a6d2b8c7c96e92f3b3f244d4d3dd5a65a149086d
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Feb 17 06:22:14 2020 +0100

    ISIS-2291: fix possible NPE with JGrowlBehaviour
---
 .../viewer/wicket/ui/errors/JGrowlBehaviour.java   | 39 ++++++++++++++--------
 1 file changed, 25 insertions(+), 14 deletions(-)

diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/JGrowlBehaviour.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/JGrowlBehaviour.java
index ae0510e..cae1eba 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/JGrowlBehaviour.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/JGrowlBehaviour.java
@@ -18,6 +18,8 @@
  */
 package org.apache.isis.viewer.wicket.ui.errors;
 
+import java.util.Optional;
+
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -28,6 +30,7 @@ import org.apache.wicket.request.resource.JavaScriptResourceReference;
 
 import org.apache.isis.applib.RecoverableException;
 import org.apache.isis.core.commons.internal.base._Strings;
+import org.apache.isis.core.security.authentication.AuthenticationSession;
 import org.apache.isis.core.security.authentication.MessageBroker;
 import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
 
@@ -54,10 +57,13 @@ public class JGrowlBehaviour extends AbstractDefaultAjaxBehavior {
 
     @Override
     protected void respond(AjaxRequestTarget target) {
-        String feedbackMsg = JGrowlUtil.asJGrowlCalls(getMessageBroker());
-        if(!_Strings.isNullOrEmpty(feedbackMsg)) {
-            target.appendJavaScript(feedbackMsg);
-        }
+        
+        getMessageBroker().ifPresent(messageBroker->{
+            String feedbackMsg = JGrowlUtil.asJGrowlCalls(messageBroker);
+            if(!_Strings.isNullOrEmpty(feedbackMsg)) {
+                target.appendJavaScript(feedbackMsg);
+            }
+        });
     }
 
     @Override
@@ -68,19 +74,24 @@ public class JGrowlBehaviour extends AbstractDefaultAjaxBehavior {
     }
 
     public void renderFeedbackMessages(IHeaderResponse response) {
-        response.render(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(JGrowlBehaviour.class, "js/bootstrap-growl.js")));
+        response.render(
+                JavaScriptHeaderItem
+                .forReference(new JavaScriptResourceReference(JGrowlBehaviour.class, "js/bootstrap-growl.js")));
 
-        String feedbackMsg = JGrowlUtil.asJGrowlCalls(getMessageBroker());
-        if(!_Strings.isNullOrEmpty(feedbackMsg)) {
-            response.render(OnDomReadyHeaderItem.forScript(feedbackMsg));
-        }
+        getMessageBroker().ifPresent(messageBroker->{
+        
+            String feedbackMsg = JGrowlUtil.asJGrowlCalls(messageBroker);
+            if(_Strings.isNotEmpty(feedbackMsg)) {
+                response.render(OnDomReadyHeaderItem.forScript(feedbackMsg));
+            }
+            
+        });
+        
     }
 
-
-    protected MessageBroker getMessageBroker() {
-        return commonContext.getAuthenticationSession().getMessageBroker();
+    protected Optional<MessageBroker> getMessageBroker() {
+        return Optional.ofNullable(commonContext.getAuthenticationSession())
+                .map(AuthenticationSession::getMessageBroker);
     }
 
-    
-
 }