提交 b96f69c8 编写于 作者: L LonwoLonwo

#11236 refresh lazy cache after setting property value

上级 cb384649
......@@ -37,10 +37,12 @@ import org.jkiss.dbeaver.model.navigator.meta.DBXTreeFolder;
import org.jkiss.dbeaver.model.navigator.meta.DBXTreeNode;
import org.jkiss.dbeaver.model.navigator.meta.DBXTreeNodeHandler;
import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.model.struct.DBSWrapper;
import org.jkiss.dbeaver.runtime.DBWorkbench;
import org.jkiss.dbeaver.runtime.properties.ObjectPropertyDescriptor;
import org.jkiss.dbeaver.runtime.properties.PropertySourceAbstract;
import org.jkiss.dbeaver.runtime.properties.PropertySourceEditable;
import org.jkiss.dbeaver.ui.UIUtils;
......@@ -398,6 +400,11 @@ public abstract class NodeListControl extends ObjectListControl<DBNNode> impleme
return getAllProperties().toArray(new DBPPropertyDescriptor[0]);
}
@Override
public void setPropertyValue(@Nullable DBRProgressMonitor monitor, Object editableValue, ObjectPropertyDescriptor prop, Object newValue) throws IllegalArgumentException {
super.setPropertyValue(monitor, editableValue, prop, newValue);
resetLazyPropertyCache(getCurrentListObject(), prop.getId());
}
}
......
......@@ -578,6 +578,15 @@ public abstract class ObjectListControl<OBJECT_TYPE> extends ProgressPageControl
}
}
protected void resetLazyPropertyCache(OBJECT_TYPE object, String property) {
synchronized (lazyCache) {
Map<String, Object> cache = lazyCache.get(object);
if (cache != null) {
cache.remove(property);
}
}
}
private void clearLazyCache() {
synchronized (lazyCache) {
lazyCache.clear();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册