Null check
diff --git a/org.eclipse.epf.diagram.core/src/org/eclipse/epf/diagram/core/bridge/NodeAdapter.java b/org.eclipse.epf.diagram.core/src/org/eclipse/epf/diagram/core/bridge/NodeAdapter.java
index c4ecdfc..eef88f8 100644
--- a/org.eclipse.epf.diagram.core/src/org/eclipse/epf/diagram/core/bridge/NodeAdapter.java
+++ b/org.eclipse.epf.diagram.core/src/org/eclipse/epf/diagram/core/bridge/NodeAdapter.java
@@ -254,16 +254,16 @@
 		// so it will not create duplicate UMA data
 		//
 		NodeAdapter srcNodeAdapter = BridgeHelper.getNodeAdapter(srcNode);
-		boolean notify = srcNodeAdapter.notificationEnabled;
+		boolean notify = srcNodeAdapter != null ? srcNodeAdapter.notificationEnabled : false;
 		try {
-			srcNodeAdapter.notificationEnabled = false;
+			if(srcNodeAdapter != null) srcNodeAdapter.notificationEnabled = false;
 			ActivityEdge edge = UMLFactory.eINSTANCE.createControlFlow();
 			edge.setSource(srcNode);
 			edge.setTarget(getNode());
 			getDiagram().getEdges().add(edge);
 			return edge;
 		} finally {
-			srcNodeAdapter.notificationEnabled = notify;
+			if(srcNodeAdapter != null) srcNodeAdapter.notificationEnabled = notify;
 		}
 	}
 
@@ -275,16 +275,16 @@
 		// disable notification of targetNode before associate it with the link
 		// so it will not create duplicate UMA data
 		//
-		NodeAdapter nodeImpl = (NodeAdapter) targetNode;
-		boolean notify = nodeImpl.notificationEnabled;
+		NodeAdapter nodeAdapter = BridgeHelper.getNodeAdapter(targetNode);
+		boolean notify = nodeAdapter != null ? nodeAdapter.notificationEnabled : false;
 		try {
-			nodeImpl.notificationEnabled = false;
+			if(nodeAdapter != null) nodeAdapter.notificationEnabled = false;
 			ActivityEdge edge = getDiagram().createEdge("", UMLPackage.Literals.CONTROL_FLOW); //$NON-NLS-1$
 			edge.setSource(getNode());
 			edge.setTarget(targetNode);
 			return edge;
 		} finally {
-			nodeImpl.notificationEnabled = notify;
+			if(nodeAdapter != null) nodeAdapter.notificationEnabled = notify;
 		}
 	}
 	
diff --git a/org.eclipse.epf.diagram.core/src/org/eclipse/epf/diagram/core/bridge/WorkBreakdownElementNodeAdapter.java b/org.eclipse.epf.diagram.core/src/org/eclipse/epf/diagram/core/bridge/WorkBreakdownElementNodeAdapter.java
index 86a4a32..3e59160 100644
--- a/org.eclipse.epf.diagram.core/src/org/eclipse/epf/diagram/core/bridge/WorkBreakdownElementNodeAdapter.java
+++ b/org.eclipse.epf.diagram.core/src/org/eclipse/epf/diagram/core/bridge/WorkBreakdownElementNodeAdapter.java
@@ -103,14 +103,14 @@
 					link = (ActivityEdge)obj;
 				}
 				if(link != null && link.getSource() != null){
-					NodeAdapter sourceNode = BridgeHelper.getNodeAdapter(link.getSource());
-					boolean oldNotify1 = sourceNode.notificationEnabled;
+					NodeAdapter sourceNodeAdapter = BridgeHelper.getNodeAdapter(link.getSource());
+					boolean oldNotify1 = sourceNodeAdapter != null ? sourceNodeAdapter.notificationEnabled : false;
 					try {
-						sourceNode.notificationEnabled = false;
+						if(sourceNodeAdapter != null) sourceNodeAdapter.notificationEnabled = false;
 						link.setTarget(null);
 						getNode().getIncomings().remove(link);
 					} finally {
-						sourceNode.notificationEnabled = oldNotify1;
+						if(sourceNodeAdapter != null) sourceNodeAdapter.notificationEnabled = oldNotify1;
 					}
 				}
 			}
@@ -122,14 +122,14 @@
 					link = (ActivityEdge)obj;
 				}
 				if(link != null && link.getTarget() != null){
-					NodeAdapter sourceNode = BridgeHelper.getNodeAdapter(link.getTarget());
-					boolean oldNotify1 = sourceNode.notificationEnabled;
+					NodeAdapter nodeAdapter = BridgeHelper.getNodeAdapter(link.getTarget());
+					boolean oldNotify1 = nodeAdapter != null ? nodeAdapter.notificationEnabled : false;
 					try {
-						sourceNode.notificationEnabled = false;
+						if(nodeAdapter != null) nodeAdapter.notificationEnabled = false;
 						link.setSource(null);
 						getNode().getIncomings().remove(link);
 					} finally {
-						sourceNode.notificationEnabled = oldNotify1;
+						if(nodeAdapter != null) nodeAdapter.notificationEnabled = oldNotify1;
 					}
 				}
 			}
@@ -165,14 +165,16 @@
 			WorkBreakdownElement succ = (WorkBreakdownElement) BridgeHelper.getMethodElement(link.getTarget());
 			WorkBreakdownElement pred = (WorkBreakdownElement) e;
 			if (UmaUtil.findWorkOrder(succ, pred) == null) {
-				NodeAdapter sourceNodeAdapter = BridgeHelper.getNodeAdapter(link.getSource());				
-				boolean sourceNotify = sourceNodeAdapter.notificationEnabled;
+				NodeAdapter sourceNodeAdapter = BridgeHelper.getNodeAdapter(link.getSource());	
+				// node adapter can be NULL if the node is not currently visible in the diagram
+				//
+				boolean sourceNotify = sourceNodeAdapter != null ? sourceNodeAdapter.notificationEnabled : false;
 				try {
-					sourceNodeAdapter.notificationEnabled = false;
+					if(sourceNodeAdapter != null) sourceNodeAdapter.notificationEnabled = false;
 					//Create a workorder and disable notification flag.
 					order = addDefaultWorkOrder(link.getTarget(), pred);
 				} finally {
-					sourceNodeAdapter.notificationEnabled = sourceNotify;
+					if(sourceNodeAdapter != null) sourceNodeAdapter.notificationEnabled = sourceNotify;
 				}
 			}
 
@@ -241,20 +243,18 @@
 		// look for the incoming connection with source as linked object of the
 		// source node
 		//
-		for (Iterator iter = getNode().getIncomings().iterator(); iter
-				.hasNext();) {
-			ActivityEdge link = (ActivityEdge) iter.next();
+		for (ActivityEdge link : getNode().getIncomings()) {
 			if (link.getSource() != null
 					&& BridgeHelper.getMethodElement(link.getSource()) == source) {
 				// disable internal notification of the source node
 				//
-				NodeAdapter sourceNode = BridgeHelper.getNodeAdapter(link.getSource());
-				boolean oldNotify = sourceNode.notificationEnabled;
+				NodeAdapter nodeAdapter = BridgeHelper.getNodeAdapter(link.getSource());
+				boolean oldNotify = nodeAdapter != null ? nodeAdapter.notificationEnabled : false;
 				try {
-					sourceNode.notificationEnabled = false;
+					if(nodeAdapter != null) nodeAdapter.notificationEnabled = false;
 					link.setSource(null);
 				} finally {
-					sourceNode.notificationEnabled = oldNotify;
+					if(nodeAdapter != null) nodeAdapter.notificationEnabled = oldNotify;
 				}
 				link.setTarget(null);
 				BridgeHelper.setSemanticModel(link, null);