Buggy code:
final class BcelMethod extends ResolvedMemberImpl { private Method method ; private boolean isAjSynthetic ; private ShadowMunger associatedShadowMunger ; private ResolvedPointcutDefinition preResolvedPointcut ; private AnnotationX [ ] annotations = null ; private EffectiveSignatureAttribute effectiveSignature ; private MethodDeclarationLineNumberAttribute declarationLineNumber ; private World world ; private BcelObjectType bcelObjectType ; BcelMethod ( BcelObjectType declaringType , Method method ) { } private void unpackJavaAttributes ( ) { } private void unpackAjAttributes ( World world ) { } private void processAttributes ( World world , List as ) { } public boolean isAjSynthetic ( ) { } public ShadowMunger getAssociatedShadowMunger ( ) { } public EffectiveSignatureAttribute getEffectiveSignature ( ) { } public boolean hasDeclarationLineNumberInfo ( ) { } public int getDeclarationLineNumber ( ) { } public int getDeclarationOffset ( ) { } public ISourceLocation getSourceLocation ( ) { } public Kind getKind ( ) { } public boolean hasAnnotation ( UnresolvedType ofType ) { } public AnnotationX [ ] getAnnotations ( ) { } public ResolvedType [ ] getAnnotationTypes ( ) { } public void addAnnotation ( AnnotationX annotation ) { } private void ensureAnnotationTypesRetrieved ( ) { } private boolean canBeParameterized = false ; public boolean canBeParameterized ( ) { } private boolean unpackedGenericSignature = false ; private UnresolvedType genericReturnType = null ; private UnresolvedType [ ] genericParameterTypes = null ; public UnresolvedType [ ] getGenericParameterTypes ( ) { } public UnresolvedType getGenericReturnType ( ) { } private void unpackGenericSignature ( ) { if ( unpackedGenericSignature ) return ; unpackedGenericSignature = true ; String gSig = method . getGenericSignature ( ) ; if ( gSig != null ) { Signature . MethodTypeSignature mSig = new GenericSignatureParser ( ) . parseAsMethodSignature ( method . getGenericSignature ( ) ) ; if ( ( mSig . formalTypeParameters . length ) > 0 ) { canBeParameterized = true ; } Signature [ ] parentFormals = bcelObjectType . getAllFormals ( ) ; Signature [ ] formals = new Signature . FormalTypeParameter [ ( parentFormals . length ) + ( mSig . formalTypeParameters . length ) ] ; System . arraycopy ( mSig . formalTypeParameters , 0 , formals , 0 , mSig . formalTypeParameters . length ) ; System . arraycopy ( parentFormals , 0 , formals , mSig . formalTypeParameters . length , parentFormals . length ) ; Signature . TypeSignature returnTypeSignature = mSig . returnType ; try { genericReturnType = BcelGenericSignatureToTypeXConverter . typeSignature2TypeX ( returnTypeSignature , formals , world ) ; } catch ( GenericSignatureFormatException e ) { throw new IllegalStateException ( ( ( ( ( ( "While<seq2seq4repair_space>determing<seq2seq4repair_space>the<seq2seq4repair_space>generic<seq2seq4repair_space>return<seq2seq4repair_space>type<seq2seq4repair_space>of<seq2seq4repair_space>" + ( this . toString ( ) ) ) + "<seq2seq4repair_space>with<seq2seq4repair_space>generic<seq2seq4repair_space>signature<seq2seq4repair_space>" ) + gSig ) + "<seq2seq4repair_space>the<seq2seq4repair_space>following<seq2seq4repair_space>error<seq2seq4repair_space>was<seq2seq4repair_space>detected:<seq2seq4repair_space>" ) + ( e . getMessage ( ) ) ) ) ; } Signature [ ] paramTypeSigs = mSig . parameters ; genericParameterTypes = new UnresolvedType [ paramTypeSigs . length ] ; for ( int i = 0 ; i < ( paramTypeSigs . length ) ; i ++ ) { try { genericParameterTypes [ i ] = BcelGenericSignatureToTypeXConverter . typeSignature2TypeX ( paramTypeSigs [ i ] , formals , world ) ; } catch ( GenericSignatureFormatException e ) { <START_BUG> throw new IllegalStateException ( ( ( ( ( ( "While<seq2seq4repair_space>determing<seq2seq4repair_space>the<seq2seq4repair_space>generic<seq2seq4repair_space>parameter<seq2seq4repair_space>types<seq2seq4repair_space>of<seq2seq4repair_space>" + ( this . toString ( ) ) ) + "<seq2seq4repair_space>with<seq2seq4repair_space>generic<seq2seq4repair_space>signature<seq2seq4repair_space>" ) + gSig ) + "<seq2seq4repair_space>the<seq2seq4repair_space>following<seq2seq4repair_space>error<seq2seq4repair_space>was<seq2seq4repair_space>detected:<seq2seq4repair_space>" ) + ( e . getMessage ( ) ) ) ) ; <END_BUG> } if ( ( paramTypeSigs [ i ] ) instanceof TypeVariableSignature ) { canBeParameterized = true ; } } } else { genericReturnType = getReturnType ( ) ; genericParameterTypes = getParameterTypes ( ) ; } } }

Fix:
throw new IllegalStateException ( ( ( ( ( ( "While<seq2seq4repair_space>determining<seq2seq4repair_space>the<seq2seq4repair_space>generic<seq2seq4repair_space>parameter<seq2seq4repair_space>types<seq2seq4repair_space>of<seq2seq4repair_space>" + ( this . toString ( ) ) ) + "<seq2seq4repair_space>with<seq2seq4repair_space>generic<seq2seq4repair_space>signature<seq2seq4repair_space>" ) + gSig ) + "<seq2seq4repair_space>the<seq2seq4repair_space>following<seq2seq4repair_space>error<seq2seq4repair_space>was<seq2seq4repair_space>detected:<seq2seq4repair_space>" ) + ( e . getMessage ( ) ) ) ) ;