diff options
| author | Pierre Guilet | 2018-09-19 12:07:16 +0000 |
|---|---|---|
| committer | Pierre Guilet | 2018-09-20 08:12:51 +0000 |
| commit | a0ef38d5b8c3ff356c8b28c51ad143e717833c09 (patch) | |
| tree | f507d5ac4f97caba630829322c155b21053f032c | |
| parent | 723269503e76d3fd78d3bb47fe5c445567428032 (diff) | |
| download | org.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.java | 13 |
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(); + } } } } |
