Bug 397192 - Prepare OTDT for new (dynamic) weaver:
Avoid AIOOBE during reconcile of BuildManager (with rofi ImageBuilder)
baseSpec.callinId was -1, but the baseSpec wasn't resolved either
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/mappings/CallinImplementorDyn.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/mappings/CallinImplementorDyn.java
index b59f423..d9bfa8c 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/mappings/CallinImplementorDyn.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/mappings/CallinImplementorDyn.java
@@ -378,6 +378,8 @@
 				{
 					if (callinDecl.ignoreFurtherInvestigation || RoleModel.isRoleWithBaseProblem(callinDecl.scope.referenceType()))
 						continue;
+					if (!callinDecl.hasParsedParamMappings) // during reconcile we may not be interested in this level of detail (e.g., of a role file)
+						continue;
 
 					gen.retargetFrom(callinDecl);
 
@@ -661,7 +663,7 @@
 						blockStatements.add(protectRoleMethodCall(messageSendStatements, roleMethodBinding, resetFlag, gen));
 						statements.add(gen.block(blockStatements.toArray(new Statement[blockStatements.size()])));
 						// collectively report the problem(s)
-						if (canLiftingFail)
+						if (canLiftingFail && callinDecl.rolesWithLiftingProblem != null)
 							for (Map.Entry<ReferenceBinding, Integer> entry : callinDecl.rolesWithLiftingProblem.entrySet())
 								callinDecl.scope.problemReporter().callinDespiteLiftingProblem(entry.getKey(), entry.getValue(), callinDecl);
 					}