diff --git a/designer-base/src/main/java/com/fr/design/env/RemoteWorkspace.java b/designer-base/src/main/java/com/fr/design/env/RemoteWorkspace.java index fb8bc80a7..65a277a0f 100644 --- a/designer-base/src/main/java/com/fr/design/env/RemoteWorkspace.java +++ b/designer-base/src/main/java/com/fr/design/env/RemoteWorkspace.java @@ -21,6 +21,8 @@ public class RemoteWorkspace implements Workspace { private final WorkspaceConnectionInfo connection; + private volatile Boolean isRoot = null; + RemoteWorkspace(WorkspaceClient client, WorkspaceConnectionInfo connection) { this.client = client; @@ -54,11 +56,15 @@ public class RemoteWorkspace implements Workspace { @Override public boolean isRoot() { - try { - return WorkContext.getCurrent().get(DecisionOperator.class).isRoot(getConnection().getUserName()); - } catch (Exception e) { - return false; + + if (isRoot == null) { + synchronized (this) { + if (isRoot == null) { + isRoot = WorkContext.getCurrent().get(DecisionOperator.class).isRoot(getConnection().getUserName()); + } + } } + return isRoot; } @Override