[ https://issues.apache.org/jira/browse/SOLR-875?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12650469#action_12650469 ]
Michael Busch commented on SOLR-875: ------------------------------------ Note that Yonik recently (August '08) commit this to Lucene's OpenBitSet: {code} URL: http://svn.apache.org/viewvc?rev=690302&view=rev Log: fix OpenBitSet.hashCode rotate Modified: lucene/java/trunk/src/java/org/apache/lucene/util/OpenBitSet.java Modified: lucene/java/trunk/src/java/org/apache/lucene/util/OpenBitSet.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/util/OpenBitSet.java?rev=690302&r1=690301&r2=690302&view=diff ============================================================================== --- lucene/java/trunk/src/java/org/apache/lucene/util/OpenBitSet.java (original) +++ lucene/java/trunk/src/java/org/apache/lucene/util/OpenBitSet.java Fri Aug 29 08:33:44 2008 @@ -763,7 +763,7 @@ long h = 0x98761234; // something non-zero for length==0 for (int i = bits.length; --i>=0;) { h ^= bits[i]; - h = (h << 1) | (h >>> 31); // rotate left + h = (h << 1) | (h >>> 63); // rotate left } return (int)((h>>32) ^ h); // fold leftmost bits into right } {code} This fix wasn't committed to Solr yet. > Consolidate Solr's and Lucene's OpenBitSet classes > -------------------------------------------------- > > Key: SOLR-875 > URL: https://issues.apache.org/jira/browse/SOLR-875 > Project: Solr > Issue Type: Task > Reporter: Michael Busch > Priority: Minor > Attachments: solr-875.patch > > > Currently there are two versions of OpenBitSet and BitUtil in Solr and Lucene. > We should only have one version of these classes in Lucene, that Solr should > use. > Tasks here: > - Merge different versions into Lucene > - Make Solr classes use/extend the classes in Lucene (we need to keep the > Solr ones for backwards-compatibility) > - Deprecate the classes in Solr > - Change all references in Solr to use the classes in Lucene > One difficulty here is Solr's BitSetIterator vs. Lucene's OpenBitSetIterator. > Both have a next() method, however one returns an int (BitSetIterator), the > other one returns a boolean and offers a doc() method to get the doc id. So I > can't make BitSetIterator extend OpenBitSetIterator. There are not many > places in Solr's core that use BitSetIterator, so we could simply change e.g. > search/BitDocSet.java to use OpenBitSetIterator. This would however require > to change the call to next() into two calls to next() and doc(). I wonder if > this would be a noticeable performance hit? > We could of course also leave both iterators and only merge OpenBitSet and > BitUtil, but I'd prefer to only have one iterator, because they basically do > exactly the same. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.