Program: 88764
Project: 88764
Buggy source:
private void javafy_invoke_expr(ValueBox vb){
  InvokeExpr ie=(InvokeExpr)vb.getValue();
  addPackage(ie.getMethod().getDeclaringClass().getJavaPackageName());
  for (int i=0; i < ie.getArgCount(); i++) {
    Value arg=ie.getArg(i);
    if (arg instanceof IntConstant)     ie.getArgBox(i).setValue(DIntConstant.v(((IntConstant)arg).value,ie.getMethod().getParameterType(i)));
 else     javafy(ie.getArgBox(i));
  }
  if (ie instanceof InstanceInvokeExpr) {
    javafy(((InstanceInvokeExpr)ie).getBaseBox());
    if (ie instanceof VirtualInvokeExpr) {
      VirtualInvokeExpr vie=(VirtualInvokeExpr)ie;
      vb.setValue(new DVirtualInvokeExpr(vie.getBase(),vie.getMethod(),vie.getArgs(),thisLocals));
    }
 else     if (ie instanceof SpecialInvokeExpr) {
      SpecialInvokeExpr sie=(SpecialInvokeExpr)ie;
      vb.setValue(new DSpecialInvokeExpr(sie.getBase(),sie.getMethod(),sie.getArgs()));
    }
 else     if (ie instanceof InterfaceInvokeExpr) {
      InterfaceInvokeExpr iie=(InterfaceInvokeExpr)ie;
      vb.setValue(new DInterfaceInvokeExpr(iie.getBase(),iie.getMethod(),iie.getArgs()));
    }
 else     throw new RuntimeException("String_Node_Str" + ie + "String_Node_Str");
  }
 else   if (ie instanceof StaticInvokeExpr) {
    StaticInvokeExpr sie=(StaticInvokeExpr)ie;
    if (sie instanceof NewInvokeExpr) {
      NewInvokeExpr nie=(NewInvokeExpr)sie;
      RefType rt=nie.getBaseType();
      addPackage(rt.getSootClass().getJavaPackageName());
      vb.setValue(new DNewInvokeExpr((RefType)nie.getType(),nie.getMethod(),nie.getArgs()));
    }
 else     vb.setValue(new DStaticInvokeExpr(sie.getMethod(),sie.getArgs()));
  }
 else   throw new RuntimeException("String_Node_Str" + ie + "String_Node_Str");
}

Fixed version (ground truth):
private void javafy_invoke_expr(ValueBox vb){
  InvokeExpr ie=(InvokeExpr)vb.getValue();
  addPackage(ie.getMethod().getDeclaringClass().getJavaPackageName());
  for (int i=0; i < ie.getArgCount(); i++) {
    Value arg=ie.getArg(i);
    if (arg instanceof IntConstant)     ie.getArgBox(i).setValue(DIntConstant.v(((IntConstant)arg).value,ie.getMethod().getParameterType(i)));
 else     javafy(ie.getArgBox(i));
  }
  if (ie instanceof InstanceInvokeExpr) {
    javafy(((InstanceInvokeExpr)ie).getBaseBox());
    if (ie instanceof VirtualInvokeExpr) {
      VirtualInvokeExpr vie=(VirtualInvokeExpr)ie;
      vb.setValue(new DVirtualInvokeExpr(vie.getBase(),vie.getMethod(),vie.getArgs(),thisLocals));
    }
 else     if (ie instanceof SpecialInvokeExpr) {
      SpecialInvokeExpr sie=(SpecialInvokeExpr)ie;
      vb.setValue(new DSpecialInvokeExpr(sie.getBase(),sie.getMethod(),sie.getArgs()));
    }
 else     if (ie instanceof InterfaceInvokeExpr) {
      InterfaceInvokeExpr iie=(InterfaceInvokeExpr)ie;
      vb.setValue(new DInterfaceInvokeExpr(iie.getBase(),iie.getMethod(),iie.getArgs()));
    }
 else     throw new RuntimeException("String_Node_Str" + ie + "String_Node_Str");
  }
 else   if (ie instanceof StaticInvokeExpr) {
    StaticInvokeExpr sie=(StaticInvokeExpr)ie;
    if (sie instanceof NewInvokeExpr) {
      NewInvokeExpr nie=(NewInvokeExpr)sie;
      RefType rt=nie.getBaseType();
      addPackage(rt.getSootClass().getJavaPackageName());
      vb.setValue(new DNewInvokeExpr((RefType)nie.getType(),nie.getMethod(),nie.getArgs()));
    }
 else {
      SootMethod method=sie.getMethod();
      addPackage(method.getDeclaringClass().getJavaPackageName());
      vb.setValue(new DStaticInvokeExpr(method,sie.getArgs()));
    }
  }
 else   throw new RuntimeException("String_Node_Str" + ie + "String_Node_Str");
}