Program: 53159
Project: 53159
Buggy source:
@Override public void init(){
  super.init();
  timePrev=Double.NaN;
  gpsInited=false;
  baroInited=false;
  est=new double[3][2];
  corrGPS=new double[3][2];
  corrBaro=0.0;
  wGPS=new double[3];
  acc=new BasicVector(3);
  accBias=new BasicVector(3);
  gps=new double[3][2];
  baro=0.0;
  baroOffset=0.0;
  delayLineGPS=new DelayLine<double[][]>();
  positionProjector=new GlobalPositionProjector();
  param_Fields_GPS=((String)parameters.get("String_Node_Str")).split(WHITESPACE_RE);
  param_Fields_Acc=((String)parameters.get("String_Node_Str")).split(WHITESPACE_RE);
  param_Fields_Att=((String)parameters.get("String_Node_Str")).split(WHITESPACE_RE);
  param_Field_Baro=(String)parameters.get("String_Node_Str");
  param_W_GPS=new double[3][2];
  param_W_GPS[0][0]=(Double)parameters.get("String_Node_Str");
  param_W_GPS[1][0]=param_W_GPS[0][0];
  param_W_GPS[0][1]=(Double)parameters.get("String_Node_Str");
  param_W_GPS[1][1]=param_W_GPS[0][1];
  param_W_GPS[2][0]=(Double)parameters.get("String_Node_Str");
  param_W_Baro=(Double)parameters.get("String_Node_Str");
  param_W_Acc_Bias=(Double)parameters.get("String_Node_Str");
  delayLineGPS.setDelay((Double)parameters.get("String_Node_Str"));
  show=new boolean[]{false,false,false};
  offsets=new double[]{0.0,0.0,0.0};
  scales=new double[]{1.0,1.0,1.0};
  String showStr=(String)parameters.get("String_Node_Str");
  String[] offsetsStr=((String)parameters.get("String_Node_Str")).split(WHITESPACE_RE);
  if (!(Boolean)parameters.get("String_Node_Str")) {
    scales[2]=-1.0;
  }
  for (int i=0; i < 3; i++) {
    String axisName="String_Node_Str".substring(i,i + 1);
    show[i]=showStr.contains(axisName);
    if (show[i]) {
      addSeries(axisName);
      addSeries("String_Node_Str" + axisName);
      addSeries("String_Node_Str" + axisName);
    }
    if (offsetsStr.length > i) {
      offsets[i]=Double.parseDouble(offsetsStr[i]);
    }
 else {
      offsets[i]=0.0;
    }
  }
}

Fixed version (ground truth):
@Override public void init(){
  super.init();
  timePrev=Double.NaN;
  gpsInited=false;
  baroInited=false;
  rot=null;
  est=new double[3][2];
  corrGPS=new double[3][2];
  corrBaro=0.0;
  wGPS=new double[3];
  acc=new BasicVector(3);
  accBias=new BasicVector(3);
  gps=new double[3][2];
  baro=0.0;
  baroOffset=0.0;
  delayLineGPS=new DelayLine<double[][]>();
  positionProjector=new GlobalPositionProjector();
  param_Fields_GPS=((String)parameters.get("String_Node_Str")).split(WHITESPACE_RE);
  param_Fields_Acc=((String)parameters.get("String_Node_Str")).split(WHITESPACE_RE);
  param_Fields_Att=((String)parameters.get("String_Node_Str")).split(WHITESPACE_RE);
  param_Field_Baro=(String)parameters.get("String_Node_Str");
  param_W_GPS=new double[3][2];
  param_W_GPS[0][0]=(Double)parameters.get("String_Node_Str");
  param_W_GPS[1][0]=param_W_GPS[0][0];
  param_W_GPS[0][1]=(Double)parameters.get("String_Node_Str");
  param_W_GPS[1][1]=param_W_GPS[0][1];
  param_W_GPS[2][0]=(Double)parameters.get("String_Node_Str");
  param_W_Baro=(Double)parameters.get("String_Node_Str");
  param_W_Acc_Bias=(Double)parameters.get("String_Node_Str");
  delayLineGPS.setDelay((Double)parameters.get("String_Node_Str"));
  show=new boolean[]{false,false,false};
  offsets=new double[]{0.0,0.0,0.0};
  scales=new double[]{1.0,1.0,1.0};
  String showStr=(String)parameters.get("String_Node_Str");
  String[] offsetsStr=((String)parameters.get("String_Node_Str")).split(WHITESPACE_RE);
  if (!(Boolean)parameters.get("String_Node_Str")) {
    scales[2]=-1.0;
  }
  for (int i=0; i < 3; i++) {
    String axisName="String_Node_Str".substring(i,i + 1);
    show[i]=showStr.contains(axisName);
    if (show[i]) {
      addSeries(axisName);
      addSeries("String_Node_Str" + axisName);
      addSeries("String_Node_Str" + axisName);
    }
    if (offsetsStr.length > i) {
      offsets[i]=Double.parseDouble(offsetsStr[i]);
    }
 else {
      offsets[i]=0.0;
    }
  }
}