lucene-dev mailing list archives

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


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:
>             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
> 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:
For additional commands, e-mail:

View raw message