diff options
author | Stephan Herrmann | 2013-01-06 22:26:22 +0000 |
---|---|---|
committer | Stephan Herrmann | 2013-01-22 20:51:19 +0000 |
commit | 605b6e6bd65dcc4e390ba2831833e4e10c1a6a80 (patch) | |
tree | dce3ed2eb36f9bad0bcd1073244b5ca0d3e4f4c4 | |
parent | cc2a175433fcfa4cb4eb3de3de726e97d36a672f (diff) | |
download | org.eclipse.objectteams-605b6e6bd65dcc4e390ba2831833e4e10c1a6a80.tar.gz org.eclipse.objectteams-605b6e6bd65dcc4e390ba2831833e4e10c1a6a80.tar.xz org.eclipse.objectteams-605b6e6bd65dcc4e390ba2831833e4e10c1a6a80.zip |
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
-rw-r--r-- | org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/mappings/CallinImplementorDyn.java | 4 |
1 files changed, 3 insertions, 1 deletions
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 b59f4239b..d9bfa8cb6 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 @@ public class CallinImplementorDyn extends MethodMappingImplementor { { 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 @@ public class CallinImplementorDyn extends MethodMappingImplementor { 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); } |