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

Claude Warren closed COLLECTIONS-816.
-------------------------------------
    Fix Version/s: 4.5
       Resolution: Fixed

Fixed in earlier change to merge

> SimpleBloomFilter: There is no coverage of this branch. It is not possible. 
> ----------------------------------------------------------------------------
>
>                 Key: COLLECTIONS-816
>                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-816
>             Project: Commons Collections
>          Issue Type: Improvement
>          Components: Collection
>    Affects Versions: 4.5
>            Reporter: Claude Warren
>            Assignee: Claude Warren
>            Priority: Minor
>              Labels: bloom-filter
>             Fix For: 4.5
>
>
> Copied from Simplify Bloom Filters pull request.
> [https://github.com/apache/commons-collections/pull/258#discussion_r815505285]
>  
> [https://github.com/Claudenw/commons-collections/blob/9f2945cc98747893456b73f42ab53f46a866ac37/src/main/java/org/apache/commons/collections4/bloomfilter/SimpleBloomFilter.java#L165-L168]
>  
>  
> Member
> h3. 
> !https://avatars.githubusercontent.com/u/886334?s=48&v=4|width=24,height=24! 
> *[aherbert|https://github.com/aherbert]* [on 27 
> Feb|https://github.com/apache/commons-collections/pull/258#discussion_r815505285]
> There is no coverage of this branch. It is not possible. If this were true 
> the bitMap[idx[0]] in the main forEach loop would have thrown an array index 
> out of bound exception. I think this can be removed. The final check to 
> determine if the final upper bitmap does not set incorrect bits is valid.
> Note: Even though the check is made that the upper bits have been set 
> correctly, if they have not the exception is raised and the filter now has 
> incorrect bits for the rest of its lifetime, i.e. no recovery is made and no 
> flag is present in the filter to indicate the bits are bad. So you could then 
> merge this into another filter and get the same exception, or record the bits 
> to file and have bad bits in the recording, etc.
> The same 'bug' is present in the SparseBloomFilter. It will raise an 
> exception after merge if the TreeSet first or last position are outside the 
> shape but not correct it.
> I think these filters should attempt to clear any invalid bits before 
> throwing exceptions. This makes them act as if they are a plain {{int[]}} of 
> size {{nbits}} containing 0 or 1s. It should not be possible to put an index 
> outside the range of the shape in the filter.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to