Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxime Porhel2015-09-11 14:50:48 +0000
committerPierre-Charles David2015-09-14 09:50:03 +0000
commitd5fdd89eb12714b0a0d1ccb73a54daa3065b45a7 (patch)
tree39c446314286971402dd4a73bf1a227e214a6ddb
parent5f188ca0be9ec00fe810360d29fbeb8d3b9ba253 (diff)
downloadorg.eclipse.sirius-d5fdd89eb12714b0a0d1ccb73a54daa3065b45a7.tar.gz
org.eclipse.sirius-d5fdd89eb12714b0a0d1ccb73a54daa3065b45a7.tar.xz
org.eclipse.sirius-d5fdd89eb12714b0a0d1ccb73a54daa3065b45a7.zip
[477208] Avoid NPE when a part without semantic element is selected
This can occurs at least with Note, Text and NoteAttachment edit parts. This has been discovered during reproduction attempt with a Note on the diagram. Bug: 477208 Change-Id: I4e175fdb4996ad00c484c64650f3075f7230bffe Signed-off-by: Maxime Porhel <maxime.porhel@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/util/EditPartQuery.java17
1 files changed, 11 insertions, 6 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/util/EditPartQuery.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/util/EditPartQuery.java
index 24c6e4a5e3..f4590ac30a 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/util/EditPartQuery.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/util/EditPartQuery.java
@@ -234,14 +234,19 @@ public class EditPartQuery {
*/
public boolean isFreeFormContainerChildrenPresentation() {
boolean isFreeForm = true;
- EObject eContainer = part.resolveSemanticElement().eContainer();
- if (eContainer instanceof DNodeList) {
+ EObject semElt = part.resolveSemanticElement();
+ if (semElt == null) {
isFreeForm = false;
- } else if (eContainer instanceof DNodeContainer) {
- DNodeContainer container = (DNodeContainer) eContainer;
- ContainerLayout childrenPresentation = container.getChildrenPresentation();
- if (!childrenPresentation.equals(ContainerLayout.FREE_FORM)) {
+ } else {
+ EObject eContainer = semElt.eContainer();
+ if (eContainer instanceof DNodeList) {
isFreeForm = false;
+ } else if (eContainer instanceof DNodeContainer) {
+ DNodeContainer container = (DNodeContainer) eContainer;
+ ContainerLayout childrenPresentation = container.getChildrenPresentation();
+ if (!childrenPresentation.equals(ContainerLayout.FREE_FORM)) {
+ isFreeForm = false;
+ }
}
}
return isFreeForm;

Back to the top