Я получил это сообщение об ошибке также с моим кодом.
Наблюдаемые данные (WritableList, WritableValue ...) наследуются от ChangeManager
, что обеспечивает ChangeManager#getRealm
, а область имеет Realm#exec
. В пределах runnable, предоставленного exec
, операция выполняется в правильном потоке.
Эта строка вызвала ошибку ( Геттер вызвал внешнюю область наблюдаемой ):
WritableValue value = getEditor().getWritableValue();
System.out.println(((RcpEditorModel) value.getValue()).getNumber());
И это предотвратило исключение:
WritableValue value = getEditor().getWritableValue();
value.getRealm().exec(() -> System.out.println(((RcpEditorModel) value.getValue()).getNumber()));
То же самое будет работать с WritableList
, поскольку оно также наследуется от ChangeManager
.