[ https://issues.apache.org/jira/browse/LUCENE-1519?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12663652#action_12663652 ]
Deepak commented on LUCENE-1519: -------------------------------- Hi Otis It is a lucene bug. Is there any other mail list for reporting lucene java bug. then please send me the link Regards Deepak > Change Primitive Data Types from int to long in class SegmentMerger.java > ------------------------------------------------------------------------ > > Key: LUCENE-1519 > URL: https://issues.apache.org/jira/browse/LUCENE-1519 > Project: Lucene - Java > Issue Type: Bug > Affects Versions: 2.4 > Environment: lucene 2.4.0, jdk1.6.0_03/07/11 > Reporter: Deepak > Original Estimate: 4h > Remaining Estimate: 4h > > Hi > We are getting an exception while optimize. We are getting this exception > "mergeFields produced an invalid result: docCount is 385282378 but fdx file > size is 3082259028; now aborting this merge to prevent index corruption" > > I have checked the code for class SegmentMerger.java and found this check > *********************************************************************************************************************************************************************** > if (4+docCount*8 != fdxFileLength) > // This is most likely a bug in Sun JRE 1.6.0_04/_05; > // we detect that the bug has struck, here, and > // throw an exception to prevent the corruption from > // entering the index. See LUCENE-1282 for > // details. > throw new RuntimeException("mergeFields produced an invalid result: > docCount is " + docCount + " but fdx file size is " + fdxFileLength + "; now > aborting this merge to prevent index corruption"); > } > *********************************************************************************************************************************************************************** > In our case docCount is 385282378 and fdxFileLength size is 3082259028, even > though 4+385282378*8 is equal to 3082259028, the above code will not work > because number 3082259028 is out of int range. So type of variable docCount > needs to be changed to long > I have written a small test for this > ************************************************************************************************************************************************************************ > public class SegmentMergerTest { > public static void main(String[] args) { > int docCount = 385282378; > long fdxFileLength = 3082259028L; > if(4+docCount*8 != fdxFileLength) > System.out.println("No Match" + (4+docCount*8)); > else > System.out.println("Match" + (4+docCount*8)); > } > } > ************************************************************************************************************************************************************************ > Above test will print No Match but if you change the data type of docCount to > long, it will print Match > Can you please advise us if this issue will be fixed in next release? > Regards > Deepak > -- 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: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org