diff options
-rw-r--r-- | bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/ReentrantLock.java | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/ReentrantLock.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/ReentrantLock.java index 7ec287588..5e86c55a9 100644 --- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/ReentrantLock.java +++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/syncinfo/ReentrantLock.java @@ -99,11 +99,14 @@ public class ReentrantLock { */ public void popRule(IProgressMonitor monitor) throws CVSException { ISchedulingRule rule = removeRule(); - if (isFlushRequired()) { - flush(monitor); - } - if (rule != NULL_SCHEDULING_RULE) { - Platform.getJobManager().endRule(rule); + try { + if (isFlushRequired()) { + flush(monitor); + } + } finally { + if (rule != NULL_SCHEDULING_RULE) { + Platform.getJobManager().endRule(rule); + } } } /** |