lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Earwin Burrfoot (JIRA)" <j...@apache.org>
Subject [jira] Commented: (LUCENE-2799) MMapDirectory not designed for inheritance
Date Sat, 04 Dec 2010 22:35:11 GMT

    [ 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: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message