diff options
author | Martin Fluegge | 2011-07-12 16:46:12 +0000 |
---|---|---|
committer | Martin Fluegge | 2011-07-12 16:46:12 +0000 |
commit | a7dca8749a796c0e7fbe678922d52e44db5b94ee (patch) | |
tree | 0e4495fa1eeac9b82a7f6ce1085a8bf866cfbf8c | |
parent | b60ce23d40163785d0c6d09a0e4ca2a85867fdc7 (diff) | |
download | cdo-a7dca8749a796c0e7fbe678922d52e44db5b94ee.tar.gz cdo-a7dca8749a796c0e7fbe678922d52e44db5b94ee.tar.xz cdo-a7dca8749a796c0e7fbe678922d52e44db5b94ee.zip |
[337886] [Legacy] Bugzilla_305527_Test.testAvoidReferencingDifferentViews() fails in Legacy
https://bugs.eclipse.org/bugs/show_bug.cgi?id=337886
2 files changed, 9 insertions, 69 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_305527_Test.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_305527_Test.java index b9b510f29a..32900b0b0f 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_305527_Test.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_305527_Test.java @@ -15,16 +15,10 @@ import org.eclipse.emf.cdo.session.CDOSession; import org.eclipse.emf.cdo.tests.AbstractCDOTest; import org.eclipse.emf.cdo.tests.mango.MangoValue; import org.eclipse.emf.cdo.tests.mango.MangoValueList; -import org.eclipse.emf.cdo.tests.model1.Category; -import org.eclipse.emf.cdo.tests.model1.Customer; -import org.eclipse.emf.cdo.tests.model1.SalesOrder; import org.eclipse.emf.cdo.transaction.CDOTransaction; -import org.eclipse.emf.cdo.util.CDOUtil; import org.eclipse.emf.cdo.util.CommitException; import org.eclipse.emf.cdo.view.CDOView; -import org.eclipse.emf.common.util.EList; - /** * @author Martin Fluegge * @since 4.0 @@ -33,7 +27,6 @@ public class Bugzilla_305527_Test extends AbstractCDOTest { public void testAvoidReferencingDifferentViews() throws CommitException { - skipConfig(LEGACY); skipUnlessAuditing(); final CDOSession session = openSession(); long commitTime; @@ -71,53 +64,7 @@ public class Bugzilla_305527_Test extends AbstractCDOTest catch (IllegalArgumentException expected) { // SUCCESS + expected.printStackTrace(); } } - - /** - * Martin: What's this test supposed to test? - */ - public void _testOppositeSettingValidation() throws CommitException - { - CDOSession openSession = openSession(); - CDOTransaction transaction1 = openSession.openTransaction(); - CDOResource resource1 = transaction1.createResource(getResourcePath("test")); - - Customer customer1 = getModel1Factory().createCustomer(); - Customer customer2 = getModel1Factory().createCustomer(); - SalesOrder salesOrder1 = getModel1Factory().createSalesOrder(); - salesOrder1.setCustomer(customer1); - - resource1.getContents().add(customer1); - resource1.getContents().add(customer2); - resource1.getContents().add(salesOrder1); - - Category createCategory = getModel1Factory().createCategory(); - - resource1.getContents().add(createCategory); - resource1.getContents().add(getModel1Factory().createProduct1()); - transaction1.commit(); - - CDOTransaction transaction2 = openSession.openTransaction(); - CDOResource resource2 = transaction2.getResource(getResourcePath("test")); - - SalesOrder salesOrderFound = (SalesOrder)resource2.getContents().get(2); - resource2.getContents().add(salesOrderFound); - - assertEquals(CDOUtil.getCDOObject(salesOrder1).cdoID(), CDOUtil.getCDOObject(salesOrderFound).cdoID()); - assertEquals(CDOUtil.getCDOObject(salesOrder1).cdoID(), - CDOUtil.getCDOObject(salesOrderFound.getCustomer().getSalesOrders().get(0)).cdoID()); - - assertNotSame(CDOUtil.getCDOObject(salesOrderFound).cdoView(), CDOUtil.getCDOObject(customer2).cdoView()); - - // Expecting exception here - salesOrderFound.setCustomer(customer2); - - EList<SalesOrder> salesOrders = salesOrderFound.getCustomer().getSalesOrders(); - - // Model consistency is broken - assertEquals(true, salesOrders.size() == 1); - assertEquals(CDOUtil.getCDOObject(salesOrderFound).cdoID(), CDOUtil.getCDOObject(salesOrders.get(0)).cdoID()); - fail("Should not allow to mix elements from the different view"); - } } diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java index bfa2d97394..0dc8f09eb0 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java @@ -932,24 +932,17 @@ public abstract class AbstractCDOView extends Lifecycle implements InternalCDOVi } else { - try + InternalCDOObject object = (InternalCDOObject)EcoreUtil.getAdapter( + ((InternalEObject)potentialObject).eAdapters(), CDOLegacyAdapter.class); + if (object != null) { - InternalCDOObject object = (InternalCDOObject)EcoreUtil.getAdapter( - ((InternalEObject)potentialObject).eAdapters(), CDOLegacyAdapter.class); - if (object != null) + CDOID id = getID(object, onlyPersistedID); + if (id != null) { - CDOID id = getID(object, onlyPersistedID); - if (id != null) - { - return id; - } - - potentialObject = object; + return id; } - } - catch (Throwable ex) - { - OM.LOG.warn(ex); + + potentialObject = object; } } } |