You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Patrick Rhomberg (JIRA)" <ji...@apache.org> on 2018/09/10 21:55:00 UTC
[jira] [Created] (GEODE-5719) Code Cleanup: Static members are
accessed by instance reference
Patrick Rhomberg created GEODE-5719:
---------------------------------------
Summary: Code Cleanup: Static members are accessed by instance reference
Key: GEODE-5719
URL: https://issues.apache.org/jira/browse/GEODE-5719
Project: Geode
Issue Type: Bug
Reporter: Patrick Rhomberg
Most of these are innocuous and represent only a deviation from best practices.
Some invoke {{new SomeClass().staticMethod()}}, representing a trivial instantiation cost that is unlikely to be significant.
I am most concerned by the use in {{ThreadIdentifierJUnitTest}}, which includes the static-method {{matches}} in what appear to be misguided assertions. For instance
{noformat}
{
long real_tid_with_wan = ThreadIdentifier.getRealThreadIDIncludingWan(wan1);
assertEquals(42, ThreadIdentifier.getRealThreadID(real_tid_with_wan));
assertTrue(ThreadIdentifier.isParallelWANThreadID(real_tid_with_wan));
assertTrue(WanType.PRIMARY.matches(real_tid_with_wan));
}
// ...
{
long real_tid_with_wan = ThreadIdentifier.getRealThreadIDIncludingWan(wan3);
assertEquals(42, ThreadIdentifier.getRealThreadID(real_tid_with_wan));
assertTrue(ThreadIdentifier.isParallelWANThreadID(real_tid_with_wan));
assertTrue(WanType.PARALLEL.matches(real_tid_with_wan));
}{noformat}
Because {{PRIMARY}} and {{PARALLEL}} are instantiated fields of {{WanType}}, and because {{matches}} is a static method, these assertions are equivalent, while at the same time the developer who wrote these likely believed these assertions were distinct.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)