提交 39f8a01d 编写于 作者: S Serge Rider

Cache synchronization (giving up)

上级 700ba023
......@@ -235,7 +235,7 @@ public abstract class JDBCCompositeCache<
}
}
protected void loadObjects(DBRProgressMonitor monitor, OWNER owner, PARENT forParent)
protected synchronized void loadObjects(DBRProgressMonitor monitor, OWNER owner, PARENT forParent)
throws DBException
{
synchronized (objectCache) {
......
......@@ -82,7 +82,7 @@ public abstract class JDBCObjectCache<OWNER extends DBSObject, OBJECT extends DB
return getCachedObject(name);
}
protected void loadObjects(DBRProgressMonitor monitor, OWNER owner)
protected synchronized void loadObjects(DBRProgressMonitor monitor, OWNER owner)
throws DBException
{
if (isFullyCached() || monitor.isCanceled()) {
......@@ -140,11 +140,9 @@ public abstract class JDBCObjectCache<OWNER extends DBSObject, OBJECT extends DB
Collections.sort(tmpObjectList, comparator);
}
synchronized (this) {
detectCaseSensitivity(owner);
mergeCache(tmpObjectList);
this.invalidateObjects(monitor, owner, new CacheIterator());
}
detectCaseSensitivity(owner);
mergeCache(tmpObjectList);
this.invalidateObjects(monitor, owner, new CacheIterator());
}
// Can be implemented to provide custom cache error handler
......
......@@ -73,14 +73,16 @@ public abstract class JDBCStructCache<OWNER extends DBSObject, OBJECT extends DB
* @throws org.jkiss.dbeaver.DBException
* on error
*/
public void loadChildren(DBRProgressMonitor monitor, OWNER owner, @Nullable final OBJECT forObject) throws DBException
public synchronized void loadChildren(DBRProgressMonitor monitor, OWNER owner, @Nullable final OBJECT forObject) throws DBException
{
if ((forObject == null && this.childrenCached)
|| (forObject != null && (!forObject.isPersisted() || isChildrenCached(forObject))) || monitor.isCanceled()) {
return;
}
if (forObject == null) {
clearChildrenCache(null);
// If we have some child objects read before that - do not clear them.
// We have to reuse them because there could be some references in cached model
//clearChildrenCache(null);
super.loadObjects(monitor, owner);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册