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