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

NPE in RRMockResourceResolverWrapper.getResource() when mixing JCR and default RR type

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • Testing Sling Mock 3.1.2
    • Testing Sling Mock 3.2.0
    • Testing
    • None

    Description

      For the following unit test

      @Rule
      public final SlingContext context = new SlingContext(ResourceResolverType.JCR_MOCK);
      
      @Test
          public void test() throws Exception {
              ResourceResolver resourceResolver = MockSling.newResourceResolver(context.bundleContext());
              MockSlingHttpServletRequest request = new MockSlingHttpServletRequest(resourceResolver, context.bundleContext());
              resourceResolver.getResource("/some/path");
      ....
      }
      

      I ran into the following NPE

      java.lang.NullPointerException
      	at org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.getResource(JcrResourceProvider.java:320)
      	at org.apache.sling.testing.mock.sling.RRMockResourceResolverWrapper.getResource(RRMockResourceResolverWrapper.java:66)
      ...
      

      This is caused by https://github.com/apache/sling-org-apache-sling-testing-sling-mock/blob/b642cb54b9f69c6f6649e335e0f7ae8da58183c6/core/src/main/java/org/apache/sling/testing/mock/sling/RRMockResourceResolverWrapper.java#L113 returning null (which seems fine according to the contract which states that null might be returned) and https://github.com/apache/sling-org-apache-sling-jcr-resource/blob/89bc0bb344d6c7f109f6e43ef5e87bda7c04d286/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrResourceProvider.java#L320 unconditionally dereferencing it.

      I raised https://lists.apache.org/thread/tss0dlhqss5pzhqz89brlgryb3s44gh8 to clarify whether JCR Resource Provider needs to be fixed as well.

      Attachments

        Issue Links

          Activity

            People

              sseifert Stefan Seifert
              kwin Konrad Windszus
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m