[ 
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.

Reply via email to