Buggy code:
; private static CFMLScriptTransformer . EndCondition SEMI_BLOCK ; private static CFMLScriptTransformer . EndCondition SEMI ; private static CFMLScriptTransformer . EndCondition COMMA_ENDBRACKED ; private short ATTR_TYPE_NONE = TagLibTagAttr . SCRIPT_SUPPORT_NONE ; private short ATTR_TYPE_OPTIONAL = TagLibTagAttr . SCRIPT_SUPPORT_OPTIONAL ; private short ATTR_TYPE_REQUIRED = TagLibTagAttr . SCRIPT_SUPPORT_REQUIRED ; public static class ComponentTemplateException extends TemplateException { private static final long serialVersionUID = - 8103635220891288231L ; private TemplateException te ; public ComponentTemplateException ( TemplateException te ) { } public TemplateException getTemplateException ( ) { } } private static final Expression NULL = LitString . toExprString ( "NULL" ) ; private static final Expression EMPTY_STRING = LitString . toExprString ( "sadsdasdasdadasdasdsas" ) ; private static final Attribute ANY = new Attribute ( false , "type" , LitString . toExprString ( "any" ) , "string" ) ; public void transform ( Config config , CFMLTransformer parentTransformer , EvaluatorPool ep , FunctionLib [ ] fld , Tag tag , TagLibTag libTag , CFMLString cfml ) throws TemplateException { } public Expression transform ( FunctionLib [ ] fld , CFMLString cfml ) throws TemplateException { } public Expression transformAsString ( FunctionLib [ ] fld , CFMLString cfml , boolean allowLowerThan ) throws TemplateException { } protected Body statements ( Data data ) throws TemplateException { } protected void statements ( Data data , Body body , boolean isRoot ) throws TemplateException { } protected void statement ( Data data , Body parent ) throws TemplateException { } private void statement ( Data data , Body parent , short context ) throws TemplateException { } protected Statement ifStatement ( Data data ) throws TemplateException { } protected boolean elseifStatement ( Data data , Condition cont ) throws TemplateException { } protected boolean elseStatement ( Data data , Condition cont ) throws TemplateException { } protected boolean finallyStatement ( Data data , TryCatchFinally tcf ) throws TemplateException { } public While whileStatement ( Data data ) throws TemplateException { } public Switch switchStatement ( Data data ) throws TemplateException { } public boolean caseStatement ( Data data , Switch swit ) throws TemplateException { } public boolean defaultStatement ( Data data , Switch swit ) throws TemplateException { } public void switchBlock ( Data data , Body body ) throws TemplateException { } public DoWhile doStatement ( Data data ) throws TemplateException { } public Statement forStatement ( Data data ) throws TemplateException { } public Function funcStatement ( Data data , Body parent ) throws TemplateException { } private Statement tagStatement ( Data data , Body parent ) throws TemplateException { } public Statement _multiAttrStatement ( Body parent , Data data , TagLibTag tlt ) throws TemplateException { } public Tag __multiAttrStatement ( Body parent , Data data , TagLibTag tlt ) throws TemplateException { } private void addMetaData ( Data data , Tag tag , String [ ] ignoreList ) { } public Statement propertyStatement ( Data data , Body parent ) throws TemplateException { } private Tag _propertyStatement ( Data data , Body parent ) throws TemplateException { } public Statement paramStatement ( Data data , Body parent ) throws TemplateException { } private Tag _paramStatement ( Data data , Body parent ) throws TemplateException { if ( ! ( data . cfml . forwardIfCurrent ( "param<seq2seq4repair_space>" ) ) ) return null ; int line = data . cfml . getLine ( ) ; TagLibTag tlt = CFMLTransformer . getTLT ( data . cfml , "param" ) ; TagParam param = new TagParam ( line ) ; boolean hasType = false ; int pos = data . cfml . getPos ( ) ; String tmp = variableDeclaration ( data , true , false ) ; if ( ! ( StringUtil . isEmpty ( tmp ) ) ) { if ( ( tmp . indexOf ( '.' ) ) != ( - 1 ) ) { param . addAttribute ( new Attribute ( false , "type" , LitString . toExprString ( tmp ) , "string" ) ) ; hasType = true ; } else data . cfml . setPos ( pos ) ; } else data . cfml . setPos ( pos ) ; <START_BUG> Attribute [ ] attrs = attributes ( param , tlt , data , CFMLScriptTransformer . SEMI , CFMLScriptTransformer . NULL , "name" , "name" , true ) ; <END_BUG> checkSemiColonLineFeed ( data , true ) ; param . setTagLibTag ( tlt ) ; param . setScriptBase ( true ) ; Attribute attr ; boolean hasDynamic = false ; boolean hasName = false ; for ( int i = ( attrs . length ) - 1 ; i >= 0 ; i -- ) { attr = attrs [ i ] ; if ( ! ( attr . getValue ( ) . equals ( CFMLScriptTransformer . NULL ) ) ) { if ( attr . getName ( ) . equalsIgnoreCase ( "name" ) ) { hasName = true ; param . addAttribute ( attr ) ; } else if ( attr . getName ( ) . equalsIgnoreCase ( "type" ) ) { hasType = true ; param . addAttribute ( attr ) ; } else if ( attr . isDynamicType ( ) ) { hasName = true ; if ( hasDynamic ) throw attrNotSupported ( data . cfml , tlt , attr . getName ( ) ) ; hasDynamic = true ; param . addAttribute ( new Attribute ( false , "name" , LitString . toExprString ( attr . getName ( ) ) , "string" ) ) ; param . addAttribute ( new Attribute ( false , "default" , attr . getValue ( ) , "any" ) ) ; } else param . addAttribute ( attr ) ; } } String first = null ; String second = null ; for ( int i = 0 ;

Fix:
Attribute [ ] attrs = attributes ( param , tlt , data , CFMLScriptTransformer . SEMI , CFMLScriptTransformer . NULL , Boolean . TRUE , "name" , true ) ;