diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/rm/DBNAbstractResourceManagerNode.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/rm/DBNAbstractResourceManagerNode.java index 5361a810d5..7792ca1aad 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/rm/DBNAbstractResourceManagerNode.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/rm/DBNAbstractResourceManagerNode.java @@ -1,9 +1,11 @@ package io.cloudbeaver.model.rm; import org.jkiss.code.NotNull; +import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.model.DBPObjectWithDetails; import org.jkiss.dbeaver.model.navigator.DBNNode; import org.jkiss.dbeaver.model.rm.RMResource; +import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor; import org.jkiss.utils.ArrayUtils; import java.util.Queue; @@ -33,7 +35,15 @@ public abstract class DBNAbstractResourceManagerNode extends DBNNode implements } public void addChildResourceNode(@NotNull Queue resourcePath) { - if (children == null || resourcePath.isEmpty()) { + if (children == null) { + // initialize children + try { + getChildren(new VoidProgressMonitor()); + } catch (DBException e) { + return; + } + } + if (resourcePath.isEmpty()) { return; } var expectedResource = resourcePath.poll(); @@ -43,9 +53,9 @@ public abstract class DBNAbstractResourceManagerNode extends DBNNode implements children = ArrayUtils.add(DBNResourceManagerResource.class, children, newResourceNode); return; } - - if (resourcePath.size() > 1) { + if (resourcePath.size() > 0) { node.addChildResourceNode(resourcePath); } + } } diff --git a/server/bundles/io.cloudbeaver.server/schema/service.core.graphqls b/server/bundles/io.cloudbeaver.server/schema/service.core.graphqls index ebb4d479cc..feede70095 100644 --- a/server/bundles/io.cloudbeaver.server/schema/service.core.graphqls +++ b/server/bundles/io.cloudbeaver.server/schema/service.core.graphqls @@ -389,7 +389,7 @@ type LogEntry { enum CBEventType { cb_config_changed, cb_datasource_updated, - cb_resource_updated + cb_rm_resource_updated } type CBEvent {