Bug 461558 - ArrayIndexOutOfBoundsException when selecting Completion
tab in ForEach activity. Also, updating of "Successful branches only"
checkbox is not handled correctly if an expression is cleared (i.e. set
to an empty string)
diff --git a/plugins/org.eclipse.bpel.ui.noEmbeddedEditors/src/org/eclipse/bpel/ui/properties/ForEachCompletionSection.java b/plugins/org.eclipse.bpel.ui.noEmbeddedEditors/src/org/eclipse/bpel/ui/properties/ForEachCompletionSection.java
index 9e319cc..de6a186 100644
--- a/plugins/org.eclipse.bpel.ui.noEmbeddedEditors/src/org/eclipse/bpel/ui/properties/ForEachCompletionSection.java
+++ b/plugins/org.eclipse.bpel.ui.noEmbeddedEditors/src/org/eclipse/bpel/ui/properties/ForEachCompletionSection.java
@@ -17,6 +17,8 @@
 import org.eclipse.bpel.model.Expression;
 import org.eclipse.bpel.model.ForEach;
 import org.eclipse.bpel.ui.expressions.IEditorConstants;
+import org.eclipse.bpel.ui.util.MultiObjectAdapter;
+import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
 
@@ -43,7 +45,7 @@
 	@Override
 	protected void addAllAdapters() {
 		super.addAllAdapters();
-		this.fAdapters[0].addToObject( getExpressionTarget() );
+//		this.fAdapters[0].addToObject( getExpressionTarget() );
 	}
 
 	/*
diff --git a/plugins/org.eclipse.bpel.ui.noEmbeddedEditors/src/org/eclipse/bpel/ui/properties/ForEachSuccessfulBranchesOnlySection.java b/plugins/org.eclipse.bpel.ui.noEmbeddedEditors/src/org/eclipse/bpel/ui/properties/ForEachSuccessfulBranchesOnlySection.java
index 55cf0cf..c9fced8 100644
--- a/plugins/org.eclipse.bpel.ui.noEmbeddedEditors/src/org/eclipse/bpel/ui/properties/ForEachSuccessfulBranchesOnlySection.java
+++ b/plugins/org.eclipse.bpel.ui.noEmbeddedEditors/src/org/eclipse/bpel/ui/properties/ForEachSuccessfulBranchesOnlySection.java
@@ -98,7 +98,13 @@
 		
 		ForEach input = getModel();
 		CompletionCondition completionCondition = input.getCompletionCondition();
-		if (completionCondition == null) {
+		Object body = null;
+		if (completionCondition!=null && completionCondition.getBranches()!=null) {
+			body = completionCondition.getBranches().getBody();
+			if (body instanceof String && ((String)body).isEmpty())
+				body = null;
+		}
+		if (body == null ) {
 			
 			fSuccessfulBranchesOnlyCheckbox.setEnabled(false);
 			fSuccessfulBranchesOnlyCheckbox.setSelection(false);