Mercurial > hg > release > icedtea7-forest-2.6 > jdk
changeset 12:d8b6af0f01f6
6651382: The Java JVM SNMP provider reports incorrect stats when asked for multiple OIDs
Summary: The JvmMemPoolEntryImpl must use the row index when caching data.
Reviewed-by: jfdenise
author | dfuchs |
---|---|
date | Mon, 03 Mar 2008 12:29:42 +0100 |
parents | 41d9c673dd9d |
children | 613f2c906b9d |
files | src/share/classes/sun/management/snmp/jvminstr/JvmMemPoolEntryImpl.java |
diffstat | 1 files changed, 17 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/sun/management/snmp/jvminstr/JvmMemPoolEntryImpl.java Mon Mar 03 10:32:38 2008 +0100 +++ b/src/share/classes/sun/management/snmp/jvminstr/JvmMemPoolEntryImpl.java Mon Mar 03 12:29:42 2008 +0100 @@ -26,7 +26,6 @@ // java imports // -import java.io.Serializable; import java.util.Map; // jmx imports @@ -36,9 +35,7 @@ // jdmk imports // -import com.sun.jmx.snmp.agent.SnmpMib; -import java.lang.management.ManagementFactory; import java.lang.management.MemoryUsage; import java.lang.management.MemoryType; import java.lang.management.MemoryPoolMXBean; @@ -73,7 +70,9 @@ "jvmMemPoolEntry.getCollectionUsage"; final static MemoryUsage ZEROS = new MemoryUsage(0,0,0,0); - + final String entryMemoryTag; + final String entryPeakMemoryTag; + final String entryCollectMemoryTag; MemoryUsage getMemoryUsage() { try { @@ -81,17 +80,17 @@ if (m != null) { final MemoryUsage cached = (MemoryUsage) - m.get(memoryTag); + m.get(entryMemoryTag); if (cached != null) { - log.debug("getMemoryUsage", - "jvmMemPoolEntry.getUsage found in cache."); + log.debug("getMemoryUsage",entryMemoryTag+ + " found in cache."); return cached; } MemoryUsage u = pool.getUsage(); if (u == null) u = ZEROS; - m.put(memoryTag,u); + m.put(entryMemoryTag,u); return u; } // Should never come here. @@ -113,18 +112,18 @@ if (m != null) { final MemoryUsage cached = (MemoryUsage) - m.get(peakMemoryTag); + m.get(entryPeakMemoryTag); if (cached != null) { if (log.isDebugOn()) log.debug("getPeakMemoryUsage", - peakMemoryTag + " found in cache."); + entryPeakMemoryTag + " found in cache."); return cached; } MemoryUsage u = pool.getPeakUsage(); if (u == null) u = ZEROS; - m.put(peakMemoryTag,u); + m.put(entryPeakMemoryTag,u); return u; } // Should never come here. @@ -146,18 +145,18 @@ if (m != null) { final MemoryUsage cached = (MemoryUsage) - m.get(collectMemoryTag); + m.get(entryCollectMemoryTag); if (cached != null) { if (log.isDebugOn()) log.debug("getCollectMemoryUsage", - collectMemoryTag + " found in cache."); + entryCollectMemoryTag + " found in cache."); return cached; } MemoryUsage u = pool.getCollectionUsage(); if (u == null) u = ZEROS; - m.put(collectMemoryTag,u); + m.put(entryCollectMemoryTag,u); return u; } // Should never come here. @@ -179,9 +178,12 @@ /** * Constructor for the "JvmMemPoolEntry" group. */ - public JvmMemPoolEntryImpl(MemoryPoolMXBean mp, int index) { + public JvmMemPoolEntryImpl(MemoryPoolMXBean mp, final int index) { this.pool=mp; this.jvmMemPoolIndex = index; + this.entryMemoryTag = memoryTag + "." + index; + this.entryPeakMemoryTag = peakMemoryTag + "." + index; + this.entryCollectMemoryTag = collectMemoryTag + "." + index; } /**