Buggy code:
public abstract class World { protected IMessageHandler messageHandler = IMessageHandler . SYSTEM_ERR ; protected Map typeMap = new HashMap ( ) ; protected CrosscuttingMembersSet crosscuttingMembersSet = new CrosscuttingMembersSet ( this ) ; protected StructureModel model = null ; protected Lint lint = new Lint ( this ) ; protected boolean XnoInline ; protected World ( ) { } public ResolvedTypeX [ ] resolve ( TypeX [ ] types ) { } public ResolvedTypeX resolve ( TypeX ty ) { } public ResolvedTypeX resolve ( TypeX ty , boolean allowMissing ) { } public ResolvedTypeX resolve ( String name ) { } protected abstract ResolvedTypeX resolveObjectType ( TypeX ty ) { } protected final boolean isCoerceableFrom ( TypeX type , TypeX other ) { } protected final boolean isAssignableFrom ( TypeX type , TypeX other ) { } public boolean needsNoConversionFrom ( TypeX type , TypeX other ) { } protected final boolean isInterface ( TypeX type ) { } protected final ResolvedTypeX getSuperclass ( TypeX type ) { } protected final TypeX [ ] getDeclaredInterfaces ( TypeX type ) { } protected final int getModifiers ( TypeX type ) { } protected final ResolvedMember [ ] getDeclaredFields ( TypeX type ) { } protected final ResolvedMember [ ] getDeclaredMethods ( TypeX type ) { } protected final ResolvedMember [ ] getDeclaredPointcuts ( TypeX type ) { } public ResolvedMember resolve ( Member member ) { } protected int getModifiers ( Member member ) { } protected String [ ] getParameterNames ( Member member ) { } protected TypeX [ ] getExceptions ( Member member ) { } public ResolvedPointcutDefinition findPointcut ( TypeX typeX , String name ) { } public static final World EMPTY = new World ( ) { public List getShadowMungers ( ) { } public ResolvedTypeX resolveObjectType ( TypeX ty ) { } public Advice concreteAdvice ( AjAttribute . AdviceAttribute attribute , Pointcut p , Member m ) { } public ConcreteTypeMunger concreteTypeMunger ( ResolvedTypeMunger munger , ResolvedTypeX aspectType ) { } } ; public abstract Advice concreteAdvice ( AjAttribute . AdviceAttribute attribute , Pointcut pointcut , Member signature ) { } public final Advice concreteAdvice ( AdviceKind kind , Pointcut p , Member signature , int extraParameterFlags , IHasSourceLocation loc ) { } public ConcreteTypeMunger makeCflowStackFieldAdder ( ResolvedMember cflowField ) { } public abstract ConcreteTypeMunger concreteTypeMunger ( ResolvedTypeMunger munger , ResolvedTypeX aspectType ) { } public IMessageHandler getMessageHandler ( ) { } public void setMessageHandler ( IMessageHandler messageHandler ) { } public void showMessage ( Kind kind , String message , ISourceLocation loc1 , ISourceLocation loc2 ) { } public int compareByDominates ( ResolvedTypeX aspect1 , ResolvedTypeX aspect2 ) { int order = 0 ; for ( Iterator i = crosscuttingMembersSet . getDeclareDominates ( ) . iterator ( ) ; i . hasNext ( ) ; ) { <START_BUG> DeclareDominates d = ( ( DeclareDominates ) ( i . next ( ) ) ) ; <END_BUG> int thisOrder = d . compare ( aspect1 , aspect2 ) ; if ( thisOrder != 0 ) { if ( ( order != 0 ) && ( order != thisOrder ) ) { throw new BCException ( "conflicting<seq2seq4repair_space>dominates<seq2seq4repair_space>orders" ) ; } else { order = thisOrder ; } } } return order ; } public int comparePrecedence ( ResolvedTypeX aspect1 , ResolvedTypeX aspect2 ) { } public List getDeclareParents ( ) { } public List getDeclareSoft ( ) { } public CrosscuttingMembersSet getCrosscuttingMembersSet ( ) { } public StructureModel getModel ( ) { } public void setModel ( StructureModel model ) { } public Lint getLint ( ) { } public void setLint ( Lint lint ) { } public boolean isXnoInline ( ) { } public void setXnoInline ( boolean xnoInline ) { } }

Fix:
DeclarePrecedence d = ( ( DeclarePrecedence ) ( i . next ( ) ) ) ;