[ https://issues.apache.org/jira/browse/JCR-2315?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12758227#action_12758227 ]
Marcel Reutegger commented on JCR-2315: --------------------------------------- I like 2) better as well. > Handling of an unspecified item definition template name > -------------------------------------------------------- > > Key: JCR-2315 > URL: https://issues.apache.org/jira/browse/JCR-2315 > Project: Jackrabbit Content Repository > Issue Type: Improvement > Components: jackrabbit-spi-commons, nodetype > Reporter: Jukka Zitting > Priority: Minor > > The code below currently leads to a NPE in registerNodeType() due to the > missing name of the wildcard node definition. Uncommenting the setName() call > fixes the issue. > NodeTypeManager manager = ...; > NodeTypeTemplate type = manager.createNodeTypeTemplate(); > NodeDefinitionTemplate wildcard = manager.createNodeDefinitionTemplate(); > // wildcard.setName("*"); > type.getNodeDefinitionTemplates().add(wildcard); > manager.registerNodeType(type, false); > Whatever we do, the code should not throw a NullPointerException. There are > basically two valid approaches: > 1) Throw an exception in registerNodeType() if the name of an item definition > has not been specified. > 2) Treat item definitions with unspecified names as residual. > Note that a ItemDefinition.getName() is explicitly specified to return null > (instead of "*") when the name has not been set, which seems to suggest that > option 1 above is the correct behaviour. On the other hand, the respective > setName() call is specified to accept only a "syntactically valid JCR name", > which would suggest option 2 as the correct alternative. > Personally I tend to like option 2 better, as that's also how I intuitively > was using the API when I ran into the NPE error. That approach was also what > Jackrabbit used to do before the node type handling was recently merged with > the SPI code. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.