diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java | 68 |
1 files changed, 48 insertions, 20 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java index b783e08b74..ad32a8060c 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java @@ -1056,6 +1056,24 @@ public abstract class CDOSessionImpl extends CDOTransactionContainerImpl impleme long previousTimeStamp = commitInfo.getPreviousTimeStamp(); long lastUpdateTime = getLastUpdateTime(); + int xxx; + if (sessionID == 3) + { + ArrayList<Long> queue; + synchronized (outOfSequenceInvalidations) + { + queue = new ArrayList<Long>(outOfSequenceInvalidations.size()); + for (OutOfSequenceInvalidation invalidation : outOfSequenceInvalidations.values()) + { + queue.add(invalidation.getCommitInfo().getTimeStamp() % 10000L); + } + } + + Collections.sort(queue); + System.out.println("(" + lastUpdateTime % 10000L + ") " + commitInfo.getClass().getSimpleName() + ": " + + previousTimeStamp % 10000L + " --> " + commitInfo.getTimeStamp() % 10000L + " Queue=" + queue); + } + if (previousTimeStamp < lastUpdateTime) { previousTimeStamp = lastUpdateTime; @@ -1142,33 +1160,43 @@ public abstract class CDOSessionImpl extends CDOTransactionContainerImpl impleme private void invalidateOrdered(CDOCommitInfo commitInfo, InternalCDOTransaction sender, boolean clearResourcePathCache) { - Map<CDOID, InternalCDORevision> oldRevisions = null; - boolean success = commitInfo.getBranch() != null; - if (success) + try { - oldRevisions = reviseRevisions(commitInfo); - } + Map<CDOID, InternalCDORevision> oldRevisions = null; + boolean success = commitInfo.getBranch() != null; + if (success) + { + oldRevisions = reviseRevisions(commitInfo); + } - if (options.isPassiveUpdateEnabled()) - { - setLastUpdateTime(commitInfo.getTimeStamp()); - } + if (options.isPassiveUpdateEnabled()) + { + setLastUpdateTime(commitInfo.getTimeStamp()); + } - if (success) - { - fireInvalidationEvent(sender, commitInfo); - commitInfoManager.notifyCommitInfoHandlers(commitInfo); - } + if (success) + { + fireInvalidationEvent(sender, commitInfo); + commitInfoManager.notifyCommitInfoHandlers(commitInfo); + } - for (InternalCDOView view : getViews()) - { - if (view != sender) + for (InternalCDOView view : getViews()) { - invalidateView(commitInfo, view, oldRevisions, clearResourcePathCache); + if (view != sender) + { + invalidateView(commitInfo, view, oldRevisions, clearResourcePathCache); + } + else + { + view.setLastUpdateTime(commitInfo.getTimeStamp()); + } } - else + } + catch (RuntimeException ex) + { + if (isActive()) { - view.setLastUpdateTime(commitInfo.getTimeStamp()); + throw ex; } } } |