Program: 94723
Project: 94723
Buggy source:
public void onVehicleTypeReceived(FirmwareType type){
  if (drone != null) {
    return;
  }
  DroidPlannerPrefs dpPrefs=new DroidPlannerPrefs(context);
switch (type) {
case ARDU_COPTER:
    if (isCompanionComputerEnabled()) {
      Timber.i("String_Node_Str");
      this.drone=new ArduSolo(context,mavClient,handler,dpPrefs,new AndroidApWarningParser(),this,this);
    }
 else {
      Timber.i("String_Node_Str");
      this.drone=new ArduCopter(context,mavClient,handler,dpPrefs,new AndroidApWarningParser(),this,this);
    }
  break;
case ARDU_SOLO:
Timber.i("String_Node_Str");
this.drone=new ArduSolo(context,mavClient,handler,dpPrefs,new AndroidApWarningParser(),this,this);
break;
case ARDU_PLANE:
Timber.i("String_Node_Str");
this.drone=new ArduPlane(context,mavClient,handler,dpPrefs,new AndroidApWarningParser(),this,this);
break;
case ARDU_ROVER:
Timber.i("String_Node_Str");
this.drone=new ArduRover(context,mavClient,handler,dpPrefs,new AndroidApWarningParser(),this,this);
break;
case PX4_NATIVE:
Timber.i("String_Node_Str");
this.drone=new Px4Native(context,handler,mavClient,new AndroidApWarningParser(),this,this);
break;
case GENERIC:
Timber.i("String_Node_Str");
this.drone=new GenericMavLinkDrone(context,handler,mavClient,new AndroidApWarningParser(),this,this);
break;
}
this.followMe=new Follow(this,handler,new FusedLocation(context,handler));
this.returnToMe=new ReturnToMe(this,new FusedLocation(context,handler,LocationRequest.PRIORITY_HIGH_ACCURACY,1000L,1000L,ReturnToMe.UPDATE_MINIMAL_DISPLACEMENT),this);
StreamRates streamRates=drone.getStreamRates();
if (streamRates != null) {
streamRates.setRates(dpPrefs.getRates());
}
drone.addDroneListener(this);
ParameterManager parameterManager=drone.getParameterManager();
if (parameterManager != null) {
parameterManager.setParameterListener(this);
}
MagnetometerCalibrationImpl magnetometer=drone.getMagnetometerCalibration();
if (magnetometer != null) {
magnetometer.setListener(this);
}
}

Fixed version (ground truth):
public void onVehicleTypeReceived(FirmwareType type){
  if (drone != null) {
    return;
  }
switch (type) {
case ARDU_COPTER:
    if (isCompanionComputerEnabled()) {
      Timber.i("String_Node_Str");
      this.drone=new ArduSolo(context,mavClient,handler,new AndroidApWarningParser(),this,this);
    }
 else {
      Timber.i("String_Node_Str");
      this.drone=new ArduCopter(context,mavClient,handler,new AndroidApWarningParser(),this,this);
    }
  break;
case ARDU_SOLO:
Timber.i("String_Node_Str");
this.drone=new ArduSolo(context,mavClient,handler,new AndroidApWarningParser(),this,this);
break;
case ARDU_PLANE:
Timber.i("String_Node_Str");
this.drone=new ArduPlane(context,mavClient,handler,new AndroidApWarningParser(),this,this);
break;
case ARDU_ROVER:
Timber.i("String_Node_Str");
this.drone=new ArduRover(context,mavClient,handler,new AndroidApWarningParser(),this,this);
break;
case PX4_NATIVE:
Timber.i("String_Node_Str");
this.drone=new Px4Native(context,handler,mavClient,new AndroidApWarningParser(),this,this);
break;
case GENERIC:
Timber.i("String_Node_Str");
this.drone=new GenericMavLinkDrone(context,handler,mavClient,new AndroidApWarningParser(),this,this);
break;
}
this.followMe=new Follow(this,handler,new FusedLocation(context,handler));
this.returnToMe=new ReturnToMe(this,new FusedLocation(context,handler,LocationRequest.PRIORITY_HIGH_ACCURACY,1000L,1000L,ReturnToMe.UPDATE_MINIMAL_DISPLACEMENT),this);
StreamRates streamRates=drone.getStreamRates();
if (streamRates != null) {
DroidPlannerPrefs dpPrefs=new DroidPlannerPrefs(context);
streamRates.setRates(dpPrefs.getRates());
}
drone.addDroneListener(this);
ParameterManager parameterManager=drone.getParameterManager();
if (parameterManager != null) {
parameterManager.setParameterListener(this);
}
MagnetometerCalibrationImpl magnetometer=drone.getMagnetometerCalibration();
if (magnetometer != null) {
magnetometer.setListener(this);
}
}