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

Michael McCandless updated LUCENE-1094:
---------------------------------------

    Attachment: LUCENE-1094.patch

Attached patch.  I plan to commit in a day or two.

I added a test case showing the issue & confirming the fix.

I also made a small improvement to the bulk-copy stored fields during
merge optimization: the segment to be merged does not have to have
identical fieldName -> number mappings as the merged segment.
Instead, it just has to be a subset, ie, the fieldName -> number
mapping for all fieldNames in the segment to be merged must match.
It's OK when the merged segments has additional fields beyond this.


> Exception in DocumentsWriter.addDocument can corrupt stored fields file (fdt)
> -----------------------------------------------------------------------------
>
>                 Key: LUCENE-1094
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1094
>             Project: Lucene - Java
>          Issue Type: Bug
>    Affects Versions: 2.3
>            Reporter: Michael McCandless
>            Assignee: Michael McCandless
>             Fix For: 2.3
>
>         Attachments: LUCENE-1094.patch
>
>
> DocumentsWriter writes the number of stored fields, up front, into the
> fdtLocal buffer.  Then, as each field is processed, it writes each
> stored field into this buffer.  When the document is done, in a
> finally clause, it flushes the buffer to the real fdt file in the
> Directory.
> The problem is, if an exception is hit, that number of stored fields
> can be too high, which corrupts the fdt file.
> The solution is to not write it up front, and instead write only the
> number of fields we actually saw.

-- 
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]

Reply via email to