Index: src/main/java/common/javax/swing/text/AbstractDocument.java =================================================================== --- src/main/java/common/javax/swing/text/AbstractDocument.java (revision 483438) +++ src/main/java/common/javax/swing/text/AbstractDocument.java (working copy) @@ -444,9 +444,14 @@ public void replace(final int index, final int length, final Element[] newElements) { - Element[] newArray = new Element[elements.length - - length + newElements.length]; + if (index < 0 || length < 0) { + throw new ArrayIndexOutOfBoundsException(); + } + + Element[] newArray = new Element[ + elements.length - length + newElements.length]; + System.arraycopy(elements, 0, newArray, 0, index); System.arraycopy(newElements, 0, newArray, index, newElements.length);