Bug 548923 - Use jdk 5 for-each loop

Replace simple uses of Iterator with a corresponding for-loop. Also add
missing braces on loops as necessary.

The save action on some projects enforces to convert control statement
bodies to block.

Change-Id: Ic70823a072614d3d5683903b710e094f8e43b3eb
Signed-off-by: Carsten Hammer <carsten.hammer@t-online.de>
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/EvaluationResult.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/EvaluationResult.java
index 87dd2fa..581b138 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/EvaluationResult.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/EvaluationResult.java
@@ -14,7 +14,6 @@
 package org.eclipse.jdt.internal.debug.eval;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
 import org.eclipse.debug.core.DebugException;
@@ -113,8 +112,8 @@
 	public Message[] getErrors() {
 		Message[] messages = new Message[fErrors.size()];
 		int i = 0;
-		for (Iterator<String> iter = fErrors.iterator(); iter.hasNext();) {
-			messages[i++] = new Message(iter.next(), -1);
+		for (String errMsg : fErrors) {
+			messages[i++] = new Message(errMsg, -1);
 		}
 		return messages;
 	}
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java
index 7a50653..6046616 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java
@@ -341,8 +341,7 @@
 				}
 			}
 			// Adding outer class variables to inner class scope
-			for (int i = 0; i < innerClassFields.length; i++) {
-				IVariable var = innerClassFields[i];
+			for (IVariable var : innerClassFields) {
 				if (var instanceof IJavaVariable && var.getName().startsWith(ANONYMOUS_VAR_PREFIX)) {
 					String name = var.getName().substring(ANONYMOUS_VAR_PREFIX.length());
 					if (!names.contains(name)) {
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTInstructionCompiler.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTInstructionCompiler.java
index 4cd2d89..e332112 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTInstructionCompiler.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTInstructionCompiler.java
@@ -4132,17 +4132,15 @@
 			storeInstruction(); // jump
 		}
 
-		for (Iterator<slot> iter = jumpsStatements.iterator(); iter.hasNext();) {
-			currentslot = iter.next();
-			for (Iterator<ConditionalJump> iterator = currentslot.jumps.iterator(); iterator.hasNext();) {
-				ConditionalJump condJump = iterator.next();
+		for (slot slot : jumpsStatements) {
+			for (ConditionalJump condJump : slot.jumps) {
 				condJump.setOffset((fCounter - fInstructions.indexOf(condJump)) - 1);
 			}
 			if (currentslot.stmts != null) {
 				push(new Pop(0));
 				storeInstruction(); // pop
-				for (Iterator<Statement> iterator = currentslot.stmts.iterator(); iterator.hasNext();) {
-					iterator.next().accept(this);
+				for (Statement statement : currentslot.stmts) {
+					statement.accept(this);
 				}
 			}
 		}
@@ -4152,8 +4150,8 @@
 			jumpDefault.setOffset((fCounter - fInstructions.indexOf(jumpDefault)) - 1);
 			push(new Pop(0));
 			storeInstruction(); // pop
-			for (Iterator<Statement> iterator = statementsDefault.iterator(); iterator.hasNext();) {
-				iterator.next().accept(this);
+			for (Statement statement : statementsDefault) {
+				statement.accept(this);
 			}
 		} else if(jumpEnd != null){
 			jumpEnd.setOffset((fCounter - fInstructions.indexOf(jumpEnd)) - 1);
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/BinaryBasedSourceGenerator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/BinaryBasedSourceGenerator.java
index 2a17e34..a91e07d 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/BinaryBasedSourceGenerator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/BinaryBasedSourceGenerator.java
@@ -152,9 +152,7 @@
 
 		Field thisField = null;
 
-		List<Field> fields = referenceType.visibleFields();
-		for (Iterator<Field> iterator = fields.iterator(); iterator.hasNext();) {
-			Field field = iterator.next();
+		for (Field field : referenceType.visibleFields()) {
 			if (field.name().startsWith("this$")) { //$NON-NLS-1$
 				thisField = field;
 				break;
@@ -330,39 +328,33 @@
 			source.append(buffer);
 		}
 
-		List<Field> fields = referenceType.fields();
-		for (Iterator<Field> iterator = fields.iterator(); iterator.hasNext();) {
-			Field field = iterator.next();
+		for (Field field : referenceType.fields()) {
 			if (!field.name().startsWith("this$")) { //$NON-NLS-1$
 				source.append(buildFieldDeclaration(field));
 			}
 		}
 
-		List<Method> methods = referenceType.methods();
-		for (Iterator<Method> iterator = methods.iterator(); iterator.hasNext();) {
-			Method method = iterator.next();
+		for (Method method : referenceType.methods()) {
 			if (!method.isConstructor() && !method.isStaticInitializer()
-					&& !method.isBridge()) {
+				&& !method.isBridge()) {
 				source.append(buildMethodDeclaration(method));
 			}
 		}
 
 		List<ReferenceType> nestedTypes = referenceType.nestedTypes();
 		if (nestedTypeName == null) {
-			for (Iterator<ReferenceType> iterator = nestedTypes.iterator(); iterator.hasNext();) {
-				ReferenceType nestedType = iterator.next();
+			for (ReferenceType nestedType : nestedTypes) {
 				if (isADirectInnerType(typeName, nestedType.name())) {
 					source.append(buildTypeDeclaration(nestedType, null, null,
-							true));
+						true));
 				}
 			}
 		} else {
-			for (Iterator<ReferenceType> iterator = nestedTypes.iterator(); iterator.hasNext();) {
-				ReferenceType nestedType = iterator.next();
+			for (ReferenceType nestedType : nestedTypes) {
 				if (!nestedTypeName.equals(nestedType.name())
-						&& isADirectInnerType(typeName, nestedType.name())) {
+					&& isADirectInnerType(typeName, nestedType.name())) {
 					source.append(buildTypeDeclaration(nestedType, null, null,
-							true));
+						true));
 				}
 			}
 		}
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationSourceGenerator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationSourceGenerator.java
index 0685c85..3146f70 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationSourceGenerator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationSourceGenerator.java
@@ -14,7 +14,6 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.eval.ast.engine;
 
-import java.util.Iterator;
 import java.util.Map;
 
 import org.eclipse.core.runtime.CoreException;
@@ -315,8 +314,7 @@
 	 */
 	public static Map<String, String> getCompilerOptions(IJavaProject project) {
 		Map<String, String> options = project.getOptions(true);
-		for (Iterator<String> iter = options.keySet().iterator(); iter.hasNext();) {
-			String key = iter.next();
+		for (String key : options.keySet()) {
 			String value = options.get(key);
 			if (JavaCore.ERROR.equals(value) || JavaCore.WARNING.equals(value) || JavaCore.INFO.equals(value)) {
 				options.put(key, JavaCore.IGNORE);
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SourceBasedSourceGenerator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SourceBasedSourceGenerator.java
index cffaf52..4b89662 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SourceBasedSourceGenerator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SourceBasedSourceGenerator.java
@@ -427,8 +427,7 @@
 			fSnippetStartPosition += source.length();
 			source.append(buffer.toString());
 		}
-		for (Iterator<BodyDeclaration> iterator = list.iterator(); iterator.hasNext();) {
-			BodyDeclaration bodyDeclaration = iterator.next();
+		for (BodyDeclaration bodyDeclaration : list) {
 			if (bodyDeclaration instanceof FieldDeclaration) {
 				source.append(buildFieldDeclaration((FieldDeclaration) bodyDeclaration));
 			} else if (bodyDeclaration instanceof MethodDeclaration) {
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/InstructionSequence.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/InstructionSequence.java
index a80f7a0..3de2379 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/InstructionSequence.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/InstructionSequence.java
@@ -14,7 +14,6 @@
 package org.eclipse.jdt.internal.debug.eval.ast.instructions;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
 import org.eclipse.core.runtime.CoreException;
@@ -79,8 +78,8 @@
 	public Message[] getErrors() {
 		Message[] messages = new Message[fErrors.size()];
 		int i = 0;
-		for (Iterator<String> iter = fErrors.iterator(); iter.hasNext();) {
-			messages[i++] = new Message(iter.next(), -1);
+		for (String errorMsg : fErrors) {
+			messages[i++] = new Message(errorMsg, -1);
 		}
 		return messages;
 	}
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RuntimeSignature.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RuntimeSignature.java
index 02e5833..59d1493 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RuntimeSignature.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/RuntimeSignature.java
@@ -247,8 +247,8 @@
 
 			// parameter names
 			if(parameterNames != null) {
-				for (int i = 0; i < parameterNames.length; i++) {
-					resultLength += parameterNames[i].length + 1;
+				for (char[] parameterName : parameterNames) {
+					resultLength += parameterName.length + 1;
 					// parameter name + space
 				}
 			}
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MethodImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MethodImpl.java
index 90ead5b..835cb9e 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MethodImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MethodImpl.java
@@ -274,8 +274,9 @@
 		Iterator<LocalVariable> iter = variables().iterator();
 		while (iter.hasNext()) {
 			LocalVariable var = iter.next();
-			if (var.isArgument())
+			if (var.isArgument()) {
 				result.add(var);
+			}
 		}
 		fArguments = result;
 		return fArguments;
@@ -290,10 +291,9 @@
 		if (fArgumentTypeNames != null) {
 			return fArgumentTypeNames;
 		}
-		List<String> argumentTypeSignatures = argumentTypeSignatures();
 		List<String> result = new ArrayList<>();
-		for (Iterator<String> iter = argumentTypeSignatures.iterator(); iter.hasNext();) {
-			result.add(TypeImpl.signatureToName(iter.next()));
+		for (String signature : argumentTypeSignatures()) {
+			result.add(TypeImpl.signatureToName(signature));
 		}
 
 		fArgumentTypeNames = result;
@@ -394,15 +394,17 @@
 	 */
 	@Override
 	public int compareTo(Method method) {
-		if (method == null || !method.getClass().equals(this.getClass()))
+		if (method == null || !method.getClass().equals(this.getClass())) {
 			throw new ClassCastException(
 					JDIMessages.MethodImpl_Can__t_compare_method_to_given_object_6);
+		}
 
 		// See if declaring types are the same, if not return comparison between
 		// declaring types.
 		Method type2 = method;
-		if (!declaringType().equals(type2.declaringType()))
+		if (!declaringType().equals(type2.declaringType())) {
 			return declaringType().compareTo(type2.declaringType());
+		}
 
 		// Return comparison of position within declaring type.
 		int index1 = declaringType().methods().indexOf(this);
@@ -699,8 +701,9 @@
 		// See Location.
 		ReferenceTypeImpl referenceType = ReferenceTypeImpl.readWithTypeTag(
 				target, in);
-		if (referenceType == null)
+		if (referenceType == null) {
 			return null;
+		}
 
 		JdwpMethodID ID = new JdwpMethodID(vmImpl);
 		if (target.fVerboseWriter != null) {
@@ -877,16 +880,15 @@
 	 */
 	protected List<Location> javaStratumLocationsOfLines(List<Integer> javaLines)	throws AbsentInformationException {
 		Set<Long> tmpLocations = new TreeSet<>();
-		for (Iterator<Integer> iter = javaLines.iterator(); iter.hasNext();) {
-			Integer key = iter.next();
+		for (Integer key : javaLines) {
 			List<Long> indexes = javaStratumLineToCodeIndexes(key.intValue());
 			if (indexes != null) {
 				tmpLocations.addAll(indexes);
 			}
 		}
 		List<Location> locations = new ArrayList<>();
-		for (Iterator<Long> iter = tmpLocations.iterator(); iter.hasNext();) {
-			long index = iter.next().longValue();
+		for (Long location : tmpLocations) {
+			long index = location.longValue();
 			int position = Arrays.binarySearch(fCodeIndexTable, index);
 			if(position < 0) {
 				//https://bugs.eclipse.org/bugs/show_bug.cgi?id=388172
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ReferenceTypeImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ReferenceTypeImpl.java
index 77ac963..7d2b1ee 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ReferenceTypeImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ReferenceTypeImpl.java
@@ -158,8 +158,7 @@
 			List<Integer> list = new ArrayList<>();
 			List<int[]> outputLines = fLineInfo.get(new Integer(lineNumber));
 			if (outputLines != null) {
-				for (Iterator<int[]> iter = outputLines.iterator(); iter.hasNext();) {
-					int[] info = iter.next();
+				for (int[] info : outputLines) {
 					int outputLineNumber = info[0];
 					int length = info[1];
 					if (length == 0) {
@@ -282,8 +281,7 @@
 				throws AbsentInformationException {
 			FileInfo fileInfo = null;
 			// get the FileInfo object
-			for (Iterator<FileInfo> iter = fFileInfos.iterator(); iter.hasNext();) {
-				FileInfo element = iter.next();
+			for (FileInfo element : fFileInfos) {
 				if (element.fFileId == lineFileId) {
 					fileInfo = element;
 				}
@@ -333,8 +331,7 @@
 		 *            the source name to search.
 		 */
 		public FileInfo getFileInfo(String sourceName) {
-			for (Iterator<FileInfo> iter = fFileInfos.iterator(); iter.hasNext();) {
-				FileInfo fileInfo = iter.next();
+			for (FileInfo fileInfo : fFileInfos) {
 				if (fileInfo.fFileName.equals(sourceName)) {
 					return fileInfo;
 				}
@@ -583,8 +580,8 @@
 		List<Method> visibleMethods = new ArrayList<>();
 
 		// The methods of its own (own methods() command).
-		for (Iterator<Method> iter = methods().iterator(); iter.hasNext();) {
-			MethodImpl method = (MethodImpl) iter.next();
+		for (Method m : methods()) {
+			MethodImpl method = (MethodImpl) m;
 			namesAndSignatures.add(method.name() + method.signature());
 			visibleMethods.add(method);
 		}
@@ -1542,8 +1539,8 @@
 				throw new AbsentInformationException(
 						JDIMessages.ReferenceTypeImpl_30);
 			}
-			for (Iterator<FileInfo> iter = stratum.fFileInfos.iterator(); iter.hasNext();) {
-				list.add(iter.next().fFileName);
+			for (FileInfo fileInfo : stratum.fFileInfos) {
+				list.add(fileInfo.fFileName);
 			}
 			return list;
 		}
@@ -1564,8 +1561,7 @@
 		Stratum stratum = getStratum(stratumId);
 		if (stratum != null) {
 			// return the source paths defined for this stratum in the SMAP.
-			for (Iterator<FileInfo> iter = stratum.fFileInfos.iterator(); iter.hasNext();) {
-				FileInfo fileInfo = iter.next();
+			for (FileInfo fileInfo : stratum.fFileInfos) {
 				String path = fileInfo.fAbsoluteFileName;
 				if (path == null) {
 					path = getPath(fileInfo.fFileName);
@@ -1906,8 +1902,7 @@
 				fileId = lineInfos.get(0)[0];
 			}
 		}
-		for (Iterator<FileInfo> iter = stratum.fFileInfos.iterator(); iter.hasNext();) {
-			FileInfo fileInfo = iter.next();
+		for (FileInfo fileInfo : stratum.fFileInfos) {
 			if (fileInfo.fFileId == fileId) {
 				return fileInfo;
 			}
@@ -2088,8 +2083,7 @@
 				for (int i = 0, length = javaStratumLineNumberTable.length; i < length; i++) {
 					List<int[]> lineInfos = stratum.getInputLineInfos(javaStratumLineNumberTable[i]);
 					if (lineInfos != null) {
-						for (Iterator<int[]> iter = lineInfos.iterator(); iter.hasNext();) {
-							int[] lineInfo = iter.next();
+						for (int[] lineInfo : lineInfos) {
 							if (lineInfo[0] == fileId) {
 								if (!lineInfo.equals(lineInfoTable[lastIndex])) {
 									lineInfoTable[i] = lineInfo;
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ValueImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ValueImpl.java
index fc2137f..daadc80 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ValueImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ValueImpl.java
@@ -140,8 +140,9 @@
 			throws IOException {
 		JdwpObjectID nullID = new JdwpObjectID(target.virtualMachineImpl());
 		nullID.write(out);
-		if (target.fVerboseWriter != null)
+		if (target.fVerboseWriter != null) {
 			target.fVerboseWriter.println("objectReference", nullID.value()); //$NON-NLS-1$
+		}
 	}
 
 	/**
@@ -269,9 +270,8 @@
 						return;
 					}
 				} else {
-					List<InterfaceType> interfaces = ((ClassType) valueType).allInterfaces();
-					for (Iterator<InterfaceType> iter = interfaces.iterator(); iter.hasNext();) {
-						if (checkInterfaceType(iter.next(),
+					for (InterfaceType interfaceType : ((ClassType) valueType).allInterfaces()) {
+						if (checkInterfaceType(interfaceType,
 								(InterfaceType) type)) {
 							return;
 						}
@@ -291,9 +291,8 @@
 		if (valueType.equals(type)) {
 			return true;
 		}
-		List<InterfaceType> superInterfaces = valueType.superinterfaces();
-		for (Iterator<InterfaceType> iter = superInterfaces.iterator(); iter.hasNext();) {
-			if (checkInterfaceType(iter.next(), type)) {
+		for (InterfaceType interfaceType : valueType.superinterfaces()) {
+			if (checkInterfaceType(interfaceType, type)) {
 				return true;
 			}
 		}
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/EventRequestImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/EventRequestImpl.java
index 20a606e..347c2fc 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/EventRequestImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/request/EventRequestImpl.java
@@ -613,9 +613,7 @@
 		// communicating with SUN's VM.
 		// It seems to expect them 'the wrong way around'.
 		if (fThreadStepFilters != null) {
-			for (int i = 0; i < fThreadStepFilters.size(); i++) {
-				ThreadStepFilter filter = fThreadStepFilters
-						.get(i);
+			for (ThreadStepFilter filter : fThreadStepFilters) {
 				writeByte(MODIF_KIND_STEP,
 						"modifier", modifierKindMap(), outData); //$NON-NLS-1$
 				filter.fThread.write(this, outData);
@@ -626,17 +624,15 @@
 			}
 		}
 		if (fFieldFilters != null) {
-			for (int i = 0; i < fFieldFilters.size(); i++) {
+			for (FieldImpl field : fFieldFilters) {
 				writeByte(MODIF_KIND_FIELDONLY,
 						"modifier", modifierKindMap(), outData); //$NON-NLS-1$
-				fFieldFilters.get(i).writeWithReferenceType(this,
+				field.writeWithReferenceType(this,
 						outData);
 			}
 		}
 		if (fExceptionFilters != null) {
-			for (int i = 0; i < fExceptionFilters.size(); i++) {
-				ExceptionFilter filter = fExceptionFilters
-						.get(i);
+			for (ExceptionFilter filter : fExceptionFilters) {
 				writeByte(MODIF_KIND_EXCEPTIONONLY,
 						"modifier", modifierKindMap(), outData); //$NON-NLS-1$
 				if (filter.fException != null)
@@ -649,66 +645,66 @@
 			}
 		}
 		if (fLocationFilters != null) {
-			for (int i = 0; i < fLocationFilters.size(); i++) {
+			for (LocationImpl locationFilter : fLocationFilters) {
 				writeByte(MODIF_KIND_LOCATIONONLY,
 						"modifier", modifierKindMap(), outData); //$NON-NLS-1$
-				fLocationFilters.get(i).write(this, outData);
+				locationFilter.write(this, outData);
 			}
 		}
 		if (fClassExclusionFilters != null) {
-			for (int i = 0; i < fClassExclusionFilters.size(); i++) {
+			for (String classExclusionFilter : fClassExclusionFilters) {
 				writeByte(MODIF_KIND_CLASSEXCLUDE,
 						"modifier", modifierKindMap(), outData); //$NON-NLS-1$
-				writeString(fClassExclusionFilters.get(i),
+				writeString(classExclusionFilter,
 						"class excl. filter", outData); //$NON-NLS-1$
 			}
 		}
 		if (fClassFilters != null) {
-			for (int i = 0; i < fClassFilters.size(); i++) {
+			for (String classFilter : fClassFilters) {
 				writeByte(MODIF_KIND_CLASSMATCH,
 						"modifier", modifierKindMap(), outData); //$NON-NLS-1$
-				writeString(fClassFilters.get(i),
+				writeString(classFilter,
 						"class filter", outData); //$NON-NLS-1$
 			}
 		}
 		if (fClassFilterRefs != null) {
-			for (int i = 0; i < fClassFilterRefs.size(); i++) {
+			for (ReferenceType classFilterRef : fClassFilterRefs) {
 				writeByte(MODIF_KIND_CLASSONLY,
 						"modifier", modifierKindMap(), outData); //$NON-NLS-1$
-				((ReferenceTypeImpl) fClassFilterRefs.get(i)).write(this,
+				((ReferenceTypeImpl) classFilterRef).write(this,
 						outData);
 			}
 		}
 		if (fThreadFilters != null) {
-			for (int i = 0; i < fThreadFilters.size(); i++) {
+			for (ThreadReference threadFilter : fThreadFilters) {
 				writeByte(MODIF_KIND_THREADONLY,
 						"modifier", modifierKindMap(), outData); //$NON-NLS-1$
-				((ThreadReferenceImpl) fThreadFilters.get(i)).write(this,
+				((ThreadReferenceImpl) threadFilter).write(this,
 						outData);
 			}
 		}
 		if (fCountFilters != null) {
-			for (int i = 0; i < fCountFilters.size(); i++) {
+			for (Integer countFilter : fCountFilters) {
 				writeByte(MODIF_KIND_COUNT,
 						"modifier", modifierKindMap(), outData); //$NON-NLS-1$
-				writeInt(fCountFilters.get(i).intValue(),
+				writeInt(countFilter.intValue(),
 						"count filter", outData); //$NON-NLS-1$
 			}
 		}
 		if (fInstanceFilters != null) {
-			for (int i = 0; i < fInstanceFilters.size(); i++) {
+			for (ObjectReference instanceFilter : fInstanceFilters) {
 				writeByte(MODIF_KIND_INSTANCE,
 						"modifier", modifierKindMap(), outData); //$NON-NLS-1$
-				((ObjectReferenceImpl) fInstanceFilters.get(i)).write(this,
+				((ObjectReferenceImpl) instanceFilter).write(this,
 						outData);
 			}
 		}
 		if (fSourceNameFilters != null) {
 			if (supportsSourceNameFilters()) {
-				for (int i = 0; i < fSourceNameFilters.size(); i++) {
+				for (String sourceNameFilter : fSourceNameFilters) {
 					writeByte(MODIF_KIND_SOURCE_NAME_FILTER,
 							"modifier", modifierKindMap(), outData); //$NON-NLS-1$
-					writeString(fSourceNameFilters.get(i),
+					writeString(sourceNameFilter,
 							"modifier", outData); //$NON-NLS-1$
 				}
 			}
@@ -732,13 +728,11 @@
 		if (fStepSizeMap != null)
 			return;
 
-		java.lang.reflect.Field[] fields = EventRequestImpl.class
-				.getDeclaredFields();
 		fStepSizeMap = new HashMap<>();
 		fStepDepthMap = new HashMap<>();
 		fSuspendPolicyMap = new HashMap<>();
 		fModifierKindMap = new HashMap<>();
-		for (Field field : fields) {
+		for (Field field : EventRequestImpl.class.getDeclaredFields()) {
 			if ((field.getModifiers() & java.lang.reflect.Modifier.PUBLIC) == 0
 					|| (field.getModifiers() & java.lang.reflect.Modifier.STATIC) == 0
 					|| (field.getModifiers() & java.lang.reflect.Modifier.FINAL) == 0)
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/JDIDebugModel.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/JDIDebugModel.java
index d60d947..97aadd6 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/JDIDebugModel.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/JDIDebugModel.java
@@ -847,15 +847,14 @@
 		String markerType = JavaLineBreakpoint.getMarkerType();
 		IBreakpointManager manager = DebugPlugin.getDefault()
 				.getBreakpointManager();
-		IBreakpoint[] breakpoints = manager.getBreakpoints(modelId);
-		for (int i = 0; i < breakpoints.length; i++) {
-			if (!(breakpoints[i] instanceof IJavaLineBreakpoint)) {
+		for (IBreakpoint bp : manager.getBreakpoints(modelId)) {
+			if (!(bp instanceof IJavaLineBreakpoint)) {
 				continue;
 			}
-			IJavaLineBreakpoint breakpoint = (IJavaLineBreakpoint) breakpoints[i];
+			IJavaLineBreakpoint breakpoint = (IJavaLineBreakpoint) bp;
 			IMarker marker = breakpoint.getMarker();
 			if (marker != null && marker.exists()
-					&& marker.getType().equals(markerType)) {
+				&& marker.getType().equals(markerType)) {
 				String breakpointTypeName = breakpoint.getTypeName();
 				if (JavaDebugUtils.typeNamesEqual(breakpointTypeName, typeName) || (breakpointTypeName != null && breakpointTypeName.startsWith(typeName + '$'))) {
 					if (breakpoint.getLineNumber() == lineNumber) {
@@ -893,19 +892,18 @@
 		String markerType = JavaLineBreakpoint.getMarkerType();
 		IBreakpointManager manager = DebugPlugin.getDefault()
 				.getBreakpointManager();
-		IBreakpoint[] breakpoints = manager.getBreakpoints(modelId);
-		for (int i = 0; i < breakpoints.length; i++) {
-			if (!(breakpoints[i] instanceof IJavaLineBreakpoint)) {
+		for (IBreakpoint bp : manager.getBreakpoints(modelId)) {
+			if (!(bp instanceof IJavaLineBreakpoint)) {
 				continue;
 			}
-			IJavaLineBreakpoint breakpoint = (IJavaLineBreakpoint) breakpoints[i];
+			IJavaLineBreakpoint breakpoint = (IJavaLineBreakpoint) bp;
 			IMarker marker = breakpoint.getMarker();
 			if (marker != null && marker.exists()
-					&& marker.getType().equals(markerType)) {
+				&& marker.getType().equals(markerType)) {
 				String breakpointTypeName = breakpoint.getTypeName();
 				if ((JavaDebugUtils.typeNamesEqual(breakpointTypeName, typeName) || (breakpointTypeName != null && breakpointTypeName.startsWith(typeName + '$')))
-						&& breakpoint.getLineNumber() == lineNumber
-						&& resource.equals(marker.getResource())) {
+					&& breakpoint.getLineNumber() == lineNumber
+					&& resource.equals(marker.getResource())) {
 					return breakpoint;
 				}
 			}
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaStratumLineBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaStratumLineBreakpoint.java
index 729248d..d03882f 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaStratumLineBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaStratumLineBreakpoint.java
@@ -247,8 +247,8 @@
 	}
 
 	private boolean containsMatch(List<String> strings, String key) {
-		for (Iterator<String> iter = strings.iterator(); iter.hasNext();) {
-			if (iter.next().equals(key)) {
+		for (String string : strings) {
+			if (string.equals(key)) {
 				return true;
 			}
 		}
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructures.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructures.java
index 6dc8765..5687af9 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructures.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructures.java
@@ -122,9 +122,8 @@
 	 */
 	private static void addAllLogicalStructures(
 			List<JavaLogicalStructure> pluginContributedJavaLogicalStructures) {
-		for (Iterator<JavaLogicalStructure> iter = pluginContributedJavaLogicalStructures.iterator(); iter
-				.hasNext();) {
-			addLogicalStructure(iter.next());
+		for (JavaLogicalStructure logicalStructure : pluginContributedJavaLogicalStructures) {
+			addLogicalStructure(logicalStructure);
 		}
 	}
 
@@ -208,17 +207,14 @@
 	 */
 	public static void saveUserDefinedJavaLogicalStructures() {
 		StringBuilder logicalStructuresString = new StringBuilder();
-		for (Iterator<JavaLogicalStructure> iter = fUserDefinedJavaLogicalStructures.iterator(); iter
-				.hasNext();) {
-			JavaLogicalStructure logicalStructure = iter
-					.next();
+		for (JavaLogicalStructure logicalStructure : fUserDefinedJavaLogicalStructures) {
 			logicalStructuresString.append(
-					logicalStructure.getQualifiedTypeName()).append('\0');
+				logicalStructure.getQualifiedTypeName()).append('\0');
 			logicalStructuresString.append(logicalStructure.getDescription())
-					.append('\0');
+				.append('\0');
 			logicalStructuresString.append(
-					logicalStructure.isSubtypes() ? IS_SUBTYPE_TRUE
-							: IS_SUBTYPE_FALSE).append('\0');
+				logicalStructure.isSubtypes() ? IS_SUBTYPE_TRUE
+					: IS_SUBTYPE_FALSE).append('\0');
 			String value = logicalStructure.getValue();
 			if (value != null) {
 				logicalStructuresString.append(value);
@@ -249,13 +245,11 @@
 		JavaLogicalStructure[] logicalStructures = new JavaLogicalStructure[fPluginContributedJavaLogicalStructures
 				.size() + fUserDefinedJavaLogicalStructures.size()];
 		int i = 0;
-		for (Iterator<JavaLogicalStructure> iter = fPluginContributedJavaLogicalStructures.iterator(); iter
-				.hasNext();) {
-			logicalStructures[i++] = iter.next();
+		for (JavaLogicalStructure logicalStructure : fPluginContributedJavaLogicalStructures) {
+			logicalStructures[i++] = logicalStructure;
 		}
-		for (Iterator<JavaLogicalStructure> iter = fUserDefinedJavaLogicalStructures.iterator(); iter
-				.hasNext();) {
-			logicalStructures[i++] = iter.next();
+		for (JavaLogicalStructure logicalStructure : fUserDefinedJavaLogicalStructures) {
+			logicalStructures[i++] = logicalStructure;
 		}
 		return logicalStructures;
 	}
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIObjectValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIObjectValue.java
index 307c462..15b0b91 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIObjectValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIObjectValue.java
@@ -453,10 +453,9 @@
 	public IJavaThread[] getWaitingThreads() throws DebugException {
 		List<JDIThread> waiting = new ArrayList<>();
 		try {
-			List<ThreadReference> threads = getUnderlyingObject().waitingThreads();
 			JDIDebugTarget debugTarget = (JDIDebugTarget) getDebugTarget();
-			for (Iterator<ThreadReference> iter = threads.iterator(); iter.hasNext();) {
-				JDIThread jdiThread = debugTarget.findThread(iter.next());
+			for (ThreadReference threadReference : getUnderlyingObject().waitingThreads()) {
+				JDIThread jdiThread = debugTarget.findThread(threadReference);
 				if (jdiThread != null) {
 					waiting.add(jdiThread);
 				}
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThread.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThread.java
index ece2b06..4301a39 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThread.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThread.java
@@ -3029,9 +3029,8 @@
 					return true;
 				}
 				if(!orig) {
-					IStepFilter[] contributedFilters = DebugPlugin.getStepFilters(JDIDebugPlugin.getUniqueIdentifier());
-					for (int i = 0; i < contributedFilters.length; i++) {
-						if (contributedFilters[i].isFiltered(method)) {
+					for (IStepFilter contributedFilter : DebugPlugin.getStepFilters(JDIDebugPlugin.getUniqueIdentifier())) {
+						if (contributedFilter.isFiltered(method)) {
 							return true;
 						}
 					}