diff --git a/designer-base/src/main/java/com/fr/design/editlock/EditLockChangeChecker.java b/designer-base/src/main/java/com/fr/design/editlock/EditLockChangeChecker.java index 13ac921e3..951bea334 100644 --- a/designer-base/src/main/java/com/fr/design/editlock/EditLockChangeChecker.java +++ b/designer-base/src/main/java/com/fr/design/editlock/EditLockChangeChecker.java @@ -1,6 +1,7 @@ package com.fr.design.editlock; import com.fr.concurrent.NamedThreadFactory; +import com.fr.design.ui.util.UIUtil; import com.fr.log.FineLoggerFactory; import com.fr.workspace.WorkContext; import com.fr.workspace.server.lock.editlock.EditLockOperator; @@ -60,8 +61,13 @@ public abstract class EditLockChangeChecker { } private void fireChange() { - for (EditLockChangeListener listener : this.listeners) { - listener.updateLockedState(new EditLockChangeEvent(isLocked)); - } + UIUtil.invokeLaterIfNeeded(new Runnable() { + @Override + public void run() { + for (EditLockChangeListener listener : EditLockChangeChecker.this.listeners) { + listener.updateLockedState(new EditLockChangeEvent(isLocked)); + } + } + }); } }