Uploaded image for project: 'Sling'
  1. Sling
  2. SLING-10770

JcrNamespaceRegistry.registerCnd throws NPE

    XMLWordPrintableJSON

Details

    Description

      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:

      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);
          }
      

      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.

      Attachments

        Issue Links

          Activity

            People

              Sc0rpic0m Niek Raaijmakers
              angela Angela Schreiber
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: