[
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)