Author: cziegeler
Date: Mon Feb 15 08:43:51 2016
New Revision: 1730466
URL: http://svn.apache.org/viewvc?rev=1730466&view=rev
Log:
SLING-5521 : Support Closeable for provider state
Modified:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderAdapter.java
Modified:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java?rev=1730466&r1=1730465&r2=1730466&view=diff
==============================================================================
---
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java
(original)
+++
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java
Mon Feb 15 08:43:51 2016
@@ -17,6 +17,7 @@
*/
package org.apache.sling.resourceresolver.impl.helper;
+import java.io.Closeable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -126,9 +127,15 @@ public class ResourceResolverControl {
*/
private void logout() {
for(final Map.Entry<ResourceProviderHandler, Object> entry :
this.authenticatedProviders.entrySet()) {
- final ResourceProvider<Object> rp =
entry.getKey().getResourceProvider();
- if ( rp != null ) {
- rp.logout(entry.getValue());
+ try {
+ final ResourceProvider<Object> rp =
entry.getKey().getResourceProvider();
+ if ( rp != null ) {
+ rp.logout(entry.getValue());
+ } else if ( entry.getValue() instanceof Closeable ) {
+ ((Closeable)entry.getValue()).close();
+ }
+ } catch ( final Throwable t ) {
+ // we ignore everything from there to not stop this thread
}
}
this.authenticatedProviders.clear();
Modified:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderAdapter.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderAdapter.java?rev=1730466&r1=1730465&r2=1730466&view=diff
==============================================================================
---
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderAdapter.java
(original)
+++
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderAdapter.java
Mon Feb 15 08:43:51 2016
@@ -18,6 +18,8 @@
*/
package org.apache.sling.resourceresolver.impl.legacy;
+import java.io.Closeable;
+import java.io.IOException;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
@@ -42,7 +44,7 @@ import org.apache.sling.spi.resource.pro
import org.apache.sling.spi.resource.provider.ResourceProvider;
@SuppressWarnings("deprecation")
-public class LegacyResourceProviderAdapter extends ResourceProvider<Object> {
+public class LegacyResourceProviderAdapter extends ResourceProvider<Object>
implements Closeable {
private final org.apache.sling.api.resource.ResourceProvider rp;
@@ -152,6 +154,11 @@ public class LegacyResourceProviderAdapt
}
}
+ @Override
+ public void close() throws IOException {
+ logout(null);
+ }
+
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public Resource create(final @Nonnull ResolveContext<Object> ctx, final
String path,