[prev in list] [next in list] [prev in thread] [next in thread] 

List:       rhq-commits
Subject:    [rhq] Branch 'heiko/agentFootprint' - 5 commits - modules/core
From:       "Heiko W. Rupp" <pilhuhn () fedoraproject ! org>
Date:       2013-12-16 11:16:02
Message-ID: 20131216111602.DC3B060D93 () fedorahosted ! org
[Download RAW message or body]

 modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/ConfigurationMetadataParser.java \
|   22 ++++---  modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/PluginMetadataManager.java \
|   11 +--  modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/PluginMetadataParser.java \
|   18 ++++-  modules/core/domain/src/main/java/org/rhq/core/domain/configuration/Configuration.java \
|    5 +  modules/core/plugin-container/src/main/java/org/rhq/core/pc/configuration/ConfigurationCheckExecutor.java \
|    2   modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/AvailabilityExecutor.java \
|   31 +++++-----  modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ForceAvailabilityExecutor.java \
|    4 -  modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java \
|   13 ++--  modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/RuntimeDiscoveryExecutor.java \
|    2   9 files changed, 66 insertions(+), 42 deletions(-)

New commits:
commit e460fc848e588afa2d4f0c005424db908be70f9c
Author: Heiko W. Rupp <hwr@redhat.com>
Date:   Mon Dec 16 12:15:35 2013 +0100

    Tune down logging. Obtain resource containers by numeric resource id instead of \
uuid String.

diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/configuration/ConfigurationCheckExecutor.java \
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/configuration/ConfigurationCheckExecutor.java
 index abd0ae1..1dce1d9 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/configuration/ConfigurationCheckExecutor.java
                
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/configuration/ConfigurationCheckExecutor.java
 @@ -77,7 +77,7 @@ public class ConfigurationCheckExecutor implements Runnable, \
Callable {  }
 
     public CountTime checkConfigurations(Resource resource, boolean checkChildren) {
-        ResourceContainer resourceContainer = \
this.inventoryManager.getResourceContainer(resource); +        ResourceContainer \
resourceContainer = this.inventoryManager.getResourceContainer(resource.getId());  \
ConfigurationFacet resourceComponent = null;  ResourceType resourceType = \
resource.getResourceType();  
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/AvailabilityExecutor.java \
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/AvailabilityExecutor.java
 index c23809d..d21505e 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/AvailabilityExecutor.java
                
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/AvailabilityExecutor.java
 @@ -355,7 +355,7 @@ public class AvailabilityExecutor implements Runnable, \
                Callable<AvailabilityRepo
                         t.getLocalizedMessage(), ThrowableUtil.getStackAsString(t), \
                System.currentTimeMillis());
                     this.inventoryManager.sendResourceErrorToServer(resourceError);
                     LOG.warn("Availability collection failed with exception on " + \
                resource
-                        + ", availability will be reported as " + DOWN.name(), t);
+                        + ", availability will be reported as " + DOWN.name() + ", \
reason=" + t.getMessage());  current = DOWN;
                 }
             } else {
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java \
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
 index 27bd7ef..fd5713c 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
                
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
 @@ -1031,7 +1031,7 @@ public class InventoryManager extends AgentService implements \
                ContainerService,
      */
     @Nullable
     public Availability getAvailabilityIfKnown(Resource resource) {
-        ResourceContainer resourceContainer = getResourceContainer(resource);
+        ResourceContainer resourceContainer = \
getResourceContainer(resource.getId());  
         if (resourceContainer != null) {
             if (ResourceComponentState.STARTED == \
resourceContainer.getResourceComponentState()) { @@ -1926,6 +1926,12 @@ public class \
InventoryManager extends AgentService implements ContainerService,  // because we're \
                not actually STARTED
                 container.setResourceComponentState(ResourceComponentState.STOPPED);
 
+                String message = "Failed to start component for resource " + \
resource +                    + ".";
+                if (t.getCause()!=null) {
+                    message += " Cause: " + t.getCause().getMessage();
+                }
+
                 if (updatedPluginConfig || (t instanceof \
InvalidPluginConfigurationException)) {  if (log.isDebugEnabled()) {
                         log.debug("Resource has a bad config, waiting for this to go \
away: " + resource); @@ -1933,11 +1939,10 @@ public class InventoryManager extends \
                AgentService implements ContainerService,
                     InventoryEventListener iel = new ResourceGotActivatedListener();
                     addInventoryEventListener(iel);
 
-                    throw new InvalidPluginConfigurationException("Failed to start \
                component for resource " + resource
-                        + ".", t);
+                    throw new InvalidPluginConfigurationException(message);
                 }
 
-                throw new PluginContainerException("Failed to start component for \
resource " + resource + ".", t); +                throw new \
PluginContainerException(message);  }
 
             // We purposefully do not get availability of this resource yet


commit 2c79b84224f0e25264935edfbcdb4a09f2528266
Author: Heiko W. Rupp <hwr@redhat.com>
Date:   Mon Dec 16 11:54:46 2013 +0100

    Do some string interning.

diff --git a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/ConfigurationMetadataParser.java \
b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/ConfigurationMetadataParser.java
 index 35ef00a..d40d82d 100644
--- a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/ConfigurationMetadataParser.java
                
+++ b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/ConfigurationMetadataParser.java
 @@ -85,7 +85,7 @@ public class ConfigurationMetadataParser {
             return null;
         }
 
-        ConfigurationDefinition configurationDefinition = new \
ConfigurationDefinition(configurationName, +        ConfigurationDefinition \
configurationDefinition = new ConfigurationDefinition(configurationName.intern(),  \
                descriptor.getNotes());
         configurationDefinition.setConfigurationFormat(getConfigurationFormat(descriptor));
  
@@ -181,14 +181,14 @@ public class ConfigurationMetadataParser {
         }
     }
 
-    private static ConfigurationTemplate \
parseTemplate(ConfigurationTemplateDescriptor templateDescripter) +    private static \
ConfigurationTemplate parseTemplate(ConfigurationTemplateDescriptor \
templateDescriptor)  throws InvalidPluginDescriptorException {
-        ConfigurationTemplate template = new \
                ConfigurationTemplate(templateDescripter.getName(),
-            templateDescripter.getDescription());
+        ConfigurationTemplate template = new \
ConfigurationTemplate(templateDescriptor.getName(), +            \
templateDescriptor.getDescription());  Configuration templateConfiguration = new \
Configuration();  template.setConfiguration(templateConfiguration);
 
-        parseProperties(templateDescripter, templateConfiguration, null);
+        parseProperties(templateDescriptor, templateConfiguration, null);
         return template;
     }
 
@@ -313,12 +313,14 @@ public class ConfigurationMetadataParser {
         PropertyDefinition memberDefinition = (memberProperty != null) ? \
parseProperty(memberProperty.getValue(), 0)  : null;
 
-        PropertyDefinitionList list = new \
PropertyDefinitionList(listProperty.getName(), description, +        \
PropertyDefinitionList list = new \
PropertyDefinitionList(listProperty.getName().intern(), description,  \
listProperty.isRequired(), memberDefinition);  
         String displayName = (listProperty.getDisplayName() != null) ? \
                listProperty.getDisplayName() : StringUtils
             .deCamelCase(listProperty.getName());
-        list.setDisplayName(displayName);
+        if (displayName!=null) {
+            list.setDisplayName(displayName.intern());
+        }
         list.setReadOnly(listProperty.isReadOnly());
         list.setSummary(listProperty.isSummary());
 
@@ -336,12 +338,14 @@ public class ConfigurationMetadataParser {
         AbstractPropertyMap defaultConfigurationParentMap) throws \
                InvalidPluginDescriptorException {
         String description = parseMultiValue(mapProperty.getDescription(), \
mapProperty.getLongDescription());  
-        PropertyDefinitionMap propDefMap = new \
PropertyDefinitionMap(mapProperty.getName(), description, +        \
PropertyDefinitionMap propDefMap = new \
PropertyDefinitionMap(mapProperty.getName().intern(), description,  \
mapProperty.isRequired());  
         String displayName = (mapProperty.getDisplayName() != null) ? \
                mapProperty.getDisplayName() : StringUtils
             .deCamelCase(mapProperty.getName());
-        propDefMap.setDisplayName(displayName);
+        if (displayName!=null) {
+            propDefMap.setDisplayName(displayName.intern());
+        }
         propDefMap.setReadOnly(mapProperty.isReadOnly());
         propDefMap.setSummary(mapProperty.isSummary());
 
diff --git a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/PluginMetadataParser.java \
b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/PluginMetadataParser.java
 index 7e7e574..e5d58b2 100644
--- a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/PluginMetadataParser.java
                
+++ b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/PluginMetadataParser.java
 @@ -602,7 +602,7 @@ public class PluginMetadataParser {
         }
 
         try {
-            resourceType.setPlugin(pluginDescriptor.getName());
+            resourceType.setPlugin(pluginDescriptor.getName().intern());
 
             if (resourceDescriptor.getPluginConfiguration() != null) {
                 resourceType.setPluginConfigurationDefinition(ConfigurationMetadataParser.parse(resourceType.getName(),
 @@ -744,7 +744,11 @@ public class PluginMetadataParser {
      * @return the resource discovery component class name
      */
     public String getDiscoveryComponentClass(ResourceType resourceType) {
-        return this.discoveryClasses.get(resourceType);
+        String s = this.discoveryClasses.get(resourceType);
+        if (s!=null) {
+            s = s.intern();
+    }
+        return s;
     }
 
     /**
@@ -755,15 +759,19 @@ public class PluginMetadataParser {
      * @return the resource component class name
      */
     public String getComponentClass(ResourceType resourceType) {
-        return this.componentClasses.get(resourceType);
+        String s = this.componentClasses.get(resourceType);
+        if (s!=null) {
+            s=s.intern();
+    }
+        return s;
     }
 
     private void registerResourceTypeAndComponentClasses(ResourceType resourceType, \
String discoveryClass,  String componentClass) {
         this.resourceTypes.add(resourceType);
-        this.componentClasses.put(resourceType, componentClass);
+        this.componentClasses.put(resourceType, componentClass.intern());
         if (discoveryClass != null) {
-            this.discoveryClasses.put(resourceType, discoveryClass);
+            this.discoveryClasses.put(resourceType, discoveryClass.intern());
         }
     }
 


commit e7cc75bfa28c5cb28c9f55ab91dfa005b6dd2d53
Author: Heiko W. Rupp <hwr@redhat.com>
Date:   Mon Dec 16 11:38:27 2013 +0100

    Synchronize on final fields

diff --git a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/PluginMetadataManager.java \
b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/PluginMetadataManager.java
 index 5b22e3e..6c0703c 100644
--- a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/PluginMetadataManager.java
                
+++ b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/PluginMetadataManager.java
 @@ -1,6 +1,6 @@
 /*
  * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
+ * Copyright (C) 2005-2013 Red Hat, Inc.
  * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
@@ -69,7 +69,7 @@ public class PluginMetadataManager {
 
     private Map<ResourceCategory, LinkedHashSet<ResourceType>> typesByCategory = new \
HashMap<ResourceCategory, LinkedHashSet<ResourceType>>();  private Set<ResourceType> \
                types = new HashSet<ResourceType>();
-    private Object typesLock = new Object();
+    private final Object typesLock = new Object();
 
     private Map<String, PluginMetadataParser> parsersByPlugin = new HashMap<String, \
PluginMetadataParser>();  
@@ -80,12 +80,13 @@ public class PluginMetadataManager {
     private List<String> disabledResourceTypesAsStrings = null;
     private Map<ResourceType, String> disabledResourceTypes = null;
     private Set<ResourceType> ignoredResourceTypes = null;
-    private Object disabledIgnoredTypesLock = new Object(); // used when accessing \
disabled and ignored collections +    private final Object disabledIgnoredTypesLock = \
new Object(); // used when accessing disabled and ignored collections  
     // these define the discovery callbacks per resource type. The key is the \
                resource type whose discovered details
     // need to be funneled through callbacks. The value is a map whose key is plugin \
names and whose values are  // discovery callback implementation classes defined in \
                the plugins.
     private Map<ResourceType, Map<String, List<String>>> discoveryCallbacks = new \
HashMap<ResourceType, Map<String, List<String>>>(); +    private final Object \
discoveryCallbacksLock = new Object();  
     public PluginMetadataManager() {
     }
@@ -516,14 +517,14 @@ public class PluginMetadataManager {
      * @return the collection of callbacks, grouped by the plugins that defined them \
                (may be null)
      */
     public Map<String, List<String>> getDiscoveryCallbacks(ResourceType \
                resourceType) {
-        synchronized (discoveryCallbacks) {
+        synchronized (discoveryCallbacksLock) {
             Map<String, List<String>> map = discoveryCallbacks.get(resourceType);
             return map;
         }
     }
 
     private void addDiscoveryCallbackClassName(ResourceType resourceType, String \
                pluginName, String className) {
-        synchronized (discoveryCallbacks) {
+        synchronized (discoveryCallbacksLock) {
             Map<String, List<String>> map = discoveryCallbacks.get(resourceType);
             if (map == null) {
                 map = new HashMap<String, List<String>>(1);


commit 80c42d099588802c7b12af7a51baf1640f0e4374
Author: Heiko W. Rupp <hwr@redhat.com>
Date:   Mon Dec 16 11:33:37 2013 +0100

    When cloning, directly allocate a collection of the right size.

diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/Configuration.java \
b/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/Configuration.java
 index 27e9dc3..64dc441 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/Configuration.java
                
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/Configuration.java
 @@ -953,6 +953,11 @@ public class Configuration implements Serializable, Cloneable, \
AbstractPropertyM  if (properties==null) {
             return;
         }
+
+        if (copy.properties==null) {
+            copy.properties=new LinkedHashMap<String, \
Property>(this.properties.size()); +        }
+
         for (Property property : this.properties.values()) {
             copy.put(property.deepCopy(keepId));
         }


commit 2fb20f60d6acdc2108ecbedb9091849a5aed0847
Author: Heiko W. Rupp <hwr@redhat.com>
Date:   Mon Dec 16 09:34:59 2013 +0100

    Pull out determination of log.trace

diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/AvailabilityExecutor.java \
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/AvailabilityExecutor.java
 index e278062..c23809d 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/AvailabilityExecutor.java
                
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/AvailabilityExecutor.java
 @@ -169,8 +169,9 @@ public class AvailabilityExecutor implements Runnable, \
Callable<AvailabilityRepo  parentAvailabilityType = UP;
         }
 
+        boolean traceEnabled = LOG.isTraceEnabled();
         try {
-            checkInventory(scanRoot, availabilityReport, parentAvailabilityType, \
false, scan); +            checkInventory(scanRoot, availabilityReport, \
parentAvailabilityType, false, scan, traceEnabled);  } catch (InterruptedException e) \
{  LOG.debug("Availability check was interrupted", e);
             return;
@@ -217,14 +218,14 @@ public class AvailabilityExecutor implements Runnable, \
                Callable<AvailabilityRepo
       * @throws InterruptedException if this checking thread was interrupted
       */
     protected void checkInventory(Resource resource, AvailabilityReport \
                availabilityReport,
-        AvailabilityType parentAvailType, boolean isForced, Scan scan) throws \
InterruptedException { +                                  AvailabilityType \
parentAvailType, boolean isForced, Scan scan, boolean traceEnabled) throws \
InterruptedException {  
         // Only report avail for committed Resources - that's all the Server cares \
                about.
         if (resource.getId() == 0 || resource.getInventoryStatus() != \
InventoryStatus.COMMITTED) {  return;
         }
 
-        ResourceContainer resourceContainer = \
this.inventoryManager.getResourceContainer(resource); +        ResourceContainer \
                resourceContainer = \
                this.inventoryManager.getResourceContainer(resource.getId());
         // Only report avail for synchronized Resources, otherwise the Server will \
likely know nothing of the Resource.  if (resourceContainer == null
             || resourceContainer.getSynchronizationState() != \
ResourceContainer.SynchronizationState.SYNCHRONIZED) { @@ -248,7 +249,7 @@ public \
                class AvailabilityExecutor implements Runnable, \
                Callable<AvailabilityRepo
             // if there is no availability schedule (platform) then just perform the \
avail check  // (note, platforms always return UP anyway).
             if (null == availScheduleRequest) {
-                if (LOG.isTraceEnabled()) {
+                if (traceEnabled) {
                     LOG.trace("No availScheduleRequest for " + resource + ". \
checkAvail set to true");  }
                 checkAvail = true;
@@ -263,14 +264,14 @@ public class AvailabilityExecutor implements Runnable, \
                Callable<AvailabilityRepo
                     availabilityScheduleTime = scan.startTime + \
                RANDOM.nextInt(interval + 1);
                     \
resourceContainer.setAvailabilityScheduleTime(availabilityScheduleTime);  
-                    if (LOG.isTraceEnabled()) {
+                    if (traceEnabled) {
                         LOG.trace("Forced availabilityScheduleTime to " + new \
Date(availabilityScheduleTime) + " for "  + resource);
                     }
                     ++scan.numScheduledRandomly;
 
                 } else {
-                    if (LOG.isTraceEnabled()) {
+                    if (traceEnabled) {
                         LOG.trace("Deferred availability to parent for " + \
resource);  }
                     deferToParent = true;
@@ -281,14 +282,14 @@ public class AvailabilityExecutor implements Runnable, \
Callable<AvailabilityRepo  checkAvail = scan.startTime >= availabilityScheduleTime;
 
             if (checkAvail) {
-                if (LOG.isTraceEnabled()) {
+                if (traceEnabled) {
                     LOG.trace("Scheduled time has been reached for " + resource);
                 }
                 long interval = availScheduleRequest.getInterval(); // intervals are \
                short enough for safe cast
                 resourceContainer.setAvailabilityScheduleTime(scan.startTime + \
interval);  ++scan.numPushedByInterval;
             } else {
-                if (LOG.isTraceEnabled()) {
+                if (traceEnabled) {
                     LOG.trace("Scheduled time has not been reached for " + \
resource);  }
             }
@@ -311,7 +312,7 @@ public class AvailabilityExecutor implements Runnable, \
                Callable<AvailabilityRepo
             // the child.  For now, we'll leave it alone and let the next check \
happen according to the  // schedule already established.
 
-            if (LOG.isTraceEnabled()) {
+            if (traceEnabled) {
                 LOG.trace("Gave parent availability " + parentAvailType + " to " + \
resource);  }
         } else {
@@ -322,7 +323,7 @@ public class AvailabilityExecutor implements Runnable, \
Callable<AvailabilityRepo  }
 
             if (checkAvail) {
-                if (LOG.isTraceEnabled()) {
+                if (traceEnabled) {
                     LOG.trace("Now checking availability for " + resource);
                 }
 
@@ -346,7 +347,7 @@ public class AvailabilityExecutor implements Runnable, \
Callable<AvailabilityRepo  current = DOWN;
                         }
                     }
-                    if (LOG.isTraceEnabled()) {
+                    if (traceEnabled) {
                         LOG.trace("Current availability is " + current + " for " + \
resource);  }
                 } catch (Throwable t) {
@@ -370,7 +371,7 @@ public class AvailabilityExecutor implements Runnable, \
Callable<AvailabilityRepo  Availability availability;
 
             if (availChanged) {
-                if (LOG.isTraceEnabled()) {
+                if (traceEnabled) {
                     LOG.trace("Availability changed for " + resource);
                 }
                 ++scan.numAvailabilityChanges;
@@ -381,7 +382,7 @@ public class AvailabilityExecutor implements Runnable, \
                Callable<AvailabilityRepo
                 // children, to ensure their avails are up to date. Note that if it \
                changed to NOT UP
                 // then the children will just get the parent avail type and there \
is no avail check anyway.  if (!isForced && (UP == current)) {
-                    if (LOG.isTraceEnabled()) {
+                    if (traceEnabled) {
                         LOG.trace("Forcing availability check for children of " + \
resource);  }
                     isForced = true;
@@ -396,7 +397,7 @@ public class AvailabilityExecutor implements Runnable, \
Callable<AvailabilityRepo  }
 
         for (Resource child : this.inventoryManager.getContainerChildren(resource, \
                resourceContainer)) {
-            checkInventory(child, availabilityReport, current, isForced, scan);
+            checkInventory(child, availabilityReport, current, isForced, scan, \
traceEnabled);  }
 
     }
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ForceAvailabilityExecutor.java \
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ForceAvailabilityExecutor.java
 index 53475fd..74a4901 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ForceAvailabilityExecutor.java
                
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ForceAvailabilityExecutor.java
 @@ -37,9 +37,9 @@ public class ForceAvailabilityExecutor extends \
AvailabilityExecutor {  
     @Override
     protected void checkInventory(Resource resource, AvailabilityReport \
                availabilityReport,
-        AvailabilityType parentAvailType, boolean forceCheck, Scan scan) throws \
InterruptedException { +                                  AvailabilityType \
parentAvailType, boolean forceCheck, Scan scan, boolean traceEnabled) throws \
InterruptedException {  
         scan.setForced(true);
-        super.checkInventory(resource, availabilityReport, parentAvailType, true, \
scan); +        super.checkInventory(resource, availabilityReport, parentAvailType, \
true, scan, traceEnabled);  }
 }
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/RuntimeDiscoveryExecutor.java \
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/RuntimeDiscoveryExecutor.java
 index 5265977..fd423a7 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/RuntimeDiscoveryExecutor.java
                
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/RuntimeDiscoveryExecutor.java
 @@ -161,7 +161,7 @@ public class RuntimeDiscoveryExecutor implements Runnable, \
Callable<InventoryRep  
         log.debug("Discovering child Resources for " + parent + "...");
 
-        ResourceContainer parentContainer = \
this.inventoryManager.getResourceContainer(parent); +        ResourceContainer \
parentContainer = this.inventoryManager.getResourceContainer(parent.getId());  if \
(parentContainer == null) {  if (log.isDebugEnabled()) {
                 log.debug("Cannot perform service scan on parent [" + parent + "] \
without a container");


_______________________________________________
rhq-commits mailing list
rhq-commits@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/rhq-commits


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic