This is an automated email from the ASF dual-hosted git repository.

cziegeler pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourceresolver.git


The following commit(s) were added to refs/heads/master by this push:
     new d47a6b0  SLING-12389 : All resource resolver operations should check 
for a closed
d47a6b0 is described below

commit d47a6b0eeea58a0868ba24d2b8383447b02af224
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Tue Jul 23 09:42:51 2024 +0200

    SLING-12389 : All resource resolver operations should check for a closed
---
 .../impl/ResourceResolverImpl.java                 | 23 ++++++++++++++++++----
 .../impl/ResourceResolverImplTest.java             |  1 -
 2 files changed, 19 insertions(+), 5 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
 
b/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
index 7b32c4d..128521a 100644
--- 
a/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
+++ 
b/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
@@ -443,6 +443,7 @@ public class ResourceResolverImpl extends SlingAdaptable 
implements ResourceReso
      */
     @Override
     public String map(final HttpServletRequest request, final String 
resourcePath) {
+        checkClosed();
         return adaptTo(ResourceMapper.class).getMapping(resourcePath, request);
     }
 
@@ -550,6 +551,8 @@ public class ResourceResolverImpl extends SlingAdaptable 
implements ResourceReso
      */
     @Override
     public Iterable<Resource> getChildren(final Resource parent) {
+        checkClosed();
+
         return new Iterable<Resource>() {
 
             @Override
@@ -965,6 +968,8 @@ public class ResourceResolverImpl extends SlingAdaptable 
implements ResourceReso
     @Override
     public void delete(final Resource resource)
             throws PersistenceException {
+        checkClosed();
+
         // check if the resource is non existing - throws NPE if resource is 
null as stated in the API
         if ( ResourceUtil.isNonExistingResource(resource) ) {
             // nothing to do
@@ -980,6 +985,7 @@ public class ResourceResolverImpl extends SlingAdaptable 
implements ResourceReso
     @Override
     public Resource create(final Resource parent, final String name, final 
Map<String, Object> properties)
             throws PersistenceException {
+        checkClosed();
         // if parent or name is null, we get an NPE as stated in the API
         if ( name == null ) {
             throw new NullPointerException("name");
@@ -1011,6 +1017,7 @@ public class ResourceResolverImpl extends SlingAdaptable 
implements ResourceReso
     @Override
     public boolean orderBefore(@NotNull Resource parent, @NotNull String name, 
@Nullable String followingSiblingName)
             throws UnsupportedOperationException, PersistenceException, 
IllegalArgumentException {
+        checkClosed();
         return this.control.orderBefore(this.context, parent, name, 
followingSiblingName);
     }
 
@@ -1019,6 +1026,7 @@ public class ResourceResolverImpl extends SlingAdaptable 
implements ResourceReso
      */
     @Override
     public void revert() {
+        checkClosed();
         this.control.revert(this.context);
     }
 
@@ -1027,6 +1035,7 @@ public class ResourceResolverImpl extends SlingAdaptable 
implements ResourceReso
      */
     @Override
     public void commit() throws PersistenceException {
+        checkClosed();
         this.control.commit(this.context);
         resourceTypeLookupCache.clear();
     }
@@ -1036,6 +1045,7 @@ public class ResourceResolverImpl extends SlingAdaptable 
implements ResourceReso
      */
     @Override
     public boolean hasChanges() {
+        checkClosed();
         return this.control.hasChanges(this.context);
     }
 
@@ -1044,6 +1054,7 @@ public class ResourceResolverImpl extends SlingAdaptable 
implements ResourceReso
      */
        @Override
     public boolean hasChildren(Resource resource) {
+        checkClosed();
                return listChildren(resource).hasNext();
        }
 
@@ -1052,6 +1063,7 @@ public class ResourceResolverImpl extends SlingAdaptable 
implements ResourceReso
      */
     @Override
     public String getParentResourceType(final Resource resource) {
+        checkClosed();
         String resourceSuperType = null;
         if ( resource != null ) {
             resourceSuperType = resource.getResourceSuperType();
@@ -1067,6 +1079,7 @@ public class ResourceResolverImpl extends SlingAdaptable 
implements ResourceReso
      */
     @Override
     public String getParentResourceType(final String resourceType) {
+        checkClosed();
         return this.control.getParentResourceType(this.factory, this, 
resourceType);
     }
 
@@ -1075,6 +1088,7 @@ public class ResourceResolverImpl extends SlingAdaptable 
implements ResourceReso
      */
     @Override
     public boolean isResourceType(final Resource resource, final String 
resourceType) {
+        checkClosed();
 
         if ( resource != null && resourceType != null ) {
              ResourceTypeInformation key = new 
ResourceTypeInformation(resource.getResourceType(),resource.getResourceSuperType(),
 resourceType);
@@ -1123,12 +1137,14 @@ public class ResourceResolverImpl extends 
SlingAdaptable implements ResourceReso
      */
     @Override
     public void refresh() {
+        checkClosed();
         this.control.refresh(this.context);
         resourceTypeLookupCache.clear();
     }
 
     @Override
     public Resource getParent(final Resource child) {
+        checkClosed();
         Resource rsrc = null;
         final String parentPath = ResourceUtil.getParent(child.getPath());
         if ( parentPath != null ) {
@@ -1148,6 +1164,7 @@ public class ResourceResolverImpl extends SlingAdaptable 
implements ResourceReso
 
     @Override
     public Resource copy(final String srcAbsPath, final String destAbsPath) 
throws PersistenceException {
+        checkClosed();
         Resource rsrc = this.control.copy(this.context, srcAbsPath, 
destAbsPath);
         if (rsrc != null ) {
             rsrc.getResourceMetadata().setResolutionPath(rsrc.getPath());
@@ -1158,6 +1175,7 @@ public class ResourceResolverImpl extends SlingAdaptable 
implements ResourceReso
 
     @Override
     public Resource move(final String srcAbsPath, final String destAbsPath) 
throws PersistenceException {
+        checkClosed();
         Resource rsrc = this.control.move(this.context, srcAbsPath, 
destAbsPath);
         if (rsrc != null ) {
             rsrc.getResourceMetadata().setResolutionPath(rsrc.getPath());
@@ -1166,6 +1184,7 @@ public class ResourceResolverImpl extends SlingAdaptable 
implements ResourceReso
         return rsrc;
     }
     
+    @Override
     public Map<String,Object> getPropertyMap() {
         if (propertyMap == null) {
             propertyMap = new HashMap<>();
@@ -1173,8 +1192,6 @@ public class ResourceResolverImpl extends SlingAdaptable 
implements ResourceReso
         return propertyMap;
     }
 
-
-
     // Simple pojo acting as key for the resourceTypeLookupCache 
     public class ResourceTypeInformation {
  
@@ -1208,6 +1225,4 @@ public class ResourceResolverImpl extends SlingAdaptable 
implements ResourceReso
             return Objects.equals(s1, other.s1) && Objects.equals(s2, 
other.s2) && Objects.equals(s3, other.s3);
         }
     }
-
-
 }
diff --git 
a/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverImplTest.java
 
b/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverImplTest.java
index 2791776..44ef9eb 100644
--- 
a/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverImplTest.java
+++ 
b/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverImplTest.java
@@ -30,7 +30,6 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 import static org.mockito.Mockito.eq;
-import static org.mockito.Mockito.verify;
 
 import java.io.Closeable;
 import java.io.IOException;

Reply via email to