2323import java .util .ListIterator ;
2424
2525import static org .jd .core .v1 .model .javasyntax .statement .ContinueStatement .CONTINUE ;
26- import static org .jd .core .v1 .service .converter .classfiletojavasyntax .util .ReflectionUtil .getExpression ;
27- import static org .jd .core .v1 .service .converter .classfiletojavasyntax .util .ReflectionUtil .invokeGetter ;
2826
2927public class LoopStatementMaker {
3028 protected static final RemoveLastContinueStatementVisitor REMOVE_LAST_CONTINUE_STATEMENT_VISITOR = new RemoveLastContinueStatementVisitor ();
@@ -378,7 +376,19 @@ protected static Statement makeForEachArray(LocalVariableMaker localVariableMake
378376 }
379377
380378 // String s = arr$[i$];
381- boe = invokeGetter (subStatements .get (0 ), getExpression , BinaryOperatorExpression .class );
379+ statement = subStatements .getFirst ();
380+
381+ if (statement .getClass () != ExpressionStatement .class ) {
382+ return null ;
383+ }
384+
385+ expression = ((ExpressionStatement )statement ).getExpression ();
386+
387+ if (expression .getClass () != BinaryOperatorExpression .class ) {
388+ return null ;
389+ }
390+
391+ boe = (BinaryOperatorExpression )expression ;
382392
383393 if ((boe .getRightExpression ().getClass () != ArrayExpression .class ) || (boe .getLeftExpression ().getClass () != ClassFileLocalVariableReferenceExpression .class ) || (boe .getLineNumber () != condition .getLineNumber ())) {
384394 return null ;
@@ -401,7 +411,19 @@ protected static Statement makeForEachArray(LocalVariableMaker localVariableMake
401411 }
402412
403413 // arr$ = array;
404- boe = invokeGetter (statements .get (statementsSize -3 ), getExpression , BinaryOperatorExpression .class );
414+ statement = statements .get (statementsSize -3 );
415+
416+ if (statement .getClass () != ExpressionStatement .class ) {
417+ return null ;
418+ }
419+
420+ expression = ((ExpressionStatement )statement ).getExpression ();
421+
422+ if (expression .getClass () != BinaryOperatorExpression .class ) {
423+ return null ;
424+ }
425+
426+ boe = (BinaryOperatorExpression )expression ;
405427
406428 if (boe .getLeftExpression ().getClass () != ClassFileLocalVariableReferenceExpression .class ) {
407429 return null ;
@@ -413,9 +435,21 @@ protected static Statement makeForEachArray(LocalVariableMaker localVariableMake
413435 Expression array = boe .getRightExpression ();
414436
415437 // i$ = 0;
416- boe = invokeGetter (statements .get (statementsSize -1 ), getExpression , BinaryOperatorExpression .class );
438+ statement = statements .get (statementsSize -1 );
439+
440+ if (statement .getClass () != ExpressionStatement .class ) {
441+ return null ;
442+ }
443+
444+ expression = ((ExpressionStatement )statement ).getExpression ();
445+
446+ if (expression .getClass () != BinaryOperatorExpression .class ) {
447+ return null ;
448+ }
449+
450+ boe = (BinaryOperatorExpression )expression ;
417451
418- if ((boe == null ) || ( boe .getLineNumber () != lineNumber ) || (boe .getLeftExpression ().getClass () != ClassFileLocalVariableReferenceExpression .class ) || (boe .getRightExpression ().getClass () != IntegerConstantExpression .class )) {
452+ if ((boe .getLineNumber () != lineNumber ) || (boe .getLeftExpression ().getClass () != ClassFileLocalVariableReferenceExpression .class ) || (boe .getRightExpression ().getClass () != IntegerConstantExpression .class )) {
419453 return null ;
420454 }
421455 if ((((IntegerConstantExpression )boe .getRightExpression ()).getValue () != 0 ) || (((ClassFileLocalVariableReferenceExpression )boe .getLeftExpression ()).getLocalVariable () != syntheticIndex )) {
0 commit comments