Странное перенос текста со стилизованным текстом в JTextPane с Java 7

У меня есть два разных редактора, использующих JTextPane со странными ошибками в Java 7, которых не было в предыдущих версиях JVM. Это происходит с длинными строками, содержащими стилизованный текст или компоненты.

Вот пример, демонстрирующий эту ошибку. В этом примере стиль по умолчанию применяется ко всему тексту каждый раз, когда вставляется символ. Я проверил это с JDK 1.7.0_04.

import java.awt.BorderLayout;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;

public class BugWrapJava7 extends JFrame {

    JTextPane jtp;
    StyledDocument doc;

    public BugWrapJava7() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());
        jtp = new JTextPane();
        add(jtp, BorderLayout.CENTER);
        jtp.setText("\ntype some text in the above empty line and check the wrapping behavior");
        doc = jtp.getStyledDocument();
        doc.addDocumentListener(new DocumentListener() {
            public void insertUpdate(DocumentEvent e) {
                insert();
            }
            public void removeUpdate(DocumentEvent e) {
            }
            public void changedUpdate(DocumentEvent e) {
            }
        });
        setSize(200, 200);
        setVisible(true);
    }
    public void insert() {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                Style defaultStyle = jtp.getStyle(StyleContext.DEFAULT_STYLE);
                doc.setCharacterAttributes(0, doc.getLength(), defaultStyle, false);
            }
        });
    }
    public static void main(String[] args) {
        new BugWrapJava7();
    }
}

Мой вопрос: есть ли что-то не так в моем коде, или это действительно новая ошибка, введенная в Java 7? И если это новая ошибка JVM, есть ли обходной путь?

Это может быть связано свопрос 8666727, но проблема здесь заключается в неправильном переносе, а не в появлении полосы прокрутки.

Ответы на вопрос(2)

Ваш ответ на вопрос