[ 
https://issues.apache.org/jira/browse/LUCENE-3606?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Uwe Schindler updated LUCENE-3606:
----------------------------------

    Attachment: LUCENE-3606-deprecations3x.patch

Here a patch that deprecates the removed methods in 3x:
- delete*, undeleteAll
- IR.open(..., readonly,...)
- adds missing non-readOnly IR.open()
- for now I also deprecated setNorm(). If I would not deprecate it, it would be 
inconsistent, as setNorm only works with readOnly=false - but you can never 
call that wthout a deprecation warning. I think we should leave setNorm 
deprecated.

I did not fix the tests to not use deprecated readOnly=true IR.open()! :(

I found a serious API glitch in 3.x with openIfChanged:
- the base class defines doOpenIfChanged(boolean readOnly), but MultiReader and 
ParallelReader "override" this method with a signature doOpenIfChanged(doClone) 
and missing @Override. This makes consumers calling IR.openIfChanged(boolean 
readOnly) do the wrong thing. Instead they should get UOE like for the other 
unimplemented doOpenIfChanged methods in MR and PR.
                
> Make IndexReader really read-only in Lucene 4.0
> -----------------------------------------------
>
>                 Key: LUCENE-3606
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3606
>             Project: Lucene - Java
>          Issue Type: Task
>          Components: core/index
>    Affects Versions: 4.0
>            Reporter: Uwe Schindler
>            Assignee: Uwe Schindler
>             Fix For: 4.0
>
>         Attachments: LUCENE-3606-deprecations3x.patch, 
> LUCENE-3606-hideMethodAgain.patch, LUCENE-3606.patch
>
>
> As we change API completely in Lucene 4.0 we are also free to remove 
> read-write access and commits from IndexReader. This code is so hairy and 
> buggy (as investigated by Robert and Mike today) when you work on 
> SegmentReader level but forget to flush in the DirectoryReader, so its better 
> to really make IndexReaders readonly.
> Currently with IndexReader you can do things like:
> - delete/undelete Documents -> Can be done by with IndexWriter, too (using 
> deleteByQuery)
> - change norms -> this is a bad idea in general, but when we remove norms at 
> all and replace by DocValues this is obsolete already. Changing DocValues 
> should also be done using IndexWriter in trunk (once it is ready)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to