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 09:50:48 UTC

[sling-org-apache-sling-jmx-provider] 04/09: SLING-3200 : Avoid duplicated requests to mbeans when creating resources

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

rombert pushed a commit to annotated tag org.apache.sling.jmx.provider-1.0.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jmx-provider.git

commit 269ee17f7c2f1c3a3b43a4b26aeaf94fbe18a793
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed Oct 23 08:21:09 2013 +0000

    SLING-3200 : Avoid duplicated requests to mbeans when creating resources
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/jmxprovider@1534954 13f79535-47bb-0310-9956-ffa450edef68
---
 .../sling/jmx/provider/impl/JMXResourceProvider.java | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/apache/sling/jmx/provider/impl/JMXResourceProvider.java b/src/main/java/org/apache/sling/jmx/provider/impl/JMXResourceProvider.java
index 2eb7b46..5d32811 100644
--- a/src/main/java/org/apache/sling/jmx/provider/impl/JMXResourceProvider.java
+++ b/src/main/java/org/apache/sling/jmx/provider/impl/JMXResourceProvider.java
@@ -152,8 +152,22 @@ public class JMXResourceProvider implements ResourceProvider {
                     return new AttributesResource(resourceResolver, path, parent);
                 }
                 if ( info.pathInfo.startsWith("mbean:attributes/") ) {
-                    final AttributesResource parent = (AttributesResource)resourceResolver.getResource(ResourceUtil.getParent(path));
-                    final MBeanResource parentMBeanResource = (MBeanResource) parent.getParent();
+                    final Resource parentRsrc = resourceResolver.getResource(ResourceUtil.getParent(path));
+                    final AttributesResource parentAttributesResource;
+                    final MBeanResource parentMBeanResource;
+                    if ( parentRsrc instanceof AttributesResource ) {
+                        parentAttributesResource = (AttributesResource) parentRsrc;
+                        parentMBeanResource = (MBeanResource)parentRsrc.getParent();
+                    } else {
+                        final AttributeResource parent;
+                        if ( parentRsrc instanceof AttributeResource) {
+                            parent = (AttributeResource)parentRsrc;
+                        } else {
+                            parent = ((MapResource)parentRsrc).getAttributeResource();
+                        }
+                        parentAttributesResource = (AttributesResource) parent.getParent();
+                        parentMBeanResource = (MBeanResource) parentAttributesResource.getParent();
+                    }
                     final AttributeList result = parentMBeanResource.getAttributes();
 
                     final String attrPath = info.pathInfo.substring("mbean:attributes/".length());
@@ -177,7 +191,7 @@ public class JMXResourceProvider implements ResourceProvider {
                                     value = a.getValue();
                                 }
                             }
-                            final AttributeResource rsrc = new AttributeResource(resourceResolver, path, mai, value, parent);
+                            final AttributeResource rsrc = new AttributeResource(resourceResolver, path, mai, value, parentAttributesResource);
                             if ( subPath != null ) {
                                 return rsrc.getChildResource(subPath);
                             }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.