In merlin-beta2, a new method replace() was added to AbstractDocument so that replacing of text could be considered an atomic operation. This method is designed to get its own lock on the document and not go through remove() and insertString(). JTextComponent.replaceSelection() was changed to call this method when possible.
Although this is a very desirable change, it can possibly cause backwards compatibility problems to users extending AbstractDocument that expect all document changes to come through the two old methods.