diff options
author | Eike Stepper | 2013-08-06 06:20:39 +0000 |
---|---|---|
committer | Eike Stepper | 2013-08-06 06:20:39 +0000 |
commit | 20a3aff450b7e0525d0299aebd2d027ce23bc94e (patch) | |
tree | 9215aa00ce41afffe269ac6d0e724b8f3ae7e845 /plugins/org.eclipse.emf.cdo/src/org/eclipse | |
parent | ec62f152d7309f888d2c2cea96181f5b60480b20 (diff) | |
download | cdo-20a3aff450b7e0525d0299aebd2d027ce23bc94e.tar.gz cdo-20a3aff450b7e0525d0299aebd2d027ce23bc94e.tar.xz cdo-20a3aff450b7e0525d0299aebd2d027ce23bc94e.zip |
[411939] CDOSessionImpl can "freeze" during invalidation reordering
https://bugs.eclipse.org/bugs/show_bug.cgi?id=411939
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse')
3 files changed, 3 insertions, 4 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java index 385ab88557..1ac0056ef6 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java @@ -2959,11 +2959,12 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa { InternalCDOSession session = getSession(); long timeStamp = result.getTimeStamp(); + boolean clearResourcePathCache = result.isClearResourcePathCache(); if (result.getRollbackMessage() != null) { CDOCommitInfo commitInfo = new FailureCommitInfo(timeStamp, result.getPreviousTimeStamp()); - session.invalidate(commitInfo, transaction, result.isClearResourcePathCache()); + session.invalidate(commitInfo, transaction, clearResourcePathCache); return; } @@ -2996,7 +2997,6 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa CDOCommitInfo commitInfo = makeCommitInfo(timeStamp, result.getPreviousTimeStamp()); if (!commitInfo.isEmpty()) { - boolean clearResourcePathCache = result.isClearResourcePathCache(); session.invalidate(commitInfo, transaction, clearResourcePathCache); } diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java index a028a8bae8..76fe921b03 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java @@ -1495,7 +1495,6 @@ public abstract class AbstractCDOView extends CDOCommitHistoryProviderImpl<CDOOb public synchronized int reload(CDOObject... objects) { Collection<InternalCDOObject> internalObjects; - // TODO Should objects.length == 0 reload *all* objects, too? if (objects != null && objects.length != 0) { internalObjects = new ArrayList<InternalCDOObject>(objects.length); diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java index dc2a1693ac..0bafbc8e1c 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java @@ -859,7 +859,7 @@ public class CDOViewImpl extends AbstractCDOView { try { - if (branch == getBranch()) + if (branch == getBranch()) // Also false for FailureCommitInfos. Only setLastUpdateTime() is called below. { if (clearResourcePathCache) { |