RFR [8014066] Mistake in documentation of ArrayList#removeRange (original) (raw)

Ivan Gerasimov ivan.gerasimov at oracle.com
Wed Mar 19 08:19:43 UTC 2014


Thank you Ulf!

On 19.03.2014 2:12, Ulf Zibis wrote:

Am 18.03.2014 19:28, schrieb Ivan Gerasimov:

Assuming this last iteration is OK, should the next step be a CCC request? Do you mean? : /* * ... + * It is assumed that fromIndex <= toIndex, otherwise the behaviour of this method is undefined. * ... - * toIndex < fromIndex}) * ... */ protected void removeRange(int fromIndex, int toIndex) { ...

The (fromIndex > toIndex) condition is checked now, so the behavior of the method is defined - it throws an exception.

Please remove and replace inline by size - toIndex: 621 int numMoved = size - toIndex;

It is done this way throughout the class. I don't think it has to be changed in this particular place.

Improving modCound handling can be done with a different RFE I guess, as it doesn't connected to the rest of the fix.

Sincerely yours, Ivan

About modCount: Wouldn't it be more correct to code? : 616 if (fromIndex > toIndex) { 617 throw new IndexOutOfBoundsException( 618 outOfBoundsMsg(fromIndex, toIndex)); 619 } 620 try { 621 modCount++; 622 System.arraycopy(elementData, toIndex, elementData, fromIndex, 623 size - toIndex); 624 } catch (IndexOutOfBoundsException ioobe) { 625 modCount--; 626 throw ioobe; 627 } Of even better : 000 private int[] modCount = { 0 }; ... 616 if (fromIndex > toIndex) { 617 throw new IndexOutOfBoundsException( 618 outOfBoundsMsg(fromIndex, toIndex)); 619 } 620 System.arraycopy(elementData, toIndex, elementData, fromIndex, 621 size - toIndex, modCount); Or : 000 public class ArrayList ... implements ModCounter { 001 private int modCount = 0; 001 void incModCount() { 001 modCount++; 004 } ... 616 if (fromIndex > toIndex) { 617 throw new IndexOutOfBoundsException( 618 outOfBoundsMsg(fromIndex, toIndex)); 619 } 620 System.arraycopy(elementData, toIndex, elementData, fromIndex, 621 size - toIndex, this); -Ulf



More information about the core-libs-dev mailing list