Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/LockingManagerTest.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/LockingManagerTest.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/LockingManagerTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/LockingManagerTest.java
index c80ffcea9a..11350de431 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/LockingManagerTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/LockingManagerTest.java
@@ -787,6 +787,42 @@ public class LockingManagerTest extends AbstractLockingTest
assertWriteLock(false, company);
}
+ /**
+ * Bug 352191.
+ */
+ public void testLockDetached() throws Exception
+ {
+ Company company = getModel1Factory().createCompany();
+
+ CDOSession session = openSession();
+ CDOTransaction transaction = session.openTransaction();
+ CDOResource res = transaction.createResource(getResourcePath("/res1"));
+ res.getContents().add(company);
+ transaction.commit();
+
+ res.getContents().remove(0);
+ assertTransient(company);
+
+ CDOObject cdoObject = CDOUtil.getCDOObject(company);
+ transaction.lockObjects(Collections.singleton(cdoObject), LockType.WRITE, DEFAULT_TIMEOUT);
+
+ // Verify
+ CDOTransaction transaction2 = session.openTransaction();
+ CDOResource res2 = transaction2.getResource(getResourcePath("/res1"));
+ Company company2 = (Company)res2.getContents().get(0);
+ company2.setName("NewName");
+
+ try
+ {
+ transaction2.commit();
+ fail("CommitException expected");
+ }
+ catch (CommitException expected)
+ {
+ // SUCCESS
+ }
+ }
+
public void testTransactionClose() throws Exception
{
Company company = getModel1Factory().createCompany();

Back to the top