You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Konrad Windszus (Jira)" <ji...@apache.org> on 2021/09/01 08:16:00 UTC
[jira] [Commented] (SLING-10770) JcrNamespaceRegistry.registerCnd
throws NPE
[ https://issues.apache.org/jira/browse/SLING-10770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17407951#comment-17407951 ]
Konrad Windszus commented on SLING-10770:
-----------------------------------------
There is for sure some code still missing there, but maybe you can reuse some code from https://github.com/apache/jackrabbit-filevault/blob/61e920f55e487aa5dc045c66ce5b7b5e444784ca/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/nodetype/NodeTypeValidatorFactory.java#L112 which also reads CNDs without a repository context (used during a Maven build).
> JcrNamespaceRegistry.registerCnd throws NPE
> -------------------------------------------
>
> Key: SLING-10770
> URL: https://issues.apache.org/jira/browse/SLING-10770
> Project: Sling
> Issue Type: Bug
> Components: Content-Package to Feature Model Converter
> Reporter: Angela Schreiber
> Priority: Major
> Fix For: Content-Package to Feature Model Converter 1.1.10
>
>
> [~karlpauls], while trying to fix some sonar findings in the converter I came across a warning about a null {{NodeTypeManager}} being passed to {{CndImporter.registerNodeTypes}} in the following new method introduced with SLING-10243:
> {code}
> public void registerCnd(Reader reader, String systemId) throws ParseException, RepositoryException, IOException {
> NodeTypeManager ntManager = null;
> ValueFactory valueFactory = null;
> CndImporter.registerNodeTypes(reader, systemId, ntManager, this, valueFactory, false);
> registeredCndSystemIds.add(systemId);
> }
> {code}
> a simple test shows that the method always fails with NPE.
> so, unless i am missing something that code calling this method doesn't work at all..... according to https://sonarcloud.io/component_measures?id=apache_sling-org-apache-sling-feature-cpconverter&metric=uncovered_conditions&selected=apache_sling-org-apache-sling-feature-cpconverter%3Asrc%2Fmain%2Fjava%2Forg%2Fapache%2Fsling%2Ffeature%2Fcpconverter%2Fvltpkg%2FJcrNamespaceRegistry.java&view=list the method isn't covered with any tests either.... so that might explain why it has not been spotted before.
> what would be the best approach to get this fixed? should we revert changes made with SLING-10243? There is most probably no instance of JCR {{NodeTypeManager}} available if there is no JCR repository available at the stage the converter is being executed and I don't think mocking it at this stage is sensible.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)