From e308d242f37bca3cda82ad5559d0a949591ccae3 Mon Sep 17 00:00:00 2001
From: Eike Stepper
Date: Wed, 30 Aug 2006 07:13:46 +0000
Subject: [155508] Do not invalidate changed objects
https://bugs.eclipse.org/bugs/show_bug.cgi?id=155508
---
.../launches/CDO Adapter Test.launch | 38 --------------------
.../launches/CDO Basic Test.launch | 38 --------------------
.../launches/CDO Bugzilla Test.launch | 38 --------------------
.../launches/CDO Extent Test.launch | 38 --------------------
.../launches/CDO Notification Test.launch | 38 --------------------
.../launches/CDO OCL Test.launch | 38 --------------------
.../launches/CDO Rollback Test.launch | 38 --------------------
.../launches/CDO Serialization Test.launch | 38 --------------------
.../eclipse/emf/cdo/tests/model1/RollbackTest.java | 42 +++++++++++++++++-----
9 files changed, 33 insertions(+), 313 deletions(-)
delete mode 100644 plugins/org.eclipse.emf.cdo.tests/launches/CDO Adapter Test.launch
delete mode 100644 plugins/org.eclipse.emf.cdo.tests/launches/CDO Basic Test.launch
delete mode 100644 plugins/org.eclipse.emf.cdo.tests/launches/CDO Bugzilla Test.launch
delete mode 100644 plugins/org.eclipse.emf.cdo.tests/launches/CDO Extent Test.launch
delete mode 100644 plugins/org.eclipse.emf.cdo.tests/launches/CDO Notification Test.launch
delete mode 100644 plugins/org.eclipse.emf.cdo.tests/launches/CDO OCL Test.launch
delete mode 100644 plugins/org.eclipse.emf.cdo.tests/launches/CDO Rollback Test.launch
delete mode 100644 plugins/org.eclipse.emf.cdo.tests/launches/CDO Serialization Test.launch
(limited to 'plugins/org.eclipse.emf.cdo.tests')
diff --git a/plugins/org.eclipse.emf.cdo.tests/launches/CDO Adapter Test.launch b/plugins/org.eclipse.emf.cdo.tests/launches/CDO Adapter Test.launch
deleted file mode 100644
index 7265c12045..0000000000
--- a/plugins/org.eclipse.emf.cdo.tests/launches/CDO Adapter Test.launch
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/plugins/org.eclipse.emf.cdo.tests/launches/CDO Basic Test.launch b/plugins/org.eclipse.emf.cdo.tests/launches/CDO Basic Test.launch
deleted file mode 100644
index 00ba45b143..0000000000
--- a/plugins/org.eclipse.emf.cdo.tests/launches/CDO Basic Test.launch
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/plugins/org.eclipse.emf.cdo.tests/launches/CDO Bugzilla Test.launch b/plugins/org.eclipse.emf.cdo.tests/launches/CDO Bugzilla Test.launch
deleted file mode 100644
index d70775ceb8..0000000000
--- a/plugins/org.eclipse.emf.cdo.tests/launches/CDO Bugzilla Test.launch
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/plugins/org.eclipse.emf.cdo.tests/launches/CDO Extent Test.launch b/plugins/org.eclipse.emf.cdo.tests/launches/CDO Extent Test.launch
deleted file mode 100644
index b0e882a5f2..0000000000
--- a/plugins/org.eclipse.emf.cdo.tests/launches/CDO Extent Test.launch
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/plugins/org.eclipse.emf.cdo.tests/launches/CDO Notification Test.launch b/plugins/org.eclipse.emf.cdo.tests/launches/CDO Notification Test.launch
deleted file mode 100644
index 48f5dda960..0000000000
--- a/plugins/org.eclipse.emf.cdo.tests/launches/CDO Notification Test.launch
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/plugins/org.eclipse.emf.cdo.tests/launches/CDO OCL Test.launch b/plugins/org.eclipse.emf.cdo.tests/launches/CDO OCL Test.launch
deleted file mode 100644
index 0fa1ba2986..0000000000
--- a/plugins/org.eclipse.emf.cdo.tests/launches/CDO OCL Test.launch
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/plugins/org.eclipse.emf.cdo.tests/launches/CDO Rollback Test.launch b/plugins/org.eclipse.emf.cdo.tests/launches/CDO Rollback Test.launch
deleted file mode 100644
index fbfff9ac1c..0000000000
--- a/plugins/org.eclipse.emf.cdo.tests/launches/CDO Rollback Test.launch
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/plugins/org.eclipse.emf.cdo.tests/launches/CDO Serialization Test.launch b/plugins/org.eclipse.emf.cdo.tests/launches/CDO Serialization Test.launch
deleted file mode 100644
index 8c9fe1b62e..0000000000
--- a/plugins/org.eclipse.emf.cdo.tests/launches/CDO Serialization Test.launch
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/model1/RollbackTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/model1/RollbackTest.java
index 940de5533a..f1e4b269f1 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/model1/RollbackTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/model1/RollbackTest.java
@@ -12,6 +12,7 @@ package org.eclipse.emf.cdo.tests.model1;
import org.eclipse.emf.cdo.client.OptimisticControlException;
+import org.eclipse.emf.cdo.client.ResourceManager;
import testmodel1.TreeNode;
import junit.framework.ComparisonFailure;
@@ -54,23 +55,46 @@ public class RollbackTest extends AbstractModel1Test
final String ROOT = "root";
final String NEW_ROOT1 = "new root 1";
final String NEW_ROOT2 = "new root 2";
+ final long TIME_LIMIT = 1000;
+ final boolean[] notificationReceived = { false};
// Client1 creates resource
- TreeNode root = createNode(ROOT);
- saveRoot(root, RESOURCE);
+ TreeNode client1 = createNode(ROOT);
+ saveRoot(client1, RESOURCE);
// Client2 loads and modifies resource
- TreeNode loaded = (TreeNode) loadRoot(RESOURCE);
- loaded.setStringFeature(NEW_ROOT2);
+ TreeNode client2 = (TreeNode) loadRoot(RESOURCE);
+ client2.setStringFeature(NEW_ROOT2);
+
+ // Client2 remembers notifications
+ ResourceManager resourceManager = client2.cdoGetResource().getResourceManager();
+ resourceManager.addInvalidationListener(new ResourceManager.InvalidationListener()
+ {
+ public void notifyInvalidation(ResourceManager resourceManager, long[] oids)
+ {
+ notificationReceived[0] = true;
+ }
+ });
// Client1 modifies and commits resource
- root.setStringFeature(NEW_ROOT1);
- root.eResource().save(null);
+ client1.setStringFeature(NEW_ROOT1);
+ client1.eResource().save(null);
+
+ // Give server and client2 enough time to get notified
+ long start = System.currentTimeMillis();
+ while (System.currentTimeMillis() - start < TIME_LIMIT)
+ {
+ if (notificationReceived[0]) break;
+ Thread.sleep(1);
+ }
+
+ assertTrue("Notification did not arrive within " + TIME_LIMIT + " millis",
+ notificationReceived[0]);
// Client2 commits resource, verify that exception occurs
try
{
- loaded.eResource().save(null);
+ client2.eResource().save(null);
fail("OptimisticControlException did not occur");
}
catch (OptimisticControlException ex)
@@ -81,7 +105,7 @@ public class RollbackTest extends AbstractModel1Test
// Verify that client2 has been rolled back
try
{
- assertNode(NEW_ROOT2, loaded);
+ assertNode(NEW_ROOT2, client2);
fail("Client2 has not been rolled back");
}
catch (ComparisonFailure ex)
@@ -90,6 +114,6 @@ public class RollbackTest extends AbstractModel1Test
}
// TODO Clarify what should be done with invalidated objects on rollback
- // assertNode(NEW_ROOT1, loaded);
+ assertNode(NEW_ROOT1, client2);
}
}
--
cgit v1.2.3