Buggy code:
if ( ( getParams ( ) . length ) > 0 ) { for ( int i = 0 ; i < ( getParams ( ) . length ) ; i ++ ) { evaluatedParams [ i ] = getParams ( ) [ i ] . evaluate ( ctx ) ; } } if ( ( getTarget ( ) ) == null ) { final Extension f = ctx . getExtension ( getName ( ) . getValue ( ) , evaluatedParams ) ; if ( f != null ) { ProfileCollector . getInstance ( ) . enter ( f . toString ( ) ) ; try { return evaluate ( f , evaluatedParams , ctx ) ; } catch ( EvaluationException e ) { e . addStackElement ( this , ctx ) ; throw e ; } finally { ProfileCollector . getInstance ( ) . leave ( ) ; } } final Variable var = ctx . getVariable ( IMPLICIT_VARIABLE ) ; if ( var == null ) throw new EvaluationException ( ( ( ( "Couldn't<seq2seq4repair_space>find<seq2seq4repair_space>extension<seq2seq4repair_space>'" + ( getName ( ) . getValue ( ) ) ) + ( getParamTypes ( evaluatedParams , ctx ) ) ) + "'!" ) , this , ctx ) ; targetObj = var . getValue ( ) ; } Operation op = ctx . findOperation ( getName ( ) . getValue ( ) , targetObj , evaluatedParams ) ; if ( op != null ) return evaluate ( op , targetObj , evaluatedParams , ctx ) ; Object [ ] ps = new Object [ ( evaluatedParams . length ) + 1 ] ; ps [ 0 ] = targetObj ; System . arraycopy ( evaluatedParams , 0 , ps , 1 , evaluatedParams . length ) ; Extension f = ctx . getExtension ( getName ( ) . getValue ( ) , ps ) ; if ( f != null ) { try { ProfileCollector . getInstance ( ) . enter ( f . toString ( ) ) ; return evaluate ( f , ps , ctx ) ; } catch ( EvaluationException e ) { e . addStackElement ( this , ctx ) ; throw e ; } finally { ProfileCollector . getInstance ( ) . leave ( ) ; } } if ( targetObj instanceof Collection < ? > ) { final List < Object > result = new ArrayList < Object > ( ) ; final Collection < ? > col = ( ( Collection < ? > ) ( targetObj ) ) ; for ( final Iterator < ? > iter = col . iterator ( ) ; iter . hasNext ( ) ; ) { final Object element = iter . next ( ) ; op = ctx . findOperation ( getName ( ) . getValue ( ) , element , evaluatedParams ) ; if ( op != null ) { final Object r = evaluate ( op , element , evaluatedParams , ctx ) ; if ( r instanceof Collection < ? > ) { result . addAll ( ( ( Collection < ? > ) ( r ) ) ) ; } else { result . add ( r ) ; } } else { ps = new Object [ ( evaluatedParams . length ) + 1 ] ; ps [ 0 ] = element ; System . arraycopy ( evaluatedParams , 0 , ps , 1 , evaluatedParams . length ) ; f = ctx . getExtension ( getName ( ) . getValue ( ) , ps ) ; if ( f != null ) { Object r = null ; try { r = evaluate ( f , ps , ctx ) ; } catch ( EvaluationException e ) { e . addStackElement ( this , ctx ) ; throw e ; } if ( r instanceof Collection < ? > ) { result . addAll ( ( ( Collection < ? > ) ( r ) ) ) ; } else { result . add ( r ) ; } } else throw new EvaluationException ( ( ( ( ( ( "Couldn't<seq2seq4repair_space>find<seq2seq4repair_space>operation<seq2seq4repair_space>'" + ( getName ( ) . getValue ( ) ) ) + ( getParamTypes ( evaluatedParams , ctx ) ) ) + "'<seq2seq4repair_space>for<seq2seq4repair_space>" ) + ( ctx . getType ( targetObj ) . getName ( ) ) ) + "!" ) , this , ctx ) ; } } return result ; } <START_BUG> if ( ( ( targetObj != null ) && ( f == null ) ) && ( op == null ) ) <END_BUG> throw new EvaluationException ( ( ( ( ( ( "Couldn't<seq2seq4repair_space>find<seq2seq4repair_space>operation<seq2seq4repair_space>'" + ( getName ( ) . getValue ( ) ) ) + ( getParamTypes ( evaluatedParams , ctx ) ) ) + "'<seq2seq4repair_space>for<seq2seq4repair_space>" ) + ( ctx . getType ( targetObj ) . getName ( ) ) ) + "." ) , this , ctx ) ; return ctx . handleNullEvaluation ( this ) ; } private String getParamTypes ( final Object [ ] params2 , final ExecutionContext ctx ) { } @ Override public Type analyzeInternal ( final ExecutionContext ctx , final Set < AnalysationIssue > issues ) { } private Type getExtensionsReturnType ( final ExecutionContext ctx , final Set < AnalysationIssue > issues , final Type [ ] paramTypes , final Type targetType ) { } private String getParamsString ( final Type [ ] paramTypes ) { } @ Override protected String toStringInternal ( ) { } @ Override public String getNameString ( ExecutionContext context ) { } private String getParamTypesString ( ExecutionContext context ) { } private String getParamsExpressionString ( final Expression [ ] params2 ) { } private Object evaluate ( Extension ext , Object [ ] params , ExecutionContext ctx ) { } private Object evaluate ( Operation op , Object targetObj , Object [ ] params , ExecutionContext ctx ) { } }

Fix:
if ( targetObj != null )