[ 
https://issues.apache.org/jira/browse/LUCENE-3281?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13060711#comment-13060711
 ] 

Yonik Seeley commented on LUCENE-3281:
--------------------------------------

See LUCENE-3280, it looks like Lucene will be switching to FastBitSet for most 
things?
OpenBitSet is meant to be expert level and not impose any additional overhead 
(like keeping track of the largest bit that has been set).
But yeah, the new asserts do make things a little odd w.r.t. capacity()... how 
about the following:
{code}
   /** Returns the current capacity in bits (1 greater than the index of the 
last bit) */
-  public long capacity() { return bits.length << 6; }
+  public long capacity() {
+    long cap = bits.length << 6;
+    assert( (cap = numBits) >= 0);
+    return cap;
+  }
{code}



> OpenBitSet should report the configured capacity/size
> -----------------------------------------------------
>
>                 Key: LUCENE-3281
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3281
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: core/other
>    Affects Versions: 3.0, 3.0.1, 3.0.2, 3.0.3, 3.1, 3.2
>            Reporter: Robert Ragno
>            Priority: Minor
>   Original Estimate: 2m
>  Remaining Estimate: 2m
>
> OpenBitSet rounds up the capacity() to the next multiple of 64 from what was 
> specified. However, this is particularly damaging with the new asserts, which 
> trigger when anything above the specified capacity is used as an index. The 
> simple fix is to return numBits for capacity().

--
This message is automatically generated by JIRA.
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