Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_414949_Test.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_414949_Test.java108
1 files changed, 108 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_414949_Test.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_414949_Test.java
new file mode 100644
index 0000000000..8d1b6f0e17
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_414949_Test.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 2010-2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Esteban Dugueperoux - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests.bugzilla;
+
+import org.eclipse.emf.cdo.eresource.CDOResource;
+import org.eclipse.emf.cdo.session.CDOSession;
+import org.eclipse.emf.cdo.tests.AbstractCDOTest;
+import org.eclipse.emf.cdo.tests.config.IModelConfig;
+import org.eclipse.emf.cdo.tests.config.impl.ConfigTest.CleanRepositoriesBefore;
+import org.eclipse.emf.cdo.tests.config.impl.ConfigTest.Requires;
+import org.eclipse.emf.cdo.tests.model3.NodeA;
+import org.eclipse.emf.cdo.tests.model3.NodeE;
+import org.eclipse.emf.cdo.transaction.CDOTransaction;
+import org.eclipse.emf.cdo.util.CDOUtil;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+
+import java.io.File;
+import java.util.Collections;
+
+/**
+ * Bug 414949 - ArrayIndexOutOfBoundsException with CDOLegacyWrapper and CDOIDExternal
+ *
+ * @author Esteban Dugueperoux
+ */
+@CleanRepositoriesBefore
+@Requires(IModelConfig.CAPABILITY_LEGACY)
+public class Bugzilla_414949_Test extends AbstractCDOTest
+{
+
+ private static final String SHARED_RESOURCE_NAME = "sharedResource.aird";
+
+ private static final String LOCAL_RESOURCE_NAME = "localResource.xmi";
+
+ private Resource localResource;
+
+ private Object oldResourceFactory;
+
+ @Override
+ protected void doSetUp() throws Exception
+ {
+ super.doSetUp();
+ NodeE dDiagram = getModel3Factory().createNodeE();
+
+ NodeA diagramDescription = getModel3Factory().createNodeA();
+ NodeA concernSet = getModel3Factory().createNodeA();
+ NodeA concernDescription = getModel3Factory().createNodeA();
+ CDOUtil.getCDOObject(concernDescription);
+ NodeA filterDescription1 = getModel3Factory().createNodeA();
+ CDOUtil.getCDOObject(filterDescription1);
+ concernDescription.getOtherNodes().add(filterDescription1);
+ diagramDescription.getChildren().add(filterDescription1);
+ concernSet.getChildren().add(concernDescription);
+ diagramDescription.getChildren().add(concernSet);
+
+ dDiagram.setMainNode(concernDescription);
+ dDiagram.getOtherNodes().add(filterDescription1);
+
+ ResourceSet resourceSet = new ResourceSetImpl();
+ oldResourceFactory = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*",
+ new XMIResourceFactoryImpl());
+ String path = new File("./" + LOCAL_RESOURCE_NAME).getCanonicalPath();
+ URI localResourceURI = URI.createFileURI(path);
+ localResource = resourceSet.createResource(localResourceURI);
+ localResource.getContents().add(diagramDescription);
+ localResource.save(Collections.emptyMap());
+
+ CDOSession session = openSession();
+ CDOTransaction cdoTransaction = session.openTransaction(resourceSet);
+ Resource sharedResource = cdoTransaction.createResource(getResourcePath(SHARED_RESOURCE_NAME));
+ sharedResource.getContents().add(dDiagram);
+ sharedResource.save(Collections.emptyMap());
+ }
+
+ public void testEcoreUtilGetURIWithCDOLegacyWrapperBug() throws Exception
+ {
+
+ CDOSession session = openSession();
+ CDOTransaction transaction = session.openTransaction();
+ CDOResource resource = transaction.getResource(getResourcePath(SHARED_RESOURCE_NAME));
+ EList<EObject> contents = resource.getContents();
+ contents.get(0);
+ }
+
+ @Override
+ protected void doTearDown() throws Exception
+ {
+ localResource.delete(Collections.emptyMap());
+ localResource = null;
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", oldResourceFactory);
+ oldResourceFactory = null;
+ super.doTearDown();
+ }
+}

Back to the top