Buggy code:
break ; } } } if ( ( varNames . length ) == 2 ) { value = currentRow . get ( varNames [ 1 ] ) ; } else { if ( "TYPE" . equals ( varNames [ 2 ] ) ) { IMetadataTable baseTable = null ; IMetadataColumn baseColumn = null ; INode node ; Object obj = currentRow . get ( testedParameter . getName ( ) ) ; String columnName = "" ; if ( obj instanceof String ) { columnName = ( ( String ) ( obj ) ) ; } else if ( obj instanceof Integer ) { int index = ( ( Integer ) ( obj ) ) ; if ( ( index < ( testedParameter . getListItemsDisplayName ( ) . length ) ) && ( index >= 0 ) ) { columnName = testedParameter . getListItemsDisplayName ( ) [ ( ( Integer ) ( obj ) ) ] ; } } if ( ( currentParam . getElement ( ) ) instanceof INode ) { node = ( ( INode ) ( currentParam . getElement ( ) ) ) ; switch ( testedParameter . getFieldType ( ) ) { case COLUMN_LIST : baseTable = node . getMetadataList ( ) . get ( 0 ) ; break ; case PREV_COLUMN_LIST : IConnection connection = null ; for ( int i = 0 ; i < ( node . getIncomingConnections ( ) . size ( ) ) ; i ++ ) { IConnection curConnec = node . getIncomingConnections ( ) . get ( i ) ; if ( ( curConnec . getLineStyle ( ) ) == ( EConnectionType . FLOW_MAIN ) ) { connection = curConnec ; break ; } } if ( connection != null ) { baseTable = connection . getMetadataTable ( ) ; } break ; case LOOKUP_COLUMN_LIST : List < IConnection > refConnections = new ArrayList < IConnection > ( ) ; for ( int i = 0 ; i < ( node . getIncomingConnections ( ) . size ( ) ) ; i ++ ) { IConnection curConnec = node . getIncomingConnections ( ) . get ( i ) ; if ( ( curConnec . getLineStyle ( ) ) == ( EConnectionType . FLOW_REF ) ) { refConnections . add ( curConnec ) ; } } for ( IConnection curConnec : refConnections ) { IMetadataTable table = curConnec . getMetadataTable ( ) ; for ( IMetadataColumn column : table . getListColumns ( ) ) { String name = ( ( curConnec . getName ( ) ) + "." ) + ( column . getLabel ( ) ) ; if ( name . equals ( columnName ) ) { baseColumn = column ; } } } break ; default : } if ( baseTable != null ) { for ( IMetadataColumn column : baseTable . getListColumns ( ) ) { if ( column . getLabel ( ) . equals ( columnName ) ) { baseColumn = column ; break ; } } } if ( baseColumn != null ) { switch ( LanguageManager . getCurrentLanguage ( ) ) { case JAVA : value = JavaTypesManager . getTypeToGenerate ( baseColumn . getTalendType ( ) , baseColumn . isNullable ( ) ) ; break ; default : value = baseColumn . getTalendType ( ) ; } if ( value . equals ( variableValue ) ) { found = true ; } } } } } } } else if ( ( ( ( param . getFieldType ( ) . equals ( PROPERTY_TYPE ) ) || ( param . getFieldType ( ) . equals ( SCHEMA_TYPE ) ) ) || ( param . getFieldType ( ) . equals ( QUERYSTORE_TYPE ) ) ) || ( param . getFieldType ( ) . equals ( ENCODING_TYPE ) ) ) { boolean child = false ; Map < String , IElementParameter > childParameters = param . getChildParameters ( ) ; <START_BUG> if ( "PROPERTY" . equals ( param . getName ( ) ) ) { <END_BUG> if ( childParameters != null ) { IElementParameter iElementParameter = childParameters . get ( "PROPERTY_TYPE" ) ; if ( iElementParameter != null ) { Object value2 = iElementParameter . getValue ( ) ; if ( variableValue . equals ( value2 . toString ( ) ) ) { child = true ; found = true ; value = value2 . toString ( ) ; } } } } if ( ( ( varNames . length ) > 1 ) && ( ( varNames [ 1 ] ) != null ) ) { IElementParameter tempParam = childParameters . get ( varNames [ 1 ] ) ; if ( tempParam != null ) { value = tempParam . getValue ( ) ; if ( value . equals ( variableValue ) ) { found = true ; } child = true ; } } if ( ! child ) { value = testedParameter . getValue ( ) ; } } else { value = testedParameter . getValue ( ) ; } if ( value instanceof Integer ) { if ( ( ( Integer ) ( value ) ) < ( testedParameter . getListItemsValue ( ) . length ) ) { value = testedParameter . getListItemsValue ( ) [ ( ( Integer ) ( value ) ) ] ; } } if ( value instanceof String ) { if ( variableValue . equals ( value ) ) { found = true ; } else if ( ( testedParameter . getListItemsValue ( ) ) instanceof Object [ ] ) { Object [ ] values = testedParameter . getListItemsValue ( ) ; for ( int i = 0 ; ( i < ( values . length ) ) && ( ! found ) ; i ++ ) { if ( values [ i ] . equals ( value ) ) { String variableCode = testedParameter . getListItemsDisplayCodeName ( ) [ i ] ; if ( variableCode . equals ( variableValue ) ) { found = true ; } }

Fix:
if ( ( "PROPERTY" . equals ( param . getName ( ) ) ) || ( ( EParameterFieldType . PROPERTY_TYPE ) == ( param . getFieldType ( ) ) ) ) {