From d60c3e69362cce2760361796edca717b186780fd Mon Sep 17 00:00:00 2001 From: ju Date: Thu, 13 Sep 2018 16:13:26 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-11216=2010.0=E8=BF=9C=E7=A8=8B=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E9=97=AE=E9=A2=98=E8=A7=A3=E5=86=B3=20isRoot=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E4=B8=8B=EF=BC=8C=E4=B8=8D=E7=94=A8=E6=AF=8F=E6=AC=A1?= =?UTF-8?q?=E9=83=BDrpc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/env/RemoteWorkspace.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) 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