Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java68
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;
}
}
}

Back to the top