Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian W. Damus2014-05-29 04:04:17 +0000
committerChristian W. Damus2014-05-29 04:04:17 +0000
commitc717a8758a8437436846277787f78ec850368f08 (patch)
tree8f38741ee5fdc7d6ee031e17edc8cf4c59890951
parentc77312e9a8cbe9e9d0829d984222d13a9234351b (diff)
downloadorg.eclipse.papyrus-c717a8758a8437436846277787f78ec850368f08.tar.gz
org.eclipse.papyrus-c717a8758a8437436846277787f78ec850368f08.tar.xz
org.eclipse.papyrus-c717a8758a8437436846277787f78ec850368f08.zip
436047: Timeout about Test
https://bugs.eclipse.org/bugs/show_bug.cgi?id=436047 Improve performance of the test suite: * eliminate proliferation of zombie operation history listeners, which accumulated into the thousands to significantly slow down tests as the suite progressed. Some were caused by action-handler updates posted in async runnables and run only after all editors were closed. Others were caused by leaked editing domains * clean up some additional test-case fields that can leak models * fix exception logs caused by creation of empty *.di files
-rw-r--r--tests/junit/plugins/core/org.eclipse.papyrus.infra.core.tests/test/org/eclipse/papyrus/infra/core/resource/AbstractModelWithSharedResourceTest.java33
-rw-r--r--tests/junit/plugins/core/org.eclipse.papyrus.infra.core.tests/test/org/eclipse/papyrus/infra/core/resource/ModelSetTest.java59
-rw-r--r--tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/classification/ClassificationRunner.java86
-rw-r--r--tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/rules/AbstractHouseKeeperRule.java7
-rw-r--r--tests/junit/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock.tests/src/org/eclipse/papyrus/sysml/diagram/internalblock/tests/utils/TestUtils.java49
-rw-r--r--tests/junit/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric.tests/src/org/eclipse/papyrus/sysml/diagram/parametric/tests/utils/TestUtils.java47
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.diagram.stereotypeproperty.tests/src/org/eclipse/papyrus/diagram/stereotypeproperty/AbstractPapyrusTestCase.java10
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.diagram.tests/src/org/eclipse/papyrus/diagram/tests/canonical/AbstractPapyrusTestCase.java12
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestAdvancedDragDrop_364696.java8
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDecompositionCombinedFragment_364813.java8
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDecompositionMove_364812.java8
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestLifelineAutoResize_383723.java8
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestLifelineLabelCustomize_383722.java8
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing.tests/src/org/eclipse/papyrus/uml/diagram/timing/tests/generic/AbstractPapyrusTestCase.java9
14 files changed, 250 insertions, 102 deletions
diff --git a/tests/junit/plugins/core/org.eclipse.papyrus.infra.core.tests/test/org/eclipse/papyrus/infra/core/resource/AbstractModelWithSharedResourceTest.java b/tests/junit/plugins/core/org.eclipse.papyrus.infra.core.tests/test/org/eclipse/papyrus/infra/core/resource/AbstractModelWithSharedResourceTest.java
index c565aa3504f..adc2709acf8 100644
--- a/tests/junit/plugins/core/org.eclipse.papyrus.infra.core.tests/test/org/eclipse/papyrus/infra/core/resource/AbstractModelWithSharedResourceTest.java
+++ b/tests/junit/plugins/core/org.eclipse.papyrus.infra.core.tests/test/org/eclipse/papyrus/infra/core/resource/AbstractModelWithSharedResourceTest.java
@@ -1,6 +1,16 @@
-/**
+/*****************************************************************************
+ * Copyright (c) 2010, 2014 LIFL, CEA, 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:
+ * LIFL - Initial API and implementation
+ * Christian W. Damus (CEA) - bug 436047
+ *
+ *****************************************************************************/
package org.eclipse.papyrus.infra.core.resource;
import static org.junit.Assert.assertEquals;
@@ -20,9 +30,11 @@ import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EcoreFactory;
import org.eclipse.papyrus.infra.core.resource.AbstractModelWithSharedResource.ModelKind;
+import org.eclipse.papyrus.junit.utils.rules.HouseKeeper;
import org.eclipse.papyrus.junit.utils.tests.AbstractPapyrusTest;
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
@@ -34,6 +46,9 @@ import org.junit.Test;
*/
public class AbstractModelWithSharedResourceTest extends AbstractPapyrusTest {
+ @Rule
+ public final HouseKeeper houseKeeper = new HouseKeeper();
+
/**
* @throws java.lang.Exception
*/
@@ -62,7 +77,7 @@ public class AbstractModelWithSharedResourceTest extends AbstractPapyrusTest {
FakeModelWithSharedResource<EPackage> model1 = new FakeModelWithSharedResource<EPackage>(ModelKind.master, model1Key, EPackage.class);
FakeModelWithSharedResource<EClass> model2 = new FakeModelWithSharedResource<EClass>(model2Key, EClass.class);
- ModelSet modelSet = new ModelSet();
+ ModelSet modelSet = houseKeeper.cleanUpLater(new ModelSet());
modelSet.registerModel(model1);
modelSet.registerModel(model2);
@@ -92,7 +107,7 @@ public class AbstractModelWithSharedResourceTest extends AbstractPapyrusTest {
FakeModelWithSharedResource<EPackage> model1 = new FakeModelWithSharedResource<EPackage>(ModelKind.master, model1Key, EPackage.class);
FakeModelWithSharedResource<EClass> model2 = new FakeModelWithSharedResource<EClass>(model2Key, EClass.class);
- ModelSet modelSet = new ModelSet();
+ ModelSet modelSet = houseKeeper.cleanUpLater(new ModelSet());
modelSet.registerModel(model1);
modelSet.registerModel(model2);
@@ -131,7 +146,7 @@ public class AbstractModelWithSharedResourceTest extends AbstractPapyrusTest {
FakeModelWithSharedResource<EPackage> model1 = new FakeModelWithSharedResource<EPackage>(ModelKind.master, model1Key, EPackage.class);
FakeModelWithSharedResource<EClass> model2 = new FakeModelWithSharedResource<EClass>(model2Key, EClass.class);
- ModelSet modelSet = new ModelSet();
+ ModelSet modelSet = houseKeeper.cleanUpLater(new ModelSet());
modelSet.registerModel(model1);
modelSet.registerModel(model2);
@@ -162,7 +177,7 @@ public class AbstractModelWithSharedResourceTest extends AbstractPapyrusTest {
FakeModelWithSharedResource<EPackage> model1 = new FakeModelWithSharedResource<EPackage>(ModelKind.master, model1Key, EPackage.class);
FakeModelWithSharedResource<EClass> model2 = new FakeModelWithSharedResource<EClass>(model2Key, EClass.class);
- ModelSet modelSet = new ModelSet();
+ ModelSet modelSet = houseKeeper.cleanUpLater(new ModelSet());
modelSet.registerModel(model1);
modelSet.registerModel(model2);
@@ -202,7 +217,7 @@ public class AbstractModelWithSharedResourceTest extends AbstractPapyrusTest {
FakeModelWithSharedResource<EPackage> model1 = new FakeModelWithSharedResource<EPackage>(ModelKind.master, model1Key, EPackage.class);
FakeModelWithSharedResource<EClass> model2 = new FakeModelWithSharedResource<EClass>(model2Key, EClass.class);
- ModelSet modelSet = new ModelSet();
+ ModelSet modelSet = houseKeeper.cleanUpLater(new ModelSet());
modelSet.registerModel(model1);
modelSet.registerModel(model2);
@@ -235,7 +250,7 @@ public class AbstractModelWithSharedResourceTest extends AbstractPapyrusTest {
FakeModelWithSharedResource<EPackage> model1 = new FakeModelWithSharedResource<EPackage>(ModelKind.master, model1Key, EPackage.class);
FakeModelWithSharedResource<EClass> model2 = new FakeModelWithSharedResource<EClass>(model2Key, EClass.class);
- ModelSet modelSet = new ModelSet();
+ ModelSet modelSet = houseKeeper.cleanUpLater(new ModelSet());
modelSet.registerModel(model1);
modelSet.registerModel(model2);
@@ -288,7 +303,7 @@ public class AbstractModelWithSharedResourceTest extends AbstractPapyrusTest {
FakeModelWithSharedResource<EPackage> model1 = new FakeModelWithSharedResource<EPackage>(ModelKind.master, model1Key, EPackage.class);
FakeModelWithSharedResource<EClass> model2 = new FakeModelWithSharedResource<EClass>(model2Key, EClass.class);
- ModelSet modelSet = new ModelSet();
+ ModelSet modelSet = houseKeeper.cleanUpLater(new ModelSet());
modelSet.registerModel(model1);
modelSet.registerModel(model2);
diff --git a/tests/junit/plugins/core/org.eclipse.papyrus.infra.core.tests/test/org/eclipse/papyrus/infra/core/resource/ModelSetTest.java b/tests/junit/plugins/core/org.eclipse.papyrus.infra.core.tests/test/org/eclipse/papyrus/infra/core/resource/ModelSetTest.java
index 3495e45a1be..2e6f943d9a9 100644
--- a/tests/junit/plugins/core/org.eclipse.papyrus.infra.core.tests/test/org/eclipse/papyrus/infra/core/resource/ModelSetTest.java
+++ b/tests/junit/plugins/core/org.eclipse.papyrus.infra.core.tests/test/org/eclipse/papyrus/infra/core/resource/ModelSetTest.java
@@ -9,6 +9,7 @@
* Contributors:
* LIFL - Initial API and implementation
* Christian W. Damus (CEA) - bug 422257
+ * Christian W. Damus (CEA) - bug 436047
*
*****************************************************************************/
package org.eclipse.papyrus.infra.core.resource;
@@ -31,10 +32,11 @@ import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EcoreFactory;
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.papyrus.junit.utils.rules.HouseKeeper;
import org.eclipse.papyrus.junit.utils.tests.AbstractPapyrusTest;
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
/**
@@ -51,6 +53,9 @@ public class ModelSetTest extends AbstractPapyrusTest {
*/
final protected String PLUGIN_PROJECT_NAME = "org.eclipse.papyrus.infra.core";
+ @Rule
+ public final HouseKeeper houseKeeper = new HouseKeeper();
+
/**
*
* @throws Exception
@@ -72,7 +77,7 @@ public class ModelSetTest extends AbstractPapyrusTest {
*/
@Test
public void testRegisterModel() {
- ModelSet mngr = new ModelSet();
+ ModelSet mngr = houseKeeper.cleanUpLater(new ModelSet());
FakeModel model1 = new FakeModel("model1");
@@ -87,7 +92,7 @@ public class ModelSetTest extends AbstractPapyrusTest {
*/
@Test
public void testGetModel() {
- ModelSet mngr = new ModelSet();
+ ModelSet mngr = houseKeeper.cleanUpLater(new ModelSet());
FakeModel model1 = new FakeModel("model1");
FakeModel model2 = new FakeModel("model2");
@@ -104,7 +109,7 @@ public class ModelSetTest extends AbstractPapyrusTest {
*/
@Test
public void testGetTransactionalEditingDomain() {
- ModelSet mngr = new ModelSet();
+ ModelSet mngr = houseKeeper.cleanUpLater(new ModelSet());
assertNotNull("editing domain created", mngr.getTransactionalEditingDomain());
}
@@ -114,7 +119,7 @@ public class ModelSetTest extends AbstractPapyrusTest {
*/
@Test
public void testCreatesModels() throws IOException, CoreException {
- ModelSet mngr = new ModelSet();
+ ModelSet mngr = houseKeeper.cleanUpLater(new ModelSet());
String model1Key = "ecore";
String model2Key = "genmodel";
@@ -148,7 +153,7 @@ public class ModelSetTest extends AbstractPapyrusTest {
testSave();
// Now do load
- ModelSet mngr = new ModelSet();
+ ModelSet mngr = houseKeeper.cleanUpLater(new ModelSet());
String model1Key = "ecore";
String model2Key = "genmodel";
@@ -179,7 +184,7 @@ public class ModelSetTest extends AbstractPapyrusTest {
*/
@Test
public void testSave() throws CoreException, IOException {
- ModelSet mngr = new ModelSet();
+ ModelSet mngr = houseKeeper.cleanUpLater(new ModelSet());
String model1Key = "ecore";
String model2Key = "genmodel";
@@ -224,25 +229,15 @@ public class ModelSetTest extends AbstractPapyrusTest {
}
p.open(new NullProgressMonitor());
- ResourceSet resourceSet = new ResourceSetImpl();
-
- try {
- for(String filename : filenames) {
- createResource(p, resourceSet, filename);
- }
-
- // Save created resources
- for(Resource resource : resourceSet.getResources()) {
- resource.save(null);
- }
- } finally {
- // Clean up
- for(Resource next : resourceSet.getResources()) {
- next.unload();
- next.eAdapters().clear();
- }
- resourceSet.getResources().clear();
- resourceSet.eAdapters().clear();
+ ResourceSet resourceSet = houseKeeper.createResourceSet();
+
+ for(String filename : filenames) {
+ createResource(p, resourceSet, filename);
+ }
+
+ // Save created resources
+ for(Resource resource : resourceSet.getResources()) {
+ resource.save(null);
}
}
@@ -270,7 +265,7 @@ public class ModelSetTest extends AbstractPapyrusTest {
*/
@Test
public void testSaveAs() throws CoreException, IOException {
- ModelSet mngr = new ModelSet();
+ ModelSet mngr = houseKeeper.cleanUpLater(new ModelSet());
String model1Key = "ecore";
String model2Key = "genmodel";
@@ -314,7 +309,7 @@ public class ModelSetTest extends AbstractPapyrusTest {
*/
@Test
public void testUnload() {
- ModelSet mngr = new ModelSet();
+ ModelSet mngr = houseKeeper.cleanUpLater(new ModelSet());
String model1Key = "ecore";
String model2Key = "genmodel";
@@ -342,7 +337,7 @@ public class ModelSetTest extends AbstractPapyrusTest {
*/
@Test
public void testAddModelSetSnippet() {
- ModelSet mngr = new ModelSet();
+ ModelSet mngr = houseKeeper.cleanUpLater(new ModelSet());
// Add snippets
TestTrace trace = new TestTrace();
@@ -365,7 +360,7 @@ public class ModelSetTest extends AbstractPapyrusTest {
*/
@Test
public void testSnippetCalledAfterCreateModels() {
- ModelSet mngr = new ModelSet();
+ ModelSet mngr = houseKeeper.cleanUpLater(new ModelSet());
// Add snippets
TestTrace trace = new TestTrace();
@@ -401,7 +396,7 @@ public class ModelSetTest extends AbstractPapyrusTest {
testSnippetCalledAfterCreateModels();
// now do load.
- ModelSet mngr = new ModelSet();
+ ModelSet mngr = houseKeeper.cleanUpLater(new ModelSet());
// Add snippets
TestTrace trace = new TestTrace();
@@ -468,7 +463,7 @@ public class ModelSetTest extends AbstractPapyrusTest {
createResources("tmp/model1." + model1Key, "tmp/model1." + model2Key, "tmp/model1." + model3Key);
// Now do registration
- ModelSet mngr = new ModelSet();
+ ModelSet mngr = houseKeeper.cleanUpLater(new ModelSet());
FakeModel model1 = new FakeModel(model1Key);
FakeModel model2 = new FakeModel(model2Key);
diff --git a/tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/classification/ClassificationRunner.java b/tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/classification/ClassificationRunner.java
index 9d6c956685f..df0b05a0713 100644
--- a/tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/classification/ClassificationRunner.java
+++ b/tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/classification/ClassificationRunner.java
@@ -11,19 +11,27 @@
* Christian W. Damus (CEA) - add support for conditional tests
* Christian W. Damus (CEA) - bug 432813
* Christian W. Damus (CEA) - bug 434993
+ * Christian W. Damus (CEA) - bug 436047
*
*****************************************************************************/
package org.eclipse.papyrus.junit.utils.classification;
import java.lang.annotation.Annotation;
+import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.List;
+import java.util.Set;
+import org.eclipse.core.commands.operations.DefaultOperationHistory;
+import org.eclipse.core.runtime.ListenerList;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.papyrus.infra.tools.util.ListHelper;
import org.eclipse.papyrus.junit.utils.rules.ConditionRule;
import org.eclipse.papyrus.junit.utils.rules.Conditional;
import org.eclipse.papyrus.junit.utils.rules.MemoryLeakRule;
import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.junit.rules.TestRule;
import org.junit.rules.TestWatcher;
@@ -38,6 +46,7 @@ import com.google.common.base.Predicates;
import com.google.common.base.Supplier;
import com.google.common.base.Suppliers;
import com.google.common.collect.Iterables;
+import com.google.common.collect.Sets;
/**
* A Test Runner which is aware of Classification-related annotations and {@link Conditional @Conditional} tests.
@@ -181,8 +190,14 @@ public class ClassificationRunner extends BlockJUnit4ClassRunner {
@Override
protected void finished(Description description) {
+ final Display display = Display.getCurrent();
+ if(display == null) {
+ // Can't do UI manipulations and history listener hacking except on the UI thread
+ return;
+ }
+
// Flush the UI thread's pending events
- for(Display display = Display.getCurrent(); (display != null) && !display.isDisposed();) {
+ while(!display.isDisposed()) {
try {
if(!display.readAndDispatch()) {
break;
@@ -191,6 +206,25 @@ public class ClassificationRunner extends BlockJUnit4ClassRunner {
// Ignore it
}
}
+
+ // If there are no editors open any longer, then all of the action handlers currently
+ // listening to the operation history are leaked, so remove them. This ensures that we
+ // do not end up wasting time in notifying thousands of dead/broken/useless listeners
+ // every time a test case executes an operation on the history (which happens *a lot*)
+ IWorkbench bench = PlatformUI.getWorkbench();
+ IWorkbenchWindow window = (bench == null) ? null : bench.getActiveWorkbenchWindow();
+ if((window == null) && (bench != null) && (bench.getWorkbenchWindowCount() > 0)) {
+ window = bench.getWorkbenchWindows()[0];
+ }
+ if(window != null && window.getActivePage().getEditorReferences().length == 0) {
+ final ListenerList historyListeners = OperationHistoryHelper.getOperationHistoryListeners();
+ final Object[] listeners = historyListeners.getListeners();
+ for(int i = 0; i < listeners.length; i++) {
+ if(OperationHistoryHelper.shouldRemoveHistoryListener(listeners[i])) {
+ historyListeners.remove(listeners[i]);
+ }
+ }
+ }
}
};
}
@@ -205,4 +239,54 @@ public class ClassificationRunner extends BlockJUnit4ClassRunner {
return result;
}
+
+ //
+ // Nested types
+ //
+
+ static class OperationHistoryHelper {
+
+ static final Field listenersField;
+
+ static final Set<Class<?>> historyListenerClasses;
+ static {
+ try {
+ listenersField = DefaultOperationHistory.class.getDeclaredField("listeners");
+ listenersField.setAccessible(true);
+
+ historyListenerClasses = Sets.<Class<?>> newHashSet( //
+ Platform.getBundle("org.eclipse.gmf.runtime.diagram.ui.actions").loadClass("org.eclipse.gmf.runtime.diagram.ui.actions.internal.PropertyChangeContributionItem"), //
+ Platform.getBundle("org.eclipse.ui.workbench").loadClass("org.eclipse.ui.operations.OperationHistoryActionHandler$HistoryListener"));
+ } catch (Exception e) {
+ throw new ExceptionInInitializerError(e);
+ }
+ }
+
+ static ListenerList getOperationHistoryListeners() {
+ try {
+ return (ListenerList)listenersField.get(PlatformUI.getWorkbench().getOperationSupport().getOperationHistory());
+ } catch (Exception e) {
+ org.junit.Assert.fail(e.getLocalizedMessage());
+ return null; // Unreachable
+ }
+ }
+
+ static boolean shouldRemoveHistoryListener(Object listener) {
+ boolean result = historyListenerClasses.contains(listener.getClass().getName());
+
+ if(!result) {
+ // Maybe it's a subclass
+ for(Class<?> next : historyListenerClasses) {
+ if(next.isInstance(listener)) {
+ // Remember this
+ historyListenerClasses.add(listener.getClass());
+ result = true;
+ break;
+ }
+ }
+ }
+
+ return result;
+ }
+ }
}
diff --git a/tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/rules/AbstractHouseKeeperRule.java b/tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/rules/AbstractHouseKeeperRule.java
index 9837af34e6d..fc7a9c76de0 100644
--- a/tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/rules/AbstractHouseKeeperRule.java
+++ b/tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/rules/AbstractHouseKeeperRule.java
@@ -23,9 +23,11 @@ import java.util.Collection;
import java.util.List;
import java.util.Map;
+import org.eclipse.core.commands.operations.IUndoableOperation;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
+import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.common.util.WrappedException;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
@@ -34,6 +36,7 @@ import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.gef.EditPart;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
import org.eclipse.papyrus.infra.core.editor.IMultiDiagramEditor;
import org.eclipse.papyrus.infra.core.resource.ModelSet;
import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
@@ -444,7 +447,9 @@ public abstract class AbstractHouseKeeperRule {
Class<?> type = field.getType();
return EObject.class.isAssignableFrom(type) || Resource.class.isAssignableFrom(type) //
|| ResourceSet.class.isAssignableFrom(type) || EditingDomain.class.isAssignableFrom(type) //
- || EditPart.class.isAssignableFrom(type);
+ || EditPart.class.isAssignableFrom(type) //
+ || Command.class.isAssignableFrom(type) || org.eclipse.gef.commands.Command.class.isAssignableFrom(type) //
+ || IUndoableOperation.class.isAssignableFrom(type) || ICommand.class.isAssignableFrom(type);
}
//
diff --git a/tests/junit/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock.tests/src/org/eclipse/papyrus/sysml/diagram/internalblock/tests/utils/TestUtils.java b/tests/junit/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock.tests/src/org/eclipse/papyrus/sysml/diagram/internalblock/tests/utils/TestUtils.java
index 09300f8df8b..665df992cf6 100644
--- a/tests/junit/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock.tests/src/org/eclipse/papyrus/sysml/diagram/internalblock/tests/utils/TestUtils.java
+++ b/tests/junit/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock.tests/src/org/eclipse/papyrus/sysml/diagram/internalblock/tests/utils/TestUtils.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2012 CEA LIST.
+ * Copyright (c) 2012, 2014 CEA LIST and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -8,7 +8,8 @@
*
* Contributors:
*
- * CEA LIST - Initial API and implementation
+ * CEA LIST - Initial API and implementation
+ * Christian W. Damus (CEA) - bug 436047
*
*****************************************************************************/
package org.eclipse.papyrus.sysml.diagram.internalblock.tests.utils;
@@ -23,7 +24,6 @@ import static org.junit.Assert.fail;
import java.lang.reflect.Field;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -64,7 +64,6 @@ import org.eclipse.jface.commands.ActionHandler;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.papyrus.commands.wrappers.GEFtoEMFCommandWrapper;
import org.eclipse.papyrus.infra.gmfdiag.common.commands.SelectAndExecuteCommand;
import org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils;
import org.eclipse.papyrus.infra.services.edit.service.IElementEditService;
@@ -724,25 +723,29 @@ public class TestUtils {
}
};
history.addOperationHistoryListener(historyChange);
- // Test execution
- historyEventType = OperationHistoryEvent.DONE;
- EditorUtils.getDiagramCommandStack().execute(command);
- if(historyEventType == OperationHistoryEvent.OPERATION_NOT_OK) {
- fail("Command execution failed ()");
- }
- // Test undo
- historyEventType = OperationHistoryEvent.DONE;
- EditorUtils.getDiagramCommandStack().undo();
- if(historyEventType == OperationHistoryEvent.OPERATION_NOT_OK) {
- fail("Command undo failed ()");
- }
- // Test redo
- historyEventType = OperationHistoryEvent.DONE;
- EditorUtils.getDiagramCommandStack().redo();
- if(historyEventType == OperationHistoryEvent.OPERATION_NOT_OK) {
- fail("Command redo failed ()");
+
+ try {
+ // Test execution
+ historyEventType = OperationHistoryEvent.DONE;
+ EditorUtils.getDiagramCommandStack().execute(command);
+ if(historyEventType == OperationHistoryEvent.OPERATION_NOT_OK) {
+ fail("Command execution failed ()");
+ }
+ // Test undo
+ historyEventType = OperationHistoryEvent.DONE;
+ EditorUtils.getDiagramCommandStack().undo();
+ if(historyEventType == OperationHistoryEvent.OPERATION_NOT_OK) {
+ fail("Command undo failed ()");
+ }
+ // Test redo
+ historyEventType = OperationHistoryEvent.DONE;
+ EditorUtils.getDiagramCommandStack().redo();
+ if(historyEventType == OperationHistoryEvent.OPERATION_NOT_OK) {
+ fail("Command redo failed ()");
+ }
+ } finally {
+ // Remove listener.
+ history.removeOperationHistoryListener(historyChange);
}
- // Remove listener.
- history.removeOperationHistoryListener(historyChange);
}
} \ No newline at end of file
diff --git a/tests/junit/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric.tests/src/org/eclipse/papyrus/sysml/diagram/parametric/tests/utils/TestUtils.java b/tests/junit/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric.tests/src/org/eclipse/papyrus/sysml/diagram/parametric/tests/utils/TestUtils.java
index 60b2279bdb4..48e84d9e03f 100644
--- a/tests/junit/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric.tests/src/org/eclipse/papyrus/sysml/diagram/parametric/tests/utils/TestUtils.java
+++ b/tests/junit/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric.tests/src/org/eclipse/papyrus/sysml/diagram/parametric/tests/utils/TestUtils.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2012 CEA LIST.
+ * Copyright (c) 2012, 2014 CEA LIST and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -8,7 +8,8 @@
*
* Contributors:
*
- * CEA LIST - Initial API and implementation
+ * CEA LIST - Initial API and implementation
+ * Christian W. Damus (CEA) - bug 436047
*
*****************************************************************************/
package org.eclipse.papyrus.sysml.diagram.parametric.tests.utils;
@@ -749,25 +750,29 @@ public class TestUtils {
}
};
history.addOperationHistoryListener(historyChange);
- // Test execution
- historyEventType = OperationHistoryEvent.DONE;
- EditorUtils.getCommandStack().execute(new GEFtoEMFCommandWrapper(command));
- if(historyEventType == OperationHistoryEvent.OPERATION_NOT_OK) {
- fail("Command execution failed ()");
- }
- // Test undo
- historyEventType = OperationHistoryEvent.DONE;
- EditorUtils.getCommandStack().undo();
- if(historyEventType == OperationHistoryEvent.OPERATION_NOT_OK) {
- fail("Command undo failed ()");
- }
- // Test redo
- historyEventType = OperationHistoryEvent.DONE;
- EditorUtils.getCommandStack().redo();
- if(historyEventType == OperationHistoryEvent.OPERATION_NOT_OK) {
- fail("Command redo failed ()");
+
+ try {
+ // Test execution
+ historyEventType = OperationHistoryEvent.DONE;
+ EditorUtils.getCommandStack().execute(new GEFtoEMFCommandWrapper(command));
+ if(historyEventType == OperationHistoryEvent.OPERATION_NOT_OK) {
+ fail("Command execution failed ()");
+ }
+ // Test undo
+ historyEventType = OperationHistoryEvent.DONE;
+ EditorUtils.getCommandStack().undo();
+ if(historyEventType == OperationHistoryEvent.OPERATION_NOT_OK) {
+ fail("Command undo failed ()");
+ }
+ // Test redo
+ historyEventType = OperationHistoryEvent.DONE;
+ EditorUtils.getCommandStack().redo();
+ if(historyEventType == OperationHistoryEvent.OPERATION_NOT_OK) {
+ fail("Command redo failed ()");
+ }
+ } finally {
+ // Remove listener.
+ history.removeOperationHistoryListener(historyChange);
}
- // Remove listener.
- history.removeOperationHistoryListener(historyChange);
}
}
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.diagram.stereotypeproperty.tests/src/org/eclipse/papyrus/diagram/stereotypeproperty/AbstractPapyrusTestCase.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.diagram.stereotypeproperty.tests/src/org/eclipse/papyrus/diagram/stereotypeproperty/AbstractPapyrusTestCase.java
index 5ca682bfc45..cf82d135568 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.diagram.stereotypeproperty.tests/src/org/eclipse/papyrus/diagram/stereotypeproperty/AbstractPapyrusTestCase.java
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.diagram.stereotypeproperty.tests/src/org/eclipse/papyrus/diagram/stereotypeproperty/AbstractPapyrusTestCase.java
@@ -9,15 +9,16 @@
* Contributors:
* CEA LIST - Initial API and implementation
* Christian W. Damus (CEA) - bug 434993
+ * Christian W. Damus (CEA) - bug 436047
*
*****************************************************************************/
package org.eclipse.papyrus.diagram.stereotypeproperty;
-import java.io.ByteArrayInputStream;
-
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.commands.ICreationCommand;
@@ -180,7 +181,10 @@ public abstract class AbstractPapyrusTestCase extends AbstractPapyrusTest {
}
if(!file.exists()) {
- file.create(new ByteArrayInputStream(new byte[0]), true, new NullProgressMonitor());
+ // Don't create a zero-byte file. Create an empty XMI document
+ Resource diResource = diResourceSet.createResource(URI.createPlatformResourceURI(file.getFullPath().toString(), true));
+ diResource.save(null);
+ diResource.unload();
diResourceSet.createsModels(file);
new CreateUMLModelCommand().createModel(this.diResourceSet);
ServicesRegistry registry = new ExtensionServicesRegistry(org.eclipse.papyrus.infra.core.Activator.PLUGIN_ID);
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.diagram.tests/src/org/eclipse/papyrus/diagram/tests/canonical/AbstractPapyrusTestCase.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.diagram.tests/src/org/eclipse/papyrus/diagram/tests/canonical/AbstractPapyrusTestCase.java
index 1e5bf113166..729ba1efd36 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.diagram.tests/src/org/eclipse/papyrus/diagram/tests/canonical/AbstractPapyrusTestCase.java
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.diagram.tests/src/org/eclipse/papyrus/diagram/tests/canonical/AbstractPapyrusTestCase.java
@@ -9,11 +9,11 @@
* Contributors:
* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr - Initial API and implementation
* Christian W. Damus (CEA) - bug 434993
+ * Christian W. Damus (CEA) - bug 436047
*
*****************************************************************************/
package org.eclipse.papyrus.diagram.tests.canonical;
-import java.io.ByteArrayInputStream;
import java.util.ArrayList;
import org.eclipse.core.commands.ExecutionException;
@@ -23,8 +23,10 @@ import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.transaction.RunnableWithResult;
import org.eclipse.gef.commands.Command;
import org.eclipse.gmf.runtime.common.core.command.CommandResult;
@@ -48,10 +50,7 @@ import org.eclipse.papyrus.uml.diagram.common.part.UmlGmfDiagramEditor;
import org.eclipse.papyrus.uml.diagram.profile.CreateProfileModelCommand;
import org.eclipse.papyrus.uml.tools.model.UmlModel;
import org.eclipse.papyrus.uml.tools.model.UmlUtils;
-import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.intro.IIntroPart;
import org.eclipse.uml2.uml.Element;
@@ -261,7 +260,10 @@ public abstract class AbstractPapyrusTestCase extends AbstractPapyrusTest {
file.delete(true, new NullProgressMonitor());
}
if(!file.exists()) {
- file.create(new ByteArrayInputStream(new byte[0]), true, new NullProgressMonitor());
+ // Don't create a zero-byte file. Create an empty XMI document
+ Resource diResource = diResourceSet.createResource(URI.createPlatformResourceURI(file.getFullPath().toString(), true));
+ diResource.save(null);
+ diResource.unload();
diResourceSet.createsModels(file);
if(!file.getName().endsWith(".profile.di")) {
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestAdvancedDragDrop_364696.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestAdvancedDragDrop_364696.java
index 76693d180fe..b7f0fa247f4 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestAdvancedDragDrop_364696.java
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestAdvancedDragDrop_364696.java
@@ -9,6 +9,7 @@
* Contributors:
* CEA LIST - Initial API and implementation
* Christian W. Damus (CEA) - bug 434993
+ * Christian W. Damus (CEA) - bug 436047
*
*****************************************************************************/
package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
@@ -23,6 +24,8 @@ import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.gef.GraphicalEditPart;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.commands.UnexecutableCommand;
@@ -85,7 +88,10 @@ public class TestAdvancedDragDrop_364696 extends TestTopNode {
}
if(!file.exists()) {
- file.create(new ByteArrayInputStream(new byte[0]), true, new NullProgressMonitor());
+ // Don't create a zero-byte file. Create an empty XMI document
+ Resource diResource = diResourceSet.createResource(URI.createPlatformResourceURI(file.getFullPath().toString(), true));
+ diResource.save(null);
+ diResource.unload();
diResourceSet.createsModels(file);
new CreateUMLModelCommand().createModel(this.diResourceSet);
ServicesRegistry registry = new ExtensionServicesRegistry(org.eclipse.papyrus.infra.core.Activator.PLUGIN_ID);
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDecompositionCombinedFragment_364813.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDecompositionCombinedFragment_364813.java
index 2830be8678b..d2986070ad7 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDecompositionCombinedFragment_364813.java
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDecompositionCombinedFragment_364813.java
@@ -10,6 +10,7 @@
* Contributors:
* CEA LIST - Initial API and implementation
* Christian W. Damus (CEA) - bug 434993
+ * Christian W. Damus (CEA) - bug 436047
*
*****************************************************************************/
package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
@@ -24,7 +25,9 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.commands.UnexecutableCommand;
import org.eclipse.gmf.runtime.common.core.command.ICommand;
@@ -100,7 +103,10 @@ public class TestDecompositionCombinedFragment_364813 extends TestTopNode {
}
if(!file.exists()) {
- file.create(new ByteArrayInputStream(new byte[0]), true, new NullProgressMonitor());
+ // Don't create a zero-byte file. Create an empty XMI document
+ Resource diResource = diResourceSet.createResource(URI.createPlatformResourceURI(file.getFullPath().toString(), true));
+ diResource.save(null);
+ diResource.unload();
diResourceSet.createsModels(file);
new CreateUMLModelCommand().createModel(this.diResourceSet);
ServicesRegistry registry = new ExtensionServicesRegistry(org.eclipse.papyrus.infra.core.Activator.PLUGIN_ID);
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDecompositionMove_364812.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDecompositionMove_364812.java
index 7084221f1a2..b9b9bfe63db 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDecompositionMove_364812.java
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDecompositionMove_364812.java
@@ -9,6 +9,7 @@
* Contributors:
* CEA LIST - Initial API and implementation
* Christian W. Damus (CEA) - bug 434993
+ * Christian W. Damus (CEA) - bug 436047
*
*****************************************************************************/
package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
@@ -26,7 +27,9 @@ import org.eclipse.draw2d.PositionConstants;
import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.commands.UnexecutableCommand;
import org.eclipse.gef.requests.ChangeBoundsRequest;
@@ -106,7 +109,10 @@ public class TestDecompositionMove_364812 extends TestTopNode {
}
if(!file.exists()) {
- file.create(new ByteArrayInputStream(new byte[0]), true, new NullProgressMonitor());
+ // Don't create a zero-byte file. Create an empty XMI document
+ Resource diResource = diResourceSet.createResource(URI.createPlatformResourceURI(file.getFullPath().toString(), true));
+ diResource.save(null);
+ diResource.unload();
diResourceSet.createsModels(file);
new CreateUMLModelCommand().createModel(this.diResourceSet);
ServicesRegistry registry = new ExtensionServicesRegistry(org.eclipse.papyrus.infra.core.Activator.PLUGIN_ID);
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestLifelineAutoResize_383723.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestLifelineAutoResize_383723.java
index 10020e3be1b..1e7d1fb9b98 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestLifelineAutoResize_383723.java
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestLifelineAutoResize_383723.java
@@ -9,6 +9,7 @@
* Contributors:
* CEA LIST - Initial API and implementation
* Christian W. Damus (CEA) - bug 434993
+ * Christian W. Damus (CEA) - bug 436047
*
*****************************************************************************/
package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
@@ -27,7 +28,9 @@ import org.eclipse.draw2d.RectangleFigure;
import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.emf.transaction.RollbackException;
import org.eclipse.emf.transaction.Transaction;
@@ -228,7 +231,10 @@ public class TestLifelineAutoResize_383723 extends TestTopNode {
}
if(!file.exists()) {
- file.create(new ByteArrayInputStream(new byte[0]), true, new NullProgressMonitor());
+ // Don't create a zero-byte file. Create an empty XMI document
+ Resource diResource = diResourceSet.createResource(URI.createPlatformResourceURI(file.getFullPath().toString(), true));
+ diResource.save(null);
+ diResource.unload();
diResourceSet.createsModels(file);
new CreateUMLModelCommand().createModel(this.diResourceSet);
ICreationCommand command = getDiagramCommandCreation();
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestLifelineLabelCustomize_383722.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestLifelineLabelCustomize_383722.java
index 3f021b30f0f..179e4cc4552 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestLifelineLabelCustomize_383722.java
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestLifelineLabelCustomize_383722.java
@@ -9,6 +9,7 @@
* Contributors:
* CEA LIST - Initial API and implementation
* Christian W. Damus (CEA) - bug 434993
+ * Christian W. Damus (CEA) - bug 436047
*
*****************************************************************************/
package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
@@ -23,9 +24,11 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EAnnotation;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.commands.UnexecutableCommand;
@@ -216,7 +219,10 @@ public class TestLifelineLabelCustomize_383722 extends TestTopNode {
}
if(!file.exists()) {
- file.create(new ByteArrayInputStream(new byte[0]), true, new NullProgressMonitor());
+ // Don't create a zero-byte file. Create an empty XMI document
+ Resource diResource = diResourceSet.createResource(URI.createPlatformResourceURI(file.getFullPath().toString(), true));
+ diResource.save(null);
+ diResource.unload();
diResourceSet.createsModels(file);
new CreateUMLModelCommand().createModel(this.diResourceSet);
ICreationCommand command = getDiagramCommandCreation();
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing.tests/src/org/eclipse/papyrus/uml/diagram/timing/tests/generic/AbstractPapyrusTestCase.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing.tests/src/org/eclipse/papyrus/uml/diagram/timing/tests/generic/AbstractPapyrusTestCase.java
index 23a9886134b..42a50338dca 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing.tests/src/org/eclipse/papyrus/uml/diagram/timing/tests/generic/AbstractPapyrusTestCase.java
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing.tests/src/org/eclipse/papyrus/uml/diagram/timing/tests/generic/AbstractPapyrusTestCase.java
@@ -10,6 +10,7 @@
* Contributors:
* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr - Initial API and implementation
* Christian W. Damus (CEA) - bug 434993
+ * Christian W. Damus (CEA) - bug 436047
*
*****************************************************************************/
package org.eclipse.papyrus.uml.diagram.timing.tests.generic;
@@ -20,7 +21,6 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import java.io.ByteArrayInputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
@@ -44,7 +44,9 @@ import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.gef.EditDomain;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.Request;
@@ -235,7 +237,10 @@ public abstract class AbstractPapyrusTestCase extends AbstractPapyrusTest {
}
if(!this.file.exists()) {
- this.file.create(new ByteArrayInputStream(new byte[0]), true, new NullProgressMonitor());
+ // Don't create a zero-byte file. Create an empty XMI document
+ Resource diResource = diResourceSet.createResource(URI.createPlatformResourceURI(file.getFullPath().toString(), true));
+ diResource.save(null);
+ diResource.unload();
this.diResourceSet.createsModels(this.file);
new CreateUMLModelCommand().createModel(this.diResourceSet);
ServicesRegistry registry = new ExtensionServicesRegistry(org.eclipse.papyrus.infra.core.Activator.PLUGIN_ID);

Back to the top