unit test resourceresolver : AEM JUnit throwing "Resourceresolver already closed" exception. | Community
Skip to main content
sreenu539
Level 7
March 21, 2023
Solved

unit test resourceresolver : AEM JUnit throwing "Resourceresolver already closed" exception.

  • March 21, 2023
  • 1 reply
  • 1011 views

 

How to unit test below piece of code, without getting a "Resourceresolver already closed" exception.

I am using AemContext.resourceResolver() to get handle onto resource resolver and try with resource block closing resource resolver after unit of work complete.

 

How anyone is testing below piece of code

 

 

try (ResourceResolver resolver = factory.getServiceResourceResolver(authInfo)) { Resource resource = resolver.getResource("/content/sourcedcode/jcr:content"); if (Objects.nonNull(resource)) { String prop = resource.getValueMao().get("key", String.class); } } catch (Exception e) { e.printStackTrace(); }

 

 

 

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Nitin_laad

Hi @sreenu539 

check this - 

try (ResourceResolver resolver = factory.getServiceResourceResolver(authInfo)) { Resource currentResource = resolver.getResource("/content/sourcedcode"); Resource contentResource = currentResource.getChild("jcr:content"); if (Objects.nonNull(contentResource)) { String prop = contentResource.getValueMap().get("key", String.class); // use the prop value here } } catch (Exception e) { e.printStackTrace(); }

1 reply

Nitin_laad
Community Advisor
Nitin_laadCommunity AdvisorAccepted solution
Community Advisor
March 23, 2023

Hi @sreenu539 

check this - 

try (ResourceResolver resolver = factory.getServiceResourceResolver(authInfo)) { Resource currentResource = resolver.getResource("/content/sourcedcode"); Resource contentResource = currentResource.getChild("jcr:content"); if (Objects.nonNull(contentResource)) { String prop = contentResource.getValueMap().get("key", String.class); // use the prop value here } } catch (Exception e) { e.printStackTrace(); }