Bug 507254 - Run tests with assertions enabled
- fix AssertionError in RoleTypeCreator.maybeWrapUnqualifiedRoleType
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/transformer/StandardElementGenerator.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/transformer/StandardElementGenerator.java
index ab9e74f..af4cd8e 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/transformer/StandardElementGenerator.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/transformer/StandardElementGenerator.java
@@ -214,18 +214,21 @@
 		if (dimensions > 0)
 			methodName = CharOperation.concat(methodName, String.valueOf(dimensions).toCharArray(), '$');
 		ReferenceBinding teamBinding = teamModel.getBinding();
-		while (teamBinding != null) {
-			MethodBinding[] methods = teamBinding.getMethods(methodName);
-			if (methods != null && methods.length == 1) {
-				if (TypeBinding.equalsEquals(methods[0].declaringClass, teamModel.getBinding()) || searchSuper)
-					return methods[0];
-				// go ahead and generate a new method, but use superMethod for weakening after generating:
-				superMethod = methods[0];
-				break;
+		{
+			ReferenceBinding currentTeam = teamBinding;
+			while (currentTeam != null) {
+				MethodBinding[] methods = currentTeam.getMethods(methodName);
+				if (methods != null && methods.length == 1) {
+					if (TypeBinding.equalsEquals(methods[0].declaringClass, teamModel.getBinding()) || searchSuper)
+						return methods[0];
+					// go ahead and generate a new method, but use superMethod for weakening after generating:
+					superMethod = methods[0];
+					break;
+				}
+				if (!searchSuper && !shouldWeaken)
+					break;
+				currentTeam = currentTeam.superclass();
 			}
-			if (!searchSuper && !shouldWeaken)
-				break;
-			teamBinding = teamBinding.superclass();
 		}
 
 		TypeDeclaration teamClass = teamModel.getAst();