You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:16:40 UTC
[sling-org-apache-sling-tenant] 06/18: SLING-2676 Catch exceptions
from TenantCustomizer and log
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.tenant-1.0.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-tenant.git
commit a2a8b2b25b99d4d8267fef64cf52c30499bf1561
Author: Felix Meschberger <fm...@apache.org>
AuthorDate: Thu Nov 29 13:20:17 2012 +0000
SLING-2676 Catch exceptions from TenantCustomizer and log
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/tenant@1415157 13f79535-47bb-0310-9956-ffa450edef68
---
.../sling/tenant/internal/TenantProviderImpl.java | 59 ++++++++++++++--------
1 file changed, 37 insertions(+), 22 deletions(-)
diff --git a/src/main/java/org/apache/sling/tenant/internal/TenantProviderImpl.java b/src/main/java/org/apache/sling/tenant/internal/TenantProviderImpl.java
index 45a7933..a45b83f 100644
--- a/src/main/java/org/apache/sling/tenant/internal/TenantProviderImpl.java
+++ b/src/main/java/org/apache/sling/tenant/internal/TenantProviderImpl.java
@@ -64,6 +64,8 @@ import org.osgi.framework.Constants;
import org.osgi.framework.Filter;
import org.osgi.framework.FrameworkUtil;
import org.osgi.framework.InvalidSyntaxException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* JCR Tenant Provider implementation.
@@ -83,6 +85,10 @@ import org.osgi.framework.InvalidSyntaxException;
cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE,
policy = ReferencePolicy.DYNAMIC)
public class TenantProviderImpl implements TenantProvider {
+
+ /** default log */
+ private final Logger log = LoggerFactory.getLogger(getClass());
+
/**
* Root path for tenant
*/
@@ -232,33 +238,38 @@ public class TenantProviderImpl implements TenantProvider {
if (child != null) {
throw new PersistenceException("Tenant already exists with Id " + tenantId);
- } else {
- // create the tenant
- Node rootNode = tenantRootRes.adaptTo(Node.class);
- Node tenantNode = rootNode.addNode(tenantId);
- tenantNode.setProperty(Tenant.PROP_NAME, name);
- tenantNode.setProperty(Tenant.PROP_DESCRIPTION, description);
-
- Resource resource = adminResolver.getResource(tenantNode.getPath());
- Tenant tenant = new TenantImpl(resource);
- PersistableValueMap tenantProps = resource.adaptTo(PersistableValueMap.class);
- // call tenant setup handler
- for (TenantCustomizer ts : getTenantHandlers()) {
+ }
+
+ // create the tenant
+ Node rootNode = tenantRootRes.adaptTo(Node.class);
+ Node tenantNode = rootNode.addNode(tenantId);
+ tenantNode.setProperty(Tenant.PROP_NAME, name);
+ tenantNode.setProperty(Tenant.PROP_DESCRIPTION, description);
+
+ Resource resource = adminResolver.getResource(tenantNode.getPath());
+ Tenant tenant = new TenantImpl(resource);
+ PersistableValueMap tenantProps = resource.adaptTo(PersistableValueMap.class);
+ // call tenant setup handler
+ for (TenantCustomizer ts : getTenantHandlers()) {
+ try {
Map<String, Object> props = ts.setup(tenant, adminResolver);
if (props != null) {
tenantProps.putAll(props);
}
+ } catch (Exception e) {
+ log.info("addTenant: Unexpected problem calling TenantCustomizer " + ts, e);
}
- // save the properties
- tenantProps.save();
-
- // save the session
- adminSession.save();
- // refersh tenant instance, as it copies property from
- // resource
- tenant = new TenantImpl(resource);
- return tenant;
}
+ // save the properties
+ tenantProps.save();
+
+ // save the session
+ adminSession.save();
+ // refersh tenant instance, as it copies property from
+ // resource
+ tenant = new TenantImpl(resource);
+ return tenant;
+
} catch (RepositoryException e) {
throw new PersistenceException("Unexpected RepositoryException while adding tenant", e);
} finally {
@@ -295,7 +306,11 @@ public class TenantProviderImpl implements TenantProvider {
Tenant tenant = new TenantImpl(tenantRes);
// call tenant setup handler
for (TenantCustomizer ts : getTenantHandlers()) {
- ts.remove(tenant, adminResolver);
+ try {
+ ts.remove(tenant, adminResolver);
+ } catch (Exception e) {
+ log.info("removeTenant: Unexpected problem calling TenantCustomizer " + ts, e);
+ }
}
tenantNode.remove();
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.