Jeroen Hoffman pushed to branch bugfix/CMS-10148 at cms-community / hippo-cms


Commits:
4fb62d11 by Jeroen Hoffman at 2016-07-12T10:35:40+02:00
CMS-10148 pulled catching RepositoryException inside the new method

- - - - -
ec40e131 by Jeroen Hoffman at 2016-07-12T11:51:34+02:00
CMS-10148 using nodeTypeManager.hasNodeType to avoid unnecessary exceptions

- - - - -


1 changed file:

- 
editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/field/AbstractFieldPlugin.java


Changes:

=====================================
editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/field/AbstractFieldPlugin.java
=====================================
--- 
a/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/field/AbstractFieldPlugin.java
+++ 
b/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/field/AbstractFieldPlugin.java
@@ -340,15 +340,11 @@ public abstract class AbstractFieldPlugin<P extends Item, 
C extends IModel> exte
                 ITypeDescriptor subType = field.getTypeDescriptor();
                 AbstractProvider<P, C> provider = newProvider(field, subType, 
model);
 
-                try {
-                    if (IEditor.Mode.EDIT == mode && provider.size() == 0
-                            && (!field.isMultiple() || 
field.getValidators().contains("required"))
-                            && !field.getValidators().contains("optional")
-                            && isNotAbstractNodeType(subType.getType())) {
-                        provider.addNew();
-                    }
-                } catch (RepositoryException e) {
-                    log.warn("error determining whether type 
"+subType.getType()+ " is abstract", e);
+                if (IEditor.Mode.EDIT == mode && provider.size() == 0
+                        && (!field.isMultiple() || 
field.getValidators().contains("required"))
+                        && !field.getValidators().contains("optional")
+                        && isNotAbstractNodeType(subType.getType())) {
+                    provider.addNew();
                 }
 
                 return provider;
@@ -618,8 +614,15 @@ public abstract class AbstractFieldPlugin<P extends Item, 
C extends IModel> exte
         return key;
     }
 
-    private boolean isNotAbstractNodeType(final String type) throws 
RepositoryException {
-        NodeTypeManager nodeTypeManager = 
getSession().getJcrSession().getWorkspace().getNodeTypeManager();
-        return !nodeTypeManager.getNodeType(type).isAbstract();
+    private boolean isNotAbstractNodeType(final String type) {
+        try {
+            final NodeTypeManager nodeTypeManager = 
getSession().getJcrSession().getWorkspace().getNodeTypeManager();
+            if (nodeTypeManager.hasNodeType(type)) {
+                return !nodeTypeManager.getNodeType(type).isAbstract();
+            }
+        } catch (RepositoryException e) {
+            log.error("Exception determining whether type " + type + " is 
abstract", e);
+        }
+        return true;
     }
 }



View it on GitLab: 
https://code.onehippo.org/cms-community/hippo-cms/compare/0a862f437dca346806f99c3b2651f0673b9e49a6...ec40e131d7f312670ba37b5847954cb6a2e585ab
_______________________________________________
Hippocms-svn mailing list
Hippocms-svn@lists.onehippo.org
https://lists.onehippo.org/mailman/listinfo/hippocms-svn

Reply via email to