[ https://issues.apache.org/jira/browse/GEODE-2676?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16259406#comment-16259406 ]
ASF subversion and git services commented on GEODE-2676: -------------------------------------------------------- Commit 3a3935f8d11a3c6b75815781f6cd551584613425 in geode's branch refs/heads/develop from [~jinmeiliao] [ https://gitbox.apache.org/repos/asf?p=geode.git;h=3a3935f ] GEODE-2676: fix NPE with ShowMetricsCommand. > RegionMBean statistics wrong on partitioned regions > --------------------------------------------------- > > Key: GEODE-2676 > URL: https://issues.apache.org/jira/browse/GEODE-2676 > Project: Geode > Issue Type: Bug > Components: management > Reporter: Fred Krone > Priority: Minor > Labels: jmx > > RegionMBean attributes hitCount, hitRatio, missCount, lastAccessedTime, and > lastModifiedTime will always be 0 for an mbean that represents an partitioned > region. > The gettors for these methods may call getStatistics() which on a PR always > throws UnsupportedOperationException. So this exception might even get > exposed to customers. > The initialization of RegionMBeanBridge calls getStatisticsEnabled() which > returns true on a PartitionedRegion. This does have meaning on a PR but it > does not mean that getStatistics() is a supported operation. On a PR setting > statistics-enabled causes each region-entry to also keep track of its last > access time. > It is true that if getStatisticsEnabled() is false then you should not call > getStatistics. But the opposite is not true. Since we currently have regions > that do not support getStatistics(), the code in RegionMBeanBridge should > catch UnsupportedOperationException and handle it. I would suggest that the > constructor be changed that initializes the "isStatisticsEnabled" field. > Instead of only calling getStatisticsEnabled() it should also call > getStatistics(). Something like this: > {noformat} > { > boolean useGetStatistics = regAttrs.getStatisticsEnabled(); > if (useGetStatistics) { > try { > region.getStatistics(); > } catch (UnsupportedOperationException ex) { > useGetStatistics = false; > } > } > this.isStatisticsEnabled = useGetStatistics; > } > {noformat} > That way in a future release if PRs are changed to support getStatistics this > code will start calling it without having a direct dependency on the > implementation of PartitionedRegion. > https://issues.apache.org/jira/browse/GEODE-2685 is a request to support > getStatistics on PRs. -- This message was sent by Atlassian JIRA (v6.4.14#64029)