Bug 468058 - NPE thrown when creating Join Condition expression for
ForEach activity
diff --git a/plugins/org.eclipse.bpel.ui.noEmbeddedEditors/src/org/eclipse/bpel/ui/properties/AbstractStyledTextExpressionSection.java b/plugins/org.eclipse.bpel.ui.noEmbeddedEditors/src/org/eclipse/bpel/ui/properties/AbstractStyledTextExpressionSection.java
index e3a9687..6d48d09 100644
--- a/plugins/org.eclipse.bpel.ui.noEmbeddedEditors/src/org/eclipse/bpel/ui/properties/AbstractStyledTextExpressionSection.java
+++ b/plugins/org.eclipse.bpel.ui.noEmbeddedEditors/src/org/eclipse/bpel/ui/properties/AbstractStyledTextExpressionSection.java
@@ -244,6 +244,9 @@
 
 		if( this.modelUpdate.get())
 			return;
+		
+		if (getExpressionTarget()==null)
+			return;
 
 		CompoundCommand result = new CompoundCommand();
 		Expression exp = BPELFactory.eINSTANCE.createCondition();
diff --git a/plugins/org.eclipse.bpel.ui.noEmbeddedEditors/src/org/eclipse/bpel/ui/properties/JoinConditionSection.java b/plugins/org.eclipse.bpel.ui.noEmbeddedEditors/src/org/eclipse/bpel/ui/properties/JoinConditionSection.java
index b2b0cf2..665de0b 100644
--- a/plugins/org.eclipse.bpel.ui.noEmbeddedEditors/src/org/eclipse/bpel/ui/properties/JoinConditionSection.java
+++ b/plugins/org.eclipse.bpel.ui.noEmbeddedEditors/src/org/eclipse/bpel/ui/properties/JoinConditionSection.java
@@ -11,6 +11,7 @@
 package org.eclipse.bpel.ui.properties;
 
 import org.eclipse.bpel.model.Activity;
+import org.eclipse.bpel.model.BPELFactory;
 import org.eclipse.bpel.model.BPELPackage;
 import org.eclipse.bpel.model.Targets;
 import org.eclipse.bpel.ui.expressions.IEditorConstants;
@@ -26,21 +27,6 @@
 	/*
 	 * (non-Javadoc)
 	 * @see org.eclipse.bpel.ui.properties.ExpressionSection
-	 * #addAllAdapters()
-	 */
-	@Override
-	protected void addAllAdapters() {
-		super.addAllAdapters();
-
-		Activity activity = getModel();
-		Targets targets = activity.getTargets();
-		if( targets != null )
-			this.fAdapters[0].addToObject( targets );
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.bpel.ui.properties.ExpressionSection
 	 * #getExpressionType()
 	 */
 	@Override
@@ -59,6 +45,20 @@
 		return activity.getTargets();
 	}
 
+	@Override
+	protected void saveExpressionToModel() {
+
+		if( this.modelUpdate.get())
+			return;
+		
+		if (getExpressionTarget()==null) {
+			Targets targets = BPELFactory.eINSTANCE.createTargets();
+			Activity activity = getModel();
+			activity.setTargets(targets);
+		}
+		super.saveExpressionToModel();
+	}
+
 	/*
 	 * (non-Javadoc)
 	 * @see org.eclipse.bpel.ui.properties.ExpressionSection