Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre Guilet2018-09-19 12:07:16 +0000
committerPierre Guilet2018-09-20 08:12:51 +0000
commita0ef38d5b8c3ff356c8b28c51ad143e717833c09 (patch)
treef507d5ac4f97caba630829322c155b21053f032c
parent723269503e76d3fd78d3bb47fe5c445567428032 (diff)
downloadorg.eclipse.sirius-a0ef38d5b8c3ff356c8b28c51ad143e717833c09.tar.gz
org.eclipse.sirius-a0ef38d5b8c3ff356c8b28c51ad143e717833c09.tar.xz
org.eclipse.sirius-a0ef38d5b8c3ff356c8b28c51ad143e717833c09.zip
[539225] Fix potential lock exception
Updating filter while attached diagram is locked will not throw lock exception anymore Bug: 539225 Change-Id: I4c6e67e4863c33b2bbe45021ae6d2b2e7aaddcba Signed-off-by: Pierre Guilet <pierre.guilet@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/refresh/listeners/FilterListener.java13
1 files changed, 10 insertions, 3 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/refresh/listeners/FilterListener.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/refresh/listeners/FilterListener.java
index 631f9c02e2..8c2bf53e4e 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/refresh/listeners/FilterListener.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/refresh/listeners/FilterListener.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2010 THALES GLOBAL SERVICES.
+ * Copyright (c) 2007, 2018 THALES GLOBAL SERVICES.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -20,6 +20,10 @@ import org.eclipse.sirius.business.api.session.ModelChangeTrigger;
import org.eclipse.sirius.diagram.DDiagram;
import org.eclipse.sirius.diagram.ui.business.api.helper.graphicalfilters.CompositeFilterApplicationBuilder;
import org.eclipse.sirius.diagram.ui.internal.refresh.SiriusDiagramSessionEventBroker;
+import org.eclipse.sirius.ecore.extender.business.api.permission.IPermissionAuthority;
+import org.eclipse.sirius.ecore.extender.business.api.permission.LockStatus;
+import org.eclipse.sirius.ecore.extender.business.api.permission.PermissionAuthorityRegistry;
+import org.eclipse.sirius.ecore.extender.business.internal.permission.ReadOnlyWrapperPermissionAuthority;
import org.eclipse.sirius.ext.base.Option;
import org.eclipse.sirius.ext.base.Options;
@@ -85,8 +89,11 @@ public class FilterListener implements ModelChangeTrigger {
@Override
protected void doExecute() {
- CompositeFilterApplicationBuilder builder = new CompositeFilterApplicationBuilder(diagram);
- builder.computeCompositeFilterApplications();
+ IPermissionAuthority permissionAuthority = PermissionAuthorityRegistry.getDefault().getPermissionAuthority(diagram);
+ if (!(permissionAuthority != null && LockStatus.LOCKED_BY_OTHER.equals(permissionAuthority.getLockStatus(diagram)))) {
+ CompositeFilterApplicationBuilder builder = new CompositeFilterApplicationBuilder(diagram);
+ builder.computeCompositeFilterApplications();
+ }
}
}
}

Back to the top