Случайные исключения BadLocationException с RSyntaxTextArea и автозаполнением

Я использую RSyntaxTextArea а также его autocompleteсестринская библиотека и я хочу подавить или исправить случайное BadLocationException исключения я получаю.

Я обновляю свое автозаполнение внутри DocumentListener из RSyntaxTextArea следующим образом:

Document document = textArea.getDocument();
document.addDocumentListener(new DocumentListener()
{
    @Override
    public void insertUpdate(DocumentEvent documentEvent)
    {

    }

    @Override
    public void removeUpdate(DocumentEvent documentEvent)
    {

    }

    @Override
    public void changedUpdate(DocumentEvent documentEvent)
    {
        updateAutoCompletion(textArea, textProvider, producer);
    }
});

Однако иногда я получаю следующее исключение:

javax.swing.text.BadLocationException: Invalid location
at javax.swing.text.GapContent.getChars(GapContent.java:189)
at javax.swing.text.AbstractDocument.getText(AbstractDocument.java:810)
at org.fife.ui.autocomplete.DefaultCompletionProvider.getAlreadyEnteredText(DefaultCompletionProvider.java:102)
at org.fife.ui.autocomplete.AbstractCompletionProvider.getCompletionsImpl(AbstractCompletionProvider.java:168)
at org.fife.ui.autocomplete.CompletionProviderBase.getCompletions(CompletionProviderBase.java:104)
...

Я попытался обернуть вызов метода в try-and-catch блок, но Java говорит мне, что исключение никогда не выдается, но это на самом деле. Проверка экземпляра исключения также вызывает предупреждение о том, что if-block избыточно:

try
{
    updateAutoCompletion(textArea, textProvider, producer);
} catch (Exception exception)
{
    // Warning: Condition "exception instanceof BadLocationException" is always false
    if (!(exception instanceof BadLocationException))
    {
        exception.printStackTrace();
    }
}

Я не нашел способа подавить исключение, и я не уверен, почему оно иногда выбрасывается. Это должно быть проблема синхронизации при переключении содержимого текстовой области, но почему исключение не может быть поймано "обычным способом"?

0 ответов

Другие вопросы по тегам