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 a7367e0  ISIS-2223: more mitigations
a7367e0 is described below

commit a7367e0d443a6d01d9c948f58dd0285b16e9bd23
Author: Andi Huber <ahu...@apache.org>
AuthorDate: Fri Feb 14 17:46:03 2020 +0100

    ISIS-2223: more mitigations
---
 .../viewer/restfulobjects/applib/RestfulRequest.java     | 16 ++++++++--------
 .../actionmenu/serviceactions/CssMenuItem.java           |  4 ++--
 .../actionmenu/serviceactions/ServiceActionUtil.java     |  9 +++------
 .../actionmenu/serviceactions/ServiceAndAction.java      |  8 +++++---
 .../apache/isis/viewer/wicket/ui/pages/PageAbstract.java |  2 +-
 5 files changed, 19 insertions(+), 20 deletions(-)

diff --git 
a/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RestfulRequest.java
 
b/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RestfulRequest.java
index e4a3187..b9b34f7 100644
--- 
a/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RestfulRequest.java
+++ 
b/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RestfulRequest.java
@@ -57,12 +57,12 @@ public final class RestfulRequest {
 
     public static class RequestParameter<Q> {
 
-        public static RequestParameter<List<List<String>>> FOLLOW_LINKS = new 
RequestParameter<List<List<String>>>("x-ro-follow-links", 
Parser.forListOfListOfStrings(), Collections.<List<String>> emptyList());
-        public static RequestParameter<Integer> PAGE = new 
RequestParameter<Integer>("x-ro-page", Parser.forInteger(), 1);
-        public static RequestParameter<Integer> PAGE_SIZE = new 
RequestParameter<Integer>("x-ro-page-size", Parser.forInteger(), 25);
-        public static RequestParameter<List<String>> SORT_BY = new 
RequestParameter<List<String>>("x-ro-sort-by", Parser.forListOfStrings(), 
Collections.<String> emptyList());
-        public static RequestParameter<DomainModel> DOMAIN_MODEL = new 
RequestParameter<DomainModel>("x-ro-domain-model", DomainModel.parser(), 
DomainModel.FORMAL);
-        public static RequestParameter<Boolean> VALIDATE_ONLY = new 
RequestParameter<Boolean>("x-ro-validate-only", Parser.forBoolean(), false);
+        public static final RequestParameter<List<List<String>>> FOLLOW_LINKS 
= new RequestParameter<List<List<String>>>("x-ro-follow-links", 
Parser.forListOfListOfStrings(), Collections.<List<String>> emptyList());
+        public static final RequestParameter<Integer> PAGE = new 
RequestParameter<Integer>("x-ro-page", Parser.forInteger(), 1);
+        public static final RequestParameter<Integer> PAGE_SIZE = new 
RequestParameter<Integer>("x-ro-page-size", Parser.forInteger(), 25);
+        public static final RequestParameter<List<String>> SORT_BY = new 
RequestParameter<List<String>>("x-ro-sort-by", Parser.forListOfStrings(), 
Collections.<String> emptyList());
+        public static final RequestParameter<DomainModel> DOMAIN_MODEL = new 
RequestParameter<DomainModel>("x-ro-domain-model", DomainModel.parser(), 
DomainModel.FORMAL);
+        public static final RequestParameter<Boolean> VALIDATE_ONLY = new 
RequestParameter<Boolean>("x-ro-validate-only", Parser.forBoolean(), false);
 
         private final String name;
         private final Parser<Q> parser;
@@ -104,8 +104,8 @@ public final class RestfulRequest {
     }
 
     public static class Header<X> {
-        public static Header<String> IF_MATCH = new Header<String>("If-Match", 
Parser.forString());
-        public static Header<List<MediaType>> ACCEPT = new 
Header<List<MediaType>>("Accept", Parser.forListOfJaxRsMediaTypes());
+        public static final Header<String> IF_MATCH = new 
Header<String>("If-Match", Parser.forString());
+        public static final Header<List<MediaType>> ACCEPT = new 
Header<List<MediaType>>("Accept", Parser.forListOfJaxRsMediaTypes());
 
         private final String name;
         private final Parser<X> parser;
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
index e3880f6..ca1b982 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
@@ -348,7 +348,7 @@ class CssMenuItem implements Serializable {
 
         final EntityModel targetEntityModel = 
serviceAndAction.serviceEntityModel;
         final ObjectAction objectAction = serviceAndAction.objectAction;
-        final boolean separator = serviceAndAction.separator;
+        final boolean requiresSeparator = serviceAndAction.isFirstSection;
         final ServiceActionLinkFactory actionLinkFactory = 
serviceAndAction.linkAndLabelFactory;
 
         val serviceAdapter = targetEntityModel.load();
@@ -396,7 +396,7 @@ class CssMenuItem implements Serializable {
                         ObjectAction.Util.isNoParameters(objectAction))
                 
.returnsBlobOrClob(ObjectAction.Util.returnsBlobOrClob(objectAction))
                 .prototyping(objectAction.isPrototype())
-                .requiresSeparator(separator)
+                .requiresSeparator(requiresSeparator)
                 
.withActionIdentifier(ObjectAction.Util.actionIdentifierFor(objectAction))
                 .withCssClass(ObjectAction.Util.cssClassFor(objectAction, 
serviceAdapter))
                 .withCssClassFa(ObjectAction.Util.cssClassFaFor(objectAction))
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
index c78a6c0..de13ad8 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
@@ -212,7 +212,7 @@ public final class ServiceActionUtil {
 
             for (final MenuSection menuSection : menu.getSections()) {
 
-                boolean firstSection = true;
+                boolean isFirstSection = true;
 
                 for (final ServiceActionLayoutData actionLayoutData : 
menuSection.getServiceActions()) {
                     val serviceSpecId = actionLayoutData.getObjectType();
@@ -230,12 +230,9 @@ public final class ServiceActionUtil {
                         continue;
                     }
                     final ServiceAndAction serviceAndAction =
-                            new ServiceAndAction(actionLayoutData.getNamed(), 
entityModel, objectAction);
+                            new ServiceAndAction(actionLayoutData.getNamed(), 
entityModel, objectAction, isFirstSection);
 
-                    if(firstSection) {
-                        serviceAndAction.separator = true;
-                        firstSection = false;
-                    }
+                    isFirstSection = false;
 
                     final CssMenuItem.Builder subMenuItemBuilder = 
serviceMenu.newSubMenuItem(serviceAndAction);
                     if (subMenuItemBuilder == null) {
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndAction.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndAction.java
index 56940c5..d10eab8 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndAction.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndAction.java
@@ -26,17 +26,19 @@ class ServiceAndAction {
     final EntityModel serviceEntityModel;
     final ObjectAction objectAction;
     final ServiceActionLinkFactory linkAndLabelFactory;
-
-    public boolean separator;
+    final boolean isFirstSection;
 
     ServiceAndAction(
             final String serviceName,
             final EntityModel serviceEntityModel,
-            final ObjectAction objectAction) {
+            final ObjectAction objectAction,
+            final boolean isFirstSection) {
+        
         this.serviceName = serviceName;
         this.serviceEntityModel = serviceEntityModel;
         this.objectAction = objectAction;
         this.linkAndLabelFactory = new 
ServiceActionLinkFactory(serviceEntityModel);
+        this.isFirstSection = isFirstSection; 
     }
 
     @Override
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
index e87b6b3..735ebaa 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
@@ -122,7 +122,7 @@ public abstract class PageAbstract extends WebPageBase 
implements ActionPromptPr
      * This is a bit hacky, but best way I've found to pass an exception over 
to the WicketSignInPage
      * if there is a problem rendering this page.
      */
-    public static ThreadLocal<ExceptionModel> EXCEPTION = new ThreadLocal<>();
+    public static final ThreadLocal<ExceptionModel> EXCEPTION = new 
ThreadLocal<>();
 
     private final List<ComponentType> childComponentIds;
 

Reply via email to