Buggy code:
private int dataMemberDefaultAccess ; private boolean triggerDataMember ; boolean isInit = false ; private InterfaceCollection interfaceCollection ; private boolean useShadow ; boolean afterConstructor ; private Map < Key , UDF > constructorUDFs ; private static final Key TO_DATETIME = KeyImpl . intern ( "_toDateTime" ) ; private static final Key TO_NUMERIC = KeyImpl . intern ( "_toNumeric" ) ; private static final Key TO_BOOLEAN = KeyImpl . intern ( "_toBoolean" ) ; private static final Key TO_STRING = KeyImpl . intern ( "_toString" ) ; private static final Key ON_MISSING_METHOD = KeyImpl . intern ( "onmissingmethod" ) ; protected static final Key EXTENDS = KeyImpl . intern ( "extends" ) ; protected static final Key IMPLEMENTS = KeyImpl . intern ( "implements" ) ; protected static final Key FUNCTIONS = KeyImpl . intern ( "functions" ) ; protected static final Key FULLNAME = KeyImpl . intern ( "fullname" ) ; protected static final Key SKELETON = KeyImpl . intern ( "skeleton" ) ; protected static final Key PROPERTIES = KeyImpl . intern ( "properties" ) ; private static final Key MAPPED_SUPER_CLASS = KeyImpl . intern ( "mappedSuperClass" ) ; public long sizeOf ( ) { } public ComponentImpl ( ) { } public ComponentImpl ( ComponentPage componentPage , Boolean output , boolean _synchronized , String extend , String implement , String hint , String dspName , String callPath , boolean realPath , String style , StructImpl meta ) throws ApplicationException { } public ComponentImpl ( ComponentPage componentPage , Boolean output , boolean _synchronized , String extend , String implement , String hint , String dspName , String callPath , boolean realPath , String style , boolean persistent , StructImpl meta ) throws ApplicationException { } public ComponentImpl ( ComponentPage componentPage , Boolean output , boolean _synchronized , String extend , String implement , String hint , String dspName , String callPath , boolean realPath , String style , boolean persistent , boolean accessors , StructImpl meta ) throws ApplicationException { } public Collection duplicate ( boolean deepCopy ) { } private ComponentImpl _duplicate ( boolean deepCopy , boolean isTop ) { } private static void addUDFS ( ComponentImpl trgComp , Map src , Map trg ) { } public static Map duplicateDataMember ( ComponentImpl c , Map map , Map newMap , boolean deepCopy ) { } public static Map < Key , UDF > duplicateUTFMap ( ComponentImpl src , ComponentImpl trg , Map < Key , UDF > srcMap , Map < Key , UDF > trgMap ) { } public void init ( PageContext pageContext , ComponentPage componentPage ) throws PageException { } public void checkInterface ( PageContext pc , ComponentPage componentPage ) throws PageException { } private String _getErrorMessage ( UDFImpl cUdf , UDFImpl iUdf ) { } private static void setTop ( ComponentImpl top , ComponentImpl trg ) { } Object _call ( PageContext pc , Collection . Key key , Struct namedArgs , Object [ ] args , boolean superAccess ) throws PageException { } Object _call ( PageContext pc , int access , Collection . Key key , Struct namedArgs , Object [ ] args , boolean superAccess ) throws PageException { } public Object onMissingMethod ( PageContext pc , int access , Member member , String name , Object [ ] _args , Struct _namedArgs , boolean superAccess ) throws PageException { Member ommm = ( access == ( - 1 ) ) ? getMember ( pc , ComponentImpl . ON_MISSING_METHOD , false , superAccess ) : getMember ( access , ComponentImpl . ON_MISSING_METHOD , false , superAccess ) ; if ( ommm instanceof UDF ) { Argument args = new ArgumentImpl ( ) ; if ( _args != null ) { for ( int i = 0 ; i < ( _args . length ) ; i ++ ) { args . setEL ( ArgumentIntKey . init ( ( i + 1 ) ) , _args [ i ] ) ; } } else if ( _namedArgs != null ) { UDFImpl . argumentCollection ( _namedArgs , new FunctionArgument [ ] { } ) ; Key [ ] keys = _namedArgs . keys ( ) ; for ( int i = 0 ; i < ( keys . length ) ; i ++ ) { <START_BUG> args . setEL ( keys [ i ] , _namedArgs . get ( keys [ i ] ) ) ; <END_BUG> } } Object [ ] newArgs = new Object [ ] { name , args } ; return _call ( pc , ( ( UDF ) ( ommm ) ) , null , newArgs ) ; } if ( member == null ) throw ComponentUtil . notFunction ( this , KeyImpl . init ( name ) , null , access ) ; throw ComponentUtil . notFunction ( this , KeyImpl . init ( name ) , member . getValue ( ) , access ) ; } Object _call ( PageContext pc , UDF udf , Struct namedArgs , Object [ ] args ) throws PageException { } public Variables beforeCall ( PageContext pc ) { } public void afterConstructor ( PageContext pc , Variables parent ) { } public void afterCall ( PageContext pc , Variables parent ) { } public int size ( int access ) { } public Set < Key > keySet ( int access ) { } protected Set < Key > udfKeySet ( int access ) { } protected List < Member > getMembers ( int access ) { } public Iterator iterator ( int access ) { } public Collection . Key [ ] keys ( int access ) { } public String [ ] keysAsString ( int access ) { } public void clear ( ) { } public Member getMember ( int access , Collection . Key key , boolean dataMember , boolean superAccess ) { } protected Member getMember ( PageContext pc , Collection . Key key , boolean dataMember , boolean superAccess ) { }

Fix:
args . setEL ( keys [ i ] , _namedArgs . get ( keys [ i ] , null ) ) ;