Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2009-11-05 18:46:16 +0000
committerEike Stepper2009-11-05 18:46:16 +0000
commit39722b8c3978c68490e619df26539320ea2a832d (patch)
tree0be38f48188aeedc3d329fda5197e57aab6a9531 /plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo
parente7436e4fc369522df8c326e31fd8c42b153754d0 (diff)
downloadcdo-39722b8c3978c68490e619df26539320ea2a832d.tar.gz
cdo-39722b8c3978c68490e619df26539320ea2a832d.tar.xz
cdo-39722b8c3978c68490e619df26539320ea2a832d.zip
[289880] Emit CDOView events after all adapters have been notified
https://bugs.eclipse.org/bugs/show_bug.cgi?id=289880
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo')
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java2
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java34
2 files changed, 35 insertions, 1 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 9874b0396d..d75935fb50 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
@@ -610,6 +610,8 @@ public abstract class CDOSessionImpl extends Container<CDOView> implements Inter
{
((InternalCDOTransaction)view).handleConflicts(conflicts);
}
+
+ view.fireAdaptersNotifiedEvent(timeStamp);
}
catch (RuntimeException ex)
{
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 901ae32e66..07f9f86845 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
@@ -47,6 +47,7 @@ import org.eclipse.emf.cdo.view.CDOQuery;
import org.eclipse.emf.cdo.view.CDORevisionPrefetchingPolicy;
import org.eclipse.emf.cdo.view.CDOStaleReferencePolicy;
import org.eclipse.emf.cdo.view.CDOView;
+import org.eclipse.emf.cdo.view.CDOViewAdaptersNotifiedEvent;
import org.eclipse.emf.cdo.view.CDOViewEvent;
import org.eclipse.emf.cdo.view.CDOViewInvalidationEvent;
@@ -1304,7 +1305,7 @@ public class CDOViewImpl extends Lifecycle implements InternalCDOView
/**
* @since 2.0
*/
- public void fireInvalidationEvent(long timeStamp, Set<? extends CDOObject> dirtyObjects,
+ private void fireInvalidationEvent(long timeStamp, Set<? extends CDOObject> dirtyObjects,
Set<? extends CDOObject> detachedObjects)
{
if (!dirtyObjects.isEmpty() || !detachedObjects.isEmpty())
@@ -1317,6 +1318,11 @@ public class CDOViewImpl extends Lifecycle implements InternalCDOView
}
}
+ public void fireAdaptersNotifiedEvent(long timeStamp)
+ {
+ fireEvent(new AdaptersNotifiedEvent(timeStamp));
+ }
+
/**
* @since 2.0
*/
@@ -2024,6 +2030,32 @@ public class CDOViewImpl extends Lifecycle implements InternalCDOView
/**
* @author Eike Stepper
+ */
+ private final class AdaptersNotifiedEvent extends Event implements CDOViewAdaptersNotifiedEvent
+ {
+ private static final long serialVersionUID = 1L;
+
+ private long timeStamp;
+
+ public AdaptersNotifiedEvent(long timeStamp)
+ {
+ this.timeStamp = timeStamp;
+ }
+
+ public long getTimeStamp()
+ {
+ return timeStamp;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "CDOViewAdaptersNotifiedEvent: " + timeStamp; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @author Eike Stepper
* @since 2.0
*/
protected class OptionsImpl extends Notifier implements Options

Back to the top