Buggy code:
class NaiveASTFlattener extends ASTVisitor { private StringBuffer buffer ; NaiveASTFlattener ( ) { } public String getResult ( ) { } public void reset ( ) { } void printModifiers ( List ext ) { } void printModifiers ( int modifiers ) { } public boolean visit ( AnnotationTypeDeclaration node ) { } public boolean visit ( AnnotationTypeMemberDeclaration node ) { } public boolean visit ( AnonymousClassDeclaration node ) { } public boolean visit ( ArrayAccess node ) { } public boolean visit ( ArrayCreation node ) { } public boolean visit ( ArrayInitializer node ) { } public boolean visit ( ArrayType node ) { } public boolean visit ( AssertStatement node ) { } public boolean visit ( Assignment node ) { } public boolean visit ( Block node ) { } public boolean visit ( BlockComment node ) { } public boolean visit ( BooleanLiteral node ) { } public boolean visit ( BreakStatement node ) { } public boolean visit ( CastExpression node ) { } public boolean visit ( CatchClause node ) { } public boolean visit ( CharacterLiteral node ) { } public boolean visit ( ClassInstanceCreation node ) { } public boolean visit ( CompilationUnit node ) { } public boolean visit ( ConditionalExpression node ) { } public boolean visit ( ConstructorInvocation node ) { } public boolean visit ( ContinueStatement node ) { } public boolean visit ( DoStatement node ) { } public boolean visit ( EmptyStatement node ) { } public boolean visit ( EnhancedForStatement node ) { } public boolean visit ( EnumConstantDeclaration node ) { } public boolean visit ( EnumDeclaration node ) { } public boolean visit ( ExpressionStatement node ) { } public boolean visit ( FieldAccess node ) { } public boolean visit ( FieldDeclaration node ) { } public boolean visit ( ForStatement node ) { } public boolean visit ( IfStatement node ) { } public boolean visit ( ImportDeclaration node ) { } public boolean visit ( InfixExpression node ) { } public boolean visit ( InstanceofExpression node ) { } public boolean visit ( Initializer node ) { } public boolean visit ( Javadoc node ) { } public boolean visit ( LabeledStatement node ) { } public boolean visit ( LineComment node ) { } public boolean visit ( MarkerAnnotation node ) { } public boolean visit ( MemberRef node ) { } public boolean visit ( MemberValuePair node ) { } public boolean visit ( MethodRef node ) { } public boolean visit ( MethodRefParameter node ) { } public boolean visit ( MethodDeclaration node ) { } public boolean visit ( MethodInvocation node ) { } public boolean visit ( Modifier node ) { } public boolean visit ( NormalAnnotation node ) { } public boolean visit ( NullLiteral node ) { } public boolean visit ( NumberLiteral node ) { } public boolean visit ( PackageDeclaration node ) { } public boolean visit ( ParameterizedType node ) { <START_BUG> node . getName ( ) . accept ( this ) ; <END_BUG> this . buffer . append ( "<" ) ; for ( Iterator it = node . typeArguments ( ) . iterator ( ) ; it . hasNext ( ) ; ) { Type t = ( ( Type ) ( it . next ( ) ) ) ; t . accept ( this ) ; if ( it . hasNext ( ) ) { this . buffer . append ( "," ) ; } } this . buffer . append ( ">" ) ; return false ; } public boolean visit ( ParenthesizedExpression node ) { } public boolean visit ( PostfixExpression node ) { } public boolean visit ( PrefixExpression node ) { } public boolean visit ( PrimitiveType node ) { } public boolean visit ( QualifiedName node ) { } public boolean visit ( QualifiedType node ) { } public boolean visit ( ReturnStatement node ) { } public boolean visit ( SimpleName node ) { } public boolean visit ( SimpleType node ) { } public boolean visit ( SingleMemberAnnotation node ) { } public boolean visit ( SingleVariableDeclaration node ) { } public boolean visit ( StringLiteral node ) { } public boolean visit ( SuperConstructorInvocation node ) { } public boolean visit ( SuperFieldAccess node ) { } public boolean visit ( SuperMethodInvocation node ) { } public boolean visit ( SwitchCase node ) { } public boolean visit ( SwitchStatement node ) { } public boolean visit ( SynchronizedStatement node ) { } public boolean visit ( TagElement node ) { } public boolean visit ( TextElement node ) { } public boolean visit ( ThisExpression node ) { } public boolean visit ( ThrowStatement node ) { } public boolean visit ( TryStatement node ) { } public boolean visit ( TypeDeclaration node ) { } public boolean visit ( TypeDeclarationStatement node ) { } public boolean visit ( TypeLiteral node ) { } public boolean visit ( TypeParameter node ) { } public boolean visit ( VariableDeclarationExpression node ) { } public boolean visit ( VariableDeclarationFragment node ) { } public boolean visit ( VariableDeclarationStatement node ) { } public boolean visit ( WildcardType node ) { } public boolean visit ( WhileStatement node ) { } }

Fix:
node . getType ( ) . accept ( this ) ;