You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Jukka Zitting (JIRA)" <ji...@apache.org> on 2009/09/21 18:59:16 UTC
[jira] Created: (JCR-2315) Handling of an unspecified item
definition template name
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.
[jira] Commented: (JCR-2315) Handling of an unspecified item
definition template name
Posted by "Marcel Reutegger (JIRA)" <ji...@apache.org>.
[ 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.