Community
Participate
Working Groups
Using a similar buggy source as in bug 366597 a stack overflow can be observed: package t; import base b.Base; /** * @author stephan * */ public team class T1 { // protected abstract class IR { // abstract org.Missing foo(); // } protected interface IR protected class R implements IR playedBy Base { } } causes this pattern of repetition: at org.eclipse.objectteams.otdt.internal.core.compiler.model.RoleModel.implementMethodBindingsFromSuperinterfaces(RoleModel.java:1335) at org.eclipse.objectteams.otdt.internal.core.compiler.model.ModelElement.evaluateLateAttributes(ModelElement.java:139) at org.eclipse.objectteams.otdt.internal.core.compiler.model.TypeModel.evaluateLateAttributes(TypeModel.java:442) at org.eclipse.objectteams.otdt.internal.core.compiler.model.RoleModel.evaluateLateAttributes(RoleModel.java:1352) at org.eclipse.objectteams.otdt.internal.core.compiler.control.Dependencies.ensureRoleState(Dependencies.java:788) at org.eclipse.objectteams.otdt.internal.core.compiler.control.Dependencies.ensureBindingState(Dependencies.java:480) at org.eclipse.objectteams.otdt.internal.core.compiler.model.RoleModel.implementMethodBindingsFromSuperinterfaces(RoleModel.java:1335) ... Unfortunately I can't see the original trigger in the trace.
Fix for 2.1M7 via commit bbc91e3a29dade6d40312af8003b2df4f620699f. The issue could be reproduced by requesting the super type hierarchy for T1.IR. We now use StateMemento._currentlyProcessingState to detect re-entrant requests for STATE_LATE_ATTRIBUTES_EVALUATED.
*** Bug 374778 has been marked as a duplicate of this bug. ***
Verified using 2.2 M5