You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "Matthew Dinep (JIRA)" <ji...@apache.org> on 2017/11/06 22:35:00 UTC
[jira] [Updated] (ACCUMULO-1972) Range constructors call
overridable method
[ https://issues.apache.org/jira/browse/ACCUMULO-1972?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthew Dinep updated ACCUMULO-1972:
------------------------------------
Attachment: accumulo-1972.patch
Fix added. beforeStartKey and afterEndKey methods both made final and tested locally as working.
> Range constructors call overridable method
> ------------------------------------------
>
> Key: ACCUMULO-1972
> URL: https://issues.apache.org/jira/browse/ACCUMULO-1972
> Project: Accumulo
> Issue Type: Bug
> Affects Versions: 1.4.4, 1.5.0
> Reporter: Bill Havanki
> Priority: Minor
> Labels: newbie
> Attachments: accumulo-1972.patch
>
>
> Several {{Range}} constructors call {{Range.beforeStartKey()}}, which is not final. This is dangerous:
> bq. The superclass constructor runs before the subclass constructor, so the overriding method in the subclass will get invoked before the subclass constructor has run. If the overriding method depends on any initialization performed by the subclass constructor, the method will not behave as expected. ??Item 17, Effective Java Vol. 2, Bloch??
> If {{beforeStartKey()}} cannot be made final, the code should be refactored to make the constructors safe.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)