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 2013/04/26 18:05:08 UTC
[2/2] git commit: ISIS-390: fix for NPE in wicket viewer when
rendering actions...
ISIS-390: fix for NPE in wicket viewer when rendering actions...
... that are invisible to a particular user.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/0ef9dd81
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/0ef9dd81
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/0ef9dd81
Branch: refs/heads/master
Commit: 0ef9dd81e4adfce7ce2349bdeef638b81e30c0c7
Parents: 8cc29a3
Author: Dan Haywood <da...@apache.org>
Authored: Fri Apr 26 17:04:34 2013 +0100
Committer: Dan Haywood <da...@apache.org>
Committed: Fri Apr 26 17:04:34 2013 +0100
----------------------------------------------------------------------
.../ui/components/widgets/cssmenu/CssMenuItem.java | 17 +++++++++-----
1 files changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/0ef9dd81/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
index d4c5148..e2c1a3c 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
@@ -203,19 +203,24 @@ public class CssMenuItem implements Serializable {
*/
public Builder newSubMenuItem(final ObjectAdapterMemento targetAdapterMemento, final ObjectAction objectAction, final CssMenuLinkFactory cssMenuLinkFactory) {
- final LinkAndLabel linkAndLabel = cssMenuLinkFactory.newLink(targetAdapterMemento, objectAction, PageAbstract.ID_MENU_LINK);
- final AbstractLink link = linkAndLabel.getLink();
- final String actionLabel = linkAndLabel.getLabel();
-
- // check visibility and whether enabled
+ // check visibility
final AuthenticationSession session = getAuthenticationSession();
-
final ObjectAdapter adapter = targetAdapterMemento.getObjectAdapter(ConcurrencyChecking.CHECK);
final Consent visibility = objectAction.isVisible(session, adapter, where);
if (visibility.isVetoed()) {
return null;
}
+ // build the link
+ final LinkAndLabel linkAndLabel = cssMenuLinkFactory.newLink(targetAdapterMemento, objectAction, PageAbstract.ID_MENU_LINK);
+ if(linkAndLabel==null) {
+ // can only get a null if invisible, so this should not happen given guard above
+ return null;
+ }
+ final AbstractLink link = linkAndLabel.getLink();
+ final String actionLabel = linkAndLabel.getLabel();
+
+ // check whether enabled
final Consent usability = objectAction.isUsable(session, adapter, where);
final String reasonDisabledIfAny = usability.getReason();