Fix NPE when trying create diagrams with null modelElement
Change-Id: I431faa1b0476daece3ce390cb65e6283accbae6c
Signed-off-by: Faycal Abka <faycal.abka@altran.com>
diff --git a/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/hyperlinkadapter/AbstractNewDiagramHyperlinkAdapter.java b/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/hyperlinkadapter/AbstractNewDiagramHyperlinkAdapter.java
index dca33c0..2f16326 100644
--- a/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/hyperlinkadapter/AbstractNewDiagramHyperlinkAdapter.java
+++ b/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/hyperlinkadapter/AbstractNewDiagramHyperlinkAdapter.java
@@ -50,16 +50,13 @@
*/
protected boolean createDiagram(final EObject project_p, final Session session_p) {
final boolean flag[] = { true };
- RecordingCommand cmd = new RecordingCommand(TransactionUtil.getEditingDomain(project_p)) {
- @Override
- protected void doExecute() {
- //
- EObject modelElement = project_p;
- // Precondition
- if (null == modelElement) {
- flag[0] = false;
- } else {
+ if (project_p != null && session_p != null) {
+ RecordingCommand cmd = new RecordingCommand(TransactionUtil.getEditingDomain(project_p)) {
+ @Override
+ protected void doExecute() {
+ //
+ EObject modelElement = project_p;
RepresentationDescription diagramRepresentation = getDiagramRepresentation(session_p, modelElement);
// Preconditions
if ((null == diagramRepresentation)
@@ -71,17 +68,18 @@
newDiagramAction.run();
}
}
-
- }
- };
- TransactionUtil.getEditingDomain(project_p).getCommandStack().execute(cmd);
+ };
+ TransactionUtil.getEditingDomain(project_p).getCommandStack().execute(cmd);
+ } else {
+ flag[0] = false;
+ }
return flag[0];
}
@Override
protected void linkPressed(HyperlinkEvent event_p, EObject root_p, Session session_p) {
- if (!createDiagram(root_p, session_p)) {
+ if (root_p != null && !createDiagram(root_p, session_p)) {
handleDiagramCreationError(event_p, root_p);
}
}