diff options
author | cletavernie | 2013-07-04 17:49:00 +0000 |
---|---|---|
committer | cletavernie | 2013-07-04 17:49:00 +0000 |
commit | c3dddf021c375f9f4898d7ffa76fcdb4f48f2642 (patch) | |
tree | f3508e5b3269ff27c6c14b5f82ae25329baa2f42 /plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/src | |
parent | 518cb38bbfdbbb7472983ee2665d4196a77306f9 (diff) | |
download | org.eclipse.papyrus-c3dddf021c375f9f4898d7ffa76fcdb4f48f2642.tar.gz org.eclipse.papyrus-c3dddf021c375f9f4898d7ffa76fcdb4f48f2642.tar.xz org.eclipse.papyrus-c3dddf021c375f9f4898d7ffa76fcdb4f48f2642.zip |
401502: [Commands] Class cast exception in DestroyElementPapyrusCommand
https://bugs.eclipse.org/bugs/show_bug.cgi?id=401502
Diffstat (limited to 'plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/src')
-rw-r--r-- | plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/src/org/eclipse/papyrus/commands/DestroyElementPapyrusCommand.java | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/src/org/eclipse/papyrus/commands/DestroyElementPapyrusCommand.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/src/org/eclipse/papyrus/commands/DestroyElementPapyrusCommand.java index 9fcc727a82c..8881ac99bf8 100644 --- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/src/org/eclipse/papyrus/commands/DestroyElementPapyrusCommand.java +++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/src/org/eclipse/papyrus/commands/DestroyElementPapyrusCommand.java @@ -53,11 +53,13 @@ public class DestroyElementPapyrusCommand extends DestroyElementCommand { Collection<Setting> usages = EMFHelper.getUsages(destructee);
List<Object> result = new ArrayList<Object>();
for(Setting setting : usages) {
- EReference eRef = (EReference)setting.getEStructuralFeature();
- if(eRef.isChangeable() && (eRef.isDerived() == false) && (eRef.isContainment() == false) && (eRef.isContainer() == false)) {
- List files = getWorkspaceFiles(setting.getEObject());
- if(files != null) {
- result.addAll(files);
+ if(setting.getEStructuralFeature() instanceof EReference) {
+ EReference eRef = (EReference)setting.getEStructuralFeature();
+ if(eRef.isChangeable() && (eRef.isDerived() == false) && (eRef.isContainment() == false) && (eRef.isContainer() == false)) {
+ List files = getWorkspaceFiles(setting.getEObject());
+ if(files != null) {
+ result.addAll(files);
+ }
}
}
}
@@ -71,9 +73,11 @@ public class DestroyElementPapyrusCommand extends DestroyElementCommand { Collection<Setting> usages = EMFHelper.getUsages(destructee);
for(Setting setting : usages) {
- EReference eRef = (EReference)setting.getEStructuralFeature();
- if(eRef.isChangeable() && (eRef.isDerived() == false) && (eRef.isContainment() == false) && (eRef.isContainer() == false)) {
- EcoreUtil.remove(setting.getEObject(), eRef, destructee);
+ if(setting.getEStructuralFeature() instanceof EReference) {
+ EReference eRef = (EReference)setting.getEStructuralFeature();
+ if(eRef.isChangeable() && (eRef.isDerived() == false) && (eRef.isContainment() == false) && (eRef.isContainer() == false)) {
+ EcoreUtil.remove(setting.getEObject(), eRef, destructee);
+ }
}
}
}
|