Program: 147314
Project: 147314
Buggy source:
@MJI public void arraycopy__Ljava_lang_Object_2ILjava_lang_Object_2II__V(final MJIEnv env,int clsObjRef,Conditional<Integer> srcArrayRef,final Conditional<Integer> srcIdx,final Conditional<Integer> dstArrayRef,final Conditional<Integer> dstIdx,final Conditional<Integer> length,FeatureExpr ctx){
  srcArrayRef.mapf(ctx,new BiFunction<FeatureExpr,Integer,Conditional<Integer>>(){
    @Override public Conditional<Integer> apply(    FeatureExpr ctx,    final Integer srcArrayRef){
      dstArrayRef.mapf(ctx,new BiFunction<FeatureExpr,Integer,Conditional<Integer>>(){
        @Override public Conditional<Integer> apply(        FeatureExpr ctx,        final Integer dstArrayRef){
          length.mapf(ctx,new BiFunction<FeatureExpr,Integer,Conditional<Integer>>(){
            @Override public Conditional<Integer> apply(            FeatureExpr ctx,            final Integer length){
              if (ctx.isContradiction()) {
                return null;
              }
              if ((srcArrayRef.intValue() == MJIEnv.NULL) || (dstArrayRef.intValue() == MJIEnv.NULL)) {
                env.throwException(ctx,"String_Node_Str");
                return null;
              }
              final ElementInfo eiSrc=env.getElementInfo(srcArrayRef);
              final ElementInfo eiDst=env.getModifiableElementInfo(dstArrayRef);
              try {
                srcIdx.mapf(ctx,new BiFunction<FeatureExpr,Integer,Conditional<Object>>(){
                  @Override public Conditional<Object> apply(                  FeatureExpr ctx,                  final Integer srcIdx){
                    dstIdx.mapf(ctx,new BiFunction<FeatureExpr,Integer,Conditional<Object>>(){
                      @Override public Conditional<Object> apply(                      FeatureExpr ctx,                      Integer dstIdx){
                        eiDst.copyElements(ctx,env.getThreadInfo(),eiSrc,srcIdx,dstIdx,length);
                        return null;
                      }
                    }
);
                    return null;
                  }
                }
);
              }
 catch (              IndexOutOfBoundsException iobx) {
                env.throwException(ctx,"String_Node_Str",iobx.getMessage());
              }
catch (              ArrayStoreException asx) {
                env.throwException(ctx,"String_Node_Str",asx.getMessage());
              }
              return null;
            }
          }
);
          return null;
        }
      }
);
      return null;
    }
  }
);
}

Fixed version (ground truth):
@MJI public void arraycopy__Ljava_lang_Object_2ILjava_lang_Object_2II__V(final MJIEnv env,int clsObjRef,Conditional<Integer> srcArrayRef,final Conditional<Integer> srcIdx,final Conditional<Integer> dstArrayRef,final Conditional<Integer> dstIdx,final Conditional<Integer> length,FeatureExpr ctx){
  srcArrayRef.mapf(ctx,new BiFunction<FeatureExpr,Integer,Conditional<Integer>>(){
    @Override public Conditional<Integer> apply(    FeatureExpr ctx,    final Integer srcArrayRef){
      dstArrayRef.mapf(ctx,new BiFunction<FeatureExpr,Integer,Conditional<Integer>>(){
        @Override public Conditional<Integer> apply(        FeatureExpr ctx,        final Integer dstArrayRef){
          length.mapf(ctx,new BiFunction<FeatureExpr,Integer,Conditional<Integer>>(){
            @Override public Conditional<Integer> apply(            FeatureExpr ctx,            final Integer length){
              if (ctx.isContradiction()) {
                return null;
              }
              if ((srcArrayRef.intValue() == MJIEnv.NULL) || (dstArrayRef.intValue() == MJIEnv.NULL)) {
                env.throwException(ctx,"String_Node_Str");
                return null;
              }
              final ElementInfo eiSrc=env.getElementInfo(srcArrayRef);
              final ElementInfo eiDst=env.getModifiableElementInfo(dstArrayRef);
              try {
                srcIdx.mapf(ctx,new BiFunction<FeatureExpr,Integer,Conditional<Object>>(){
                  @Override public Conditional<Object> apply(                  FeatureExpr ctx,                  final Integer srcIdx){
                    dstIdx.mapf(ctx,new BiFunction<FeatureExpr,Integer,Conditional<Object>>(){
                      @Override public Conditional<Object> apply(                      FeatureExpr ctx,                      Integer dstIdx){
                        if (ctx.isContradiction()) {
                          return null;
                        }
                        eiDst.copyElements(ctx,env.getThreadInfo(),eiSrc,srcIdx,dstIdx,length);
                        return null;
                      }
                    }
);
                    return null;
                  }
                }
);
              }
 catch (              IndexOutOfBoundsException iobx) {
                env.throwException(ctx,"String_Node_Str",iobx.getMessage());
              }
catch (              ArrayStoreException asx) {
                env.throwException(ctx,"String_Node_Str",asx.getMessage());
              }
              return null;
            }
          }
);
          return null;
        }
      }
);
      return null;
    }
  }
);
}