[ 
https://issues.apache.org/jira/browse/DERBY-2191?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12463039
 ] 

Dyre Tjeldvoll commented on DERBY-2191:
---------------------------------------

Here is a brief list of bugs/issues that was found while writing 
FormatableBitSetTest.java:

1) The two-arg constructor fails if given a size arg that is smaller than the 
size of the byte array arg

2) When the copy constructor is used to copy an empty bitset with a null byte 
array, the resulting copy has a non-null byte array

3) It is legal to call grow(int) with an arg that is smaller that the bitset's 
current size, but the size of the bitset remains the same.

4) It is legal to call grow(int) with a negative argument, but the size of the 
bitset remains the same.

5) Shrinking an empty bitset to size 0 causes an AssertFailure

6) It is legal to call shrink(int) with an arg that is larger that the bitset's 
current size, but the size of the bitset remains the same.

7) Shrinking an ordinary  bitset to size 0 causes an AssertFailure

8) The return value of compare doesn't match what is stated in the javadoc for 
the method

9) The concatenate method does not work. Concatenation of two 18 bit bitsets 
yields a bitset that is still 18 bits.

10) The method isSet(-1) gives an NPE for an empty bitset, but returns false 
for a non-empty set.

11) The method set(-1) gives an NPE for an empty bitset, but does nothing for a 
non-empty set.

12) The method clear(-1) gives an NPE for an empty bitset, but does nothing for 
a non-empty set.

13) The method anySetBit() gives an NPE for an empty bitset, -1 would be more 
reasonable

14) The method anySetBit(-1) is equivalent to anySetBit(), but smaller args 
(-2, -3) do not throw an exception, but also do not necessarily return the same 
value as -1

15) The method or(FormatableBitSet) accepts null as an argument and treats it 
as if it represents an empty bitset. and(FormatableBitSet) will throw an 
AssertFailure, but xor(FormatableBitSet) throws an NPE

16) The methods or(FormatableBitSet) and  and(FormatableBitSet) can be used 
with args that are smaller or larger. xor() requires the arg to have the same 
size as "this"

17) readExternalFromArray does not appear to have a write counterpart. Using it 
on something that is wtitten with writeExternal does not seem to work


> Cleanup of FormatableBitSet
> ---------------------------
>
>                 Key: DERBY-2191
>                 URL: https://issues.apache.org/jira/browse/DERBY-2191
>             Project: Derby
>          Issue Type: Improvement
>          Components: Miscellaneous
>    Affects Versions: 10.2.1.6
>            Reporter: Dyre Tjeldvoll
>         Assigned To: Dyre Tjeldvoll
>            Priority: Trivial
>             Fix For: 10.3.0.0
>
>         Attachments: deadcode.v1.diff, deadcode.v2.diff, 
> FormatableBitSetTest.java
>
>
> The implementation of FormatableBitSet could be streamlined. Dead code can be 
> removed and the implementation of some methods can be simplified.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to