diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/server/WebGlobalWorkspace.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/server/WebGlobalWorkspace.java index 3e975239a6..eccd9f1253 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/server/WebGlobalWorkspace.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/server/WebGlobalWorkspace.java @@ -19,6 +19,7 @@ package io.cloudbeaver.server; import io.cloudbeaver.WebProjectImpl; import io.cloudbeaver.model.app.WebApplication; import io.cloudbeaver.utils.WebAppUtils; +import org.eclipse.core.runtime.Platform; import org.jkiss.code.NotNull; import org.jkiss.code.Nullable; import org.jkiss.dbeaver.Log; @@ -28,6 +29,8 @@ import org.jkiss.dbeaver.model.impl.app.BaseProjectImpl; import org.jkiss.dbeaver.model.impl.app.BaseWorkspaceImpl; import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; import java.nio.file.Files; import java.nio.file.Path; import java.util.Collections; @@ -46,7 +49,20 @@ public class WebGlobalWorkspace extends BaseWorkspaceImpl { private WebGlobalProject globalProject; public WebGlobalWorkspace(DBPPlatform platform) { - super(platform, ((WebApplication) platform.getApplication()).getWorkspaceDirectory()); + super(platform, + platform.getApplication().isMultiuser() + ? Path.of(getWorkspaceURI()) + : ((WebApplication) platform.getApplication()).getWorkspaceDirectory()); + } + + @NotNull + private static URI getWorkspaceURI() { + String workspacePath = Platform.getInstanceLocation().getURL().toString(); + try { + return new URI(workspacePath); + } catch (URISyntaxException e) { + throw new IllegalStateException("Workspace path is invalid: " + workspacePath, e); + } } @Override