Buggy code:
public String getFullyQualifiedName ( char enclosingTypeSeparator ) { } public IJavaElement getHandleFromMemento ( String token , MementoTokenizer memento , WorkingCopyOwner workingCopyOwner ) { } public IInitializer getInitializer ( int count ) { } public IInitializer [ ] getInitializers ( ) throws JavaModelException { } public IMethod getMethod ( String selector , String [ ] parameterTypeSignatures ) { } public IMethod [ ] getMethods ( ) throws JavaModelException { } public IPackageFragment getPackageFragment ( ) { } public IJavaElement getPrimaryElement ( boolean checkOwner ) { } public String getSuperclassName ( ) throws JavaModelException { } public String getSuperclassTypeSignature ( ) throws JavaModelException { } public String [ ] getSuperInterfaceNames ( ) throws JavaModelException { } public String [ ] getSuperInterfaceTypeSignatures ( ) throws JavaModelException { } public String [ ] getTypeParameterSignatures ( ) throws JavaModelException { } public IType getType ( String typeName ) { } public String getTypeQualifiedName ( ) { } public String getTypeQualifiedName ( char enclosingTypeSeparator ) { } public IType [ ] getTypes ( ) throws JavaModelException { } public boolean isAnonymous ( ) { } public boolean isClass ( ) throws JavaModelException { } public boolean isEnum ( ) throws JavaModelException { } public boolean isInterface ( ) throws JavaModelException { } public boolean isAnnotation ( ) throws JavaModelException { } public boolean isLocal ( ) { } public boolean isMember ( ) { } public ITypeHierarchy loadTypeHierachy ( InputStream input , IProgressMonitor monitor ) throws JavaModelException { } public ITypeHierarchy loadTypeHierachy ( InputStream input , WorkingCopyOwner owner , IProgressMonitor monitor ) throws JavaModelException { } public ITypeHierarchy newSupertypeHierarchy ( IProgressMonitor monitor ) throws JavaModelException { } public ITypeHierarchy newSupertypeHierarchy ( ICompilationUnit [ ] workingCopies , IProgressMonitor monitor ) throws JavaModelException { } public ITypeHierarchy newSupertypeHierarchy ( IWorkingCopy [ ] workingCopies , IProgressMonitor monitor ) throws JavaModelException { } public ITypeHierarchy newSupertypeHierarchy ( WorkingCopyOwner owner , IProgressMonitor monitor ) throws JavaModelException { } public ITypeHierarchy newTypeHierarchy ( IJavaProject project , IProgressMonitor monitor ) throws JavaModelException { } public ITypeHierarchy newTypeHierarchy ( IJavaProject project , WorkingCopyOwner owner , IProgressMonitor monitor ) throws JavaModelException { } public ITypeHierarchy newTypeHierarchy ( IProgressMonitor monitor ) throws JavaModelException { } public ITypeHierarchy newTypeHierarchy ( ICompilationUnit [ ] workingCopies , IProgressMonitor monitor ) throws JavaModelException { } public ITypeHierarchy newTypeHierarchy ( IWorkingCopy [ ] workingCopies , IProgressMonitor monitor ) throws JavaModelException { } public ITypeHierarchy newTypeHierarchy ( WorkingCopyOwner owner , IProgressMonitor monitor ) throws JavaModelException { } public String [ ] [ ] resolveType ( String typeName ) throws JavaModelException { } public String [ ] [ ] resolveType ( String typeName , WorkingCopyOwner owner ) throws JavaModelException { ISourceType info = ( ( ISourceType ) ( getElementInfo ( ) ) ) ; JavaProject project = ( ( JavaProject ) ( getJavaProject ( ) ) ) ; ISearchableNameEnvironment environment = project . newSearchableNameEnvironment ( owner ) ; class TypeResolveRequestor implements ISelectionRequestor { String [ ] [ ] answers = null ; void acceptType ( String [ ] answer ) { if ( ( this . answers ) == null ) { this . answers = new String [ ] [ ] { answer } ; } else { int length = this . answers . length ; System . arraycopy ( this . answers , 0 , ( this . answers = new String [ length + 1 ] [ ] ) , 0 , length ) ; this . answers [ length ] = answer ; } } public void acceptClass ( char [ ] packageName , char [ ] className , boolean needQualification , boolean isDeclaration , int start , int end ) { acceptType ( new String [ ] { new String ( packageName ) , new String ( className ) } ) ; } public void acceptInterface ( char [ ] packageName , char [ ] interfaceName , boolean needQualification , boolean isDeclaration , int start , int end ) { acceptType ( new String [ ] { new String ( packageName ) , new String ( interfaceName ) } ) ; } public void acceptError ( IProblem error ) { } public void acceptField ( char [ ] declaringTypePackageName , char [ ] declaringTypeName , char [ ] fieldName , boolean isDeclaration , int start , int end ) { } public void acceptMethod ( char [ ] declaringTypePackageName , char [ ] declaringTypeName , char [ ] selector , char [ ] [ ] parameterPackageNames , char [ ] [ ] parameterTypeNames , boolean isConstructor , boolean isDeclaration , int start , int end ) { } public void acceptPackage ( char [ ] packageName ) { } public void acceptTypeParameter ( char [ ] declaringTypePackageName , char [ ] declaringTypeName , char [ ] typeParameterName , boolean isDeclaration , int start , int end ) { } <START_BUG> public void acceptMethodTypeParameter ( char [ ] declaringTypePackageName , char [ ] declaringTypeName , char [ ] selector , char [ ] [ ] parameterPackageNames , char [ ] [ ] parameterTypeNames , boolean isConstructor , char [ ] typeParameterName , boolean isDeclaration , int start , int end ) { <END_BUG> } } TypeResolveRequestor requestor = new TypeResolveRequestor ( ) ; SelectionEngine engine = new SelectionEngine ( environment , requestor , project . getOptions ( true ) ) ; IType [ ] topLevelTypes = getCompilationUnit ( ) . getTypes ( ) ; int length = topLevelTypes . length ; SourceTypeElementInfo [ ] topLevelInfos = new SourceTypeElementInfo [ length ] ; for ( int i = 0 ; i < length ; i ++ ) { topLevelInfos [ i ] = ( ( SourceTypeElementInfo ) ( ( ( SourceType ) ( topLevelTypes [ i ] ) ) . getElementInfo ( ) ) ) ; } engine . selectType ( info , typeName . toCharArray ( ) , topLevelInfos , false ) ; return requestor . answers ; } protected void toStringInfo ( int tab , StringBuffer buffer , Object info ) { } }

Fix:
public void acceptMethodTypeParameter ( char [ ] declaringTypePackageName , char [ ] declaringTypeName , char [ ] selector , int selectorStart , int selcetorEnd , char [ ] typeParameterName , boolean isDeclaration , int start , int end ) {