Program: 186787
Project: 186787
Buggy source:
/** 
 * @param args
 */
public static void main(String[] args){
  int start=0;
  int stop=0;
  int time=0;
  System.out.println("String_Node_Str");
  int nrCpu=Runtime.getRuntime().availableProcessors();
  if (nrCpu < 3) {
    throw new Error("String_Node_Str");
  }
  Runnable sender=new Runnable(){
    public void run(){
      PrivateScope scope=new PrivateScope(1000);
      Runnable r=new Runnable(){
        public void run(){
          while (NoC.isSending()) {
          }
          Native.wr(2,NoC.NOC_REG_SNDDST);
          Native.wr(CNT,NoC.NOC_REG_SNDCNT);
          for (int i=0; i < CNT; ++i) {
            Native.wr(i,NoC.NOC_REG_SNDDATA);
          }
        }
      }
;
      scope.enter(r);
    }
  }
;
  Runnable receiver=new Runnable(){
    public void run(){
      PrivateScope scope=new PrivateScope(1000);
      Runnable r=new Runnable(){
        public void run(){
          int buffer[]=new int[CNT];
          while (!NoC.isReceiving()) {
          }
          for (int i=0; i < CNT; ++i) {
            buffer[i]=Native.rd(NoC.NOC_REG_RCVDATA);
          }
          NoC.writeReset();
          finished=true;
        }
      }
;
      scope.enter(r);
    }
  }
;
  new RtThread(sender,1,1000).setProcessor(1);
  new RtThread(receiver,1,1000).setProcessor(2);
  System.out.println("String_Node_Str");
  RtThread.startMission();
  start=(int)System.currentTimeMillis();
  while (!finished) {
    ;
  }
  stop=(int)System.currentTimeMillis();
  System.out.println("String_Node_Str" + start);
  System.out.println("String_Node_Str" + stop);
  time=stop - start;
  System.out.println("String_Node_Str" + time);
}

Fixed version (ground truth):
/** 
 * @param args
 */
public static void main(String[] args){
  int start=0;
  int stop=0;
  int time=0;
  System.out.println("String_Node_Str");
  int nrCpu=Runtime.getRuntime().availableProcessors();
  if (nrCpu < 3) {
    throw new Error("String_Node_Str");
  }
  Runnable sender=new Runnable(){
    public void run(){
      PrivateScope scope=new PrivateScope(1000);
      Runnable r=new Runnable(){
        public void run(){
          int buffer[]=new int[CNT];
          for (int i=0; i < CNT; ++i) {
            buffer[i]=i;
          }
          while (NoC.isSending()) {
          }
          Native.wr(2,NoC.NOC_REG_SNDDST);
          Native.wr(CNT,NoC.NOC_REG_SNDCNT);
          for (int i=0; i < CNT; ++i) {
            Native.wr(buffer[i],NoC.NOC_REG_SNDDATA);
          }
        }
      }
;
      scope.enter(r);
    }
  }
;
  Runnable receiver=new Runnable(){
    public void run(){
      PrivateScope scope=new PrivateScope(1000);
      Runnable r=new Runnable(){
        public void run(){
          int buffer[]=new int[CNT];
          while (!NoC.isReceiving()) {
          }
          for (int i=0; i < CNT; ++i) {
            buffer[i]=Native.rd(NoC.NOC_REG_RCVDATA);
          }
          NoC.writeReset();
          finished=true;
        }
      }
;
      scope.enter(r);
    }
  }
;
  new RtThread(sender,1,1000).setProcessor(1);
  new RtThread(receiver,1,1000).setProcessor(2);
  System.out.println("String_Node_Str");
  RtThread.startMission();
  start=(int)System.currentTimeMillis();
  while (!finished) {
    ;
  }
  stop=(int)System.currentTimeMillis();
  System.out.println("String_Node_Str" + start);
  System.out.println("String_Node_Str" + stop);
  time=stop - start;
  System.out.println("String_Node_Str" + time);
}