The PluginMetadataManager keeps a list of plugin parsers and plugin descriptors around even after all the parsing has been done. On my local agent, they account for ~3MB (of a 25MB heap) of objects that are probably no longer needed. If they are needed at plugin update time, we should be able to just re-parse the needed ones for this purpose.
It looks like some parts are still used later: org.rhq.core.pc.plugin.PluginComponentFactory.instantiateClass(PluginComponentFactory.java:303) at org.rhq.core.pc.plugin.PluginComponentFactory.getDiscoveryComponent(PluginComponentFactory.java:98) at org.rhq.core.pc.inventory.InventoryManager.discoverPlatform(InventoryManager.java:2293)
Created attachment 833476 [details] Possible patch
We need to be careful and account for all the places with the descriptor might be needed in the future. As comment #1 indicates, getting classes from the descriptor is usually needed (resource component and discovery component). The attached patch will work to clean the memory out, but I worry what happens when we need the descriptor later during runtime. Parsing the XML descriptor can be expensive, especially if we do it all them time to get those classnames.
Mazz, Comment 1 was long before I provided the attached patch. Unfortunately BZ does not allow to remove a comment or mark as obsolete. The class names are stored in (two?) map(s), that are not thrown away by the patch.
master bba7267
Bulk closing of 4.10 issues. If an issue is not solved for you, please open a new BZ (or clone the existing one) with a version designator of 4.10.