[
https://issues.apache.org/jira/browse/LUCENE-2799?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12966865#action_12966865
]
Earwin Burrfoot commented on LUCENE-2799:
-----------------------------------------
I think it's always best to copy-paste stuff to your project and adapt it, in
such cases.
It's simple, it doesn't break when you upgrade, it works with clumsily-built
code.
Designing actual classes (not API interfaces, but fullblown working code) for
inheritance is _very_ complex. I've seen few people trying this for real, and
even fewer succeeding.
> MMapDirectory not designed for inheritance
> ------------------------------------------
>
> Key: LUCENE-2799
> URL: https://issues.apache.org/jira/browse/LUCENE-2799
> Project: Lucene - Java
> Issue Type: Improvement
> Components: Store
> Affects Versions: 3.0.3
> Reporter: René Treffer
>
> How to reproduce
> Try to inherit from MMapDirectory to change the openInput logic (open files
> from different directories).
> Expected result:
> Inherit from MMapDirectory, overwrite the one method, done.
> Actual result:
> It's impossible to overwrite the method as the inner classes would be
> missing. It's impossible to fork the inner classes as they depend on a final
> method with default visibility (cleanMapping).
> It turns out to be the easiest option to completely for the code and replace
> just the method in question.
> Possible fix:
> Change the visibility of most members and subtypes to be at least protected
> and avoid the default visibility.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]