Program: 179497
Project: 179497
Buggy source:
protected void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(R.layout.map);
  mapView=(MapView)findViewById(R.id.mapview);
  mapView.setKeepScreenOn(true);
  mapView.setZoomMax((byte)19);
  mapView.setZoomMin((byte)19);
  mapView.setClickable(true);
  mapView.setMapFile(G.mapDir + G.mapFile);
  animator=new Runnable(){
    public void run(){
      double timeStep=(System.currentTimeMillis() - lastTime) * 0.003;
      lastTime=System.currentTimeMillis();
      if (end != null) {
        double newLat=start.getLatitude() + (end.getLatitude() - start.getLatitude()) * timeStep;
        double newLon=start.getLongitude() + (end.getLongitude() - start.getLongitude()) * timeStep;
        start=new GeoPoint(newLat,newLon);
        Location loc=Util.fromGeoPoint(start);
        if (loc.distanceTo(end_loc) < 1) {
          G.player.setLocation(end_loc);
          mapController.setCenter(end);
          end=null;
        }
 else {
          G.player.setLocation(loc);
          mapController.setCenter(start);
        }
      }
      trainer_aura.requestRedraw();
      animHandler.postDelayed(animator,50);
    }
  }
;
  redraw=new Runnable(){
    public void run(){
      players.requestRedraw();
      shadows_player.requestRedraw();
      redrawHandler.postDelayed(redraw,1000);
    }
  }
;
  animHandler=new Handler();
  redrawHandler=new Handler();
  mapView.setOnTouchListener(new View.OnTouchListener(){
    public boolean onTouch(    View v,    MotionEvent e){
      if (e.getAction() == MotionEvent.ACTION_MOVE)       return true;
 else       if (e.getAction() == MotionEvent.ACTION_UP) {
        if (G.testMode == TestMode.CONTROL) {
          if (SystemClock.uptimeMillis() - e.getDownTime() > 500)           return false;
 else {
            GeoPoint point=mapView.getProjection().fromPixels((int)e.getX(),(int)e.getY());
            G.game.onLocationChanged(Util.fromGeoPoint(point));
            return true;
          }
        }
 else         return false;
      }
 else       return false;
    }
  }
);
  mapController=mapView.getController();
  mapController.setCenter(new GeoPoint(-33.957657,18.46125));
  start=new GeoPoint(-33.957657,18.46125);
  mapController.setZoom(19);
  bag_button=(Button)findViewById(R.id.bag_button);
  bag_button.setOnClickListener(this);
  poke_button=(Button)findViewById(R.id.poke_button);
  poke_button.setOnClickListener(this);
  coins=(TextView)findViewById(R.id.coins_label);
  coins.setText(G.player.coins + "String_Node_Str");
  rank=(TextView)findViewById(R.id.rank_label);
  rank.setText("String_Node_Str");
  persistent_alert=(TextView)findViewById(R.id.persistent_alert);
  persistent_alert.setText("String_Node_Str");
  persistent_alert.setVisibility(View.INVISIBLE);
  hud=(ViewGroup)findViewById(R.id.hud);
  alertBuilder=new AlertDialog.Builder(this);
  alertBuilder.setCancelable(false);
  alertBuilder.setNegativeButton("String_Node_Str",new DialogInterface.OnClickListener(){
    public void onClick(    DialogInterface dialog,    int id){
      dialog.cancel();
    }
  }
);
  progressDialog=new ProgressDialog(this,ProgressDialog.STYLE_SPINNER);
  toast=Toast.makeText(this,"String_Node_Str",Toast.LENGTH_SHORT);
  playerIDs=new ArrayList<Integer>();
  itemIDs=new ArrayList<Integer>();
  players=new ArrayItemizedOverlay(G.player_marker_available,this){
    public boolean onTap(    int index){
      G.game.requestPlayer(playerIDs.get(index));
      return true;
    }
  }
;
  ItemizedOverlay.boundCenterBottom(G.player_marker_busy);
  shadows_player=new ArrayItemizedOverlay(getResources().getDrawable(R.drawable.marker_shadow),this);
  items=new ArrayItemizedOverlay(getResources().getDrawable(R.drawable.marker_item),this){
    public boolean onTap(    int index){
      G.game.requestItem(itemIDs.get(index));
      return true;
    }
  }
;
  ItemizedOverlay.boundCenter(getResources().getDrawable(R.drawable.marker_item));
  regions=new ArrayWayOverlay(null,null);
  setupTrainerAura();
  setupTrainerCircle();
  trainer_aura.addItem(G.player.aura);
  trainer_circle.addCircle(G.player.circle);
  mapView.getOverlays().add(regions);
  mapView.getOverlays().add(trainer_circle);
  mapView.getOverlays().add(trainer_aura);
  mapView.getOverlays().add(shadows_player);
  mapView.getOverlays().add(players);
  mapView.getOverlays().add(items);
  if (G.game == null) {
    new Game(this);
    if (G.testMode == TestMode.EXPERIMENT)     location_adapter=new LBGLocationAdapter(this,LBGLocationAdapter.GPS_LOCATION_ONLY,0,2,G.game);
    G.game.createConnection();
    Log.i("String_Node_Str","String_Node_Str");
  }
 else   Log.i("String_Node_Str","String_Node_Str");
}

Fixed version (ground truth):
protected void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(R.layout.map);
  mapView=(MapView)findViewById(R.id.mapview);
  mapView.setKeepScreenOn(true);
  mapView.setZoomMax((byte)19);
  mapView.setZoomMin((byte)19);
  mapView.setClickable(true);
  mapView.setMapFile(G.mapDir + G.mapFile);
  animator=new Runnable(){
    public void run(){
      double timeStep=(System.currentTimeMillis() - lastTime) * 0.003;
      lastTime=System.currentTimeMillis();
      if (end != null) {
        double newLat=start.getLatitude() + (end.getLatitude() - start.getLatitude()) * timeStep;
        double newLon=start.getLongitude() + (end.getLongitude() - start.getLongitude()) * timeStep;
        start=new GeoPoint(newLat,newLon);
        Location loc=Util.fromGeoPoint(start);
        if (loc.distanceTo(end_loc) < 1) {
          G.player.setLocation(end_loc);
          mapController.setCenter(end);
          end=null;
        }
 else {
          G.player.setLocation(loc);
          mapController.setCenter(start);
        }
      }
      trainer_aura.requestRedraw();
      animHandler.postDelayed(animator,50);
    }
  }
;
  redraw=new Runnable(){
    public void run(){
      players.requestRedraw();
      shadows_player.requestRedraw();
      redrawHandler.postDelayed(redraw,1000);
    }
  }
;
  animHandler=new Handler();
  redrawHandler=new Handler();
  mapView.setOnTouchListener(new View.OnTouchListener(){
    public boolean onTouch(    View v,    MotionEvent e){
      if (e.getAction() == MotionEvent.ACTION_MOVE)       return true;
 else       if (e.getAction() == MotionEvent.ACTION_UP) {
        if (G.testMode == TestMode.CONTROL) {
          if (SystemClock.uptimeMillis() - e.getDownTime() > 500)           return false;
 else {
            GeoPoint point=mapView.getProjection().fromPixels((int)e.getX(),(int)e.getY());
            G.game.onLocationChanged(Util.fromGeoPoint(point));
            return true;
          }
        }
 else         return false;
      }
 else       return false;
    }
  }
);
  mapController=mapView.getController();
  mapController.setCenter(new GeoPoint(-33.957657,18.46125));
  start=new GeoPoint(-33.957657,18.46125);
  mapController.setZoom(19);
  bag_button=(Button)findViewById(R.id.bag_button);
  bag_button.setOnClickListener(this);
  poke_button=(Button)findViewById(R.id.poke_button);
  poke_button.setOnClickListener(this);
  coins=(TextView)findViewById(R.id.coins_label);
  coins.setText(G.player.coins + "String_Node_Str");
  rank=(TextView)findViewById(R.id.rank_label);
  rank.setText("String_Node_Str");
  persistent_alert=(TextView)findViewById(R.id.persistent_alert);
  persistent_alert.setText("String_Node_Str");
  persistent_alert.setVisibility(View.INVISIBLE);
  hud=(ViewGroup)findViewById(R.id.hud);
  alertBuilder=new AlertDialog.Builder(this);
  alertBuilder.setCancelable(false);
  alertBuilder.setNegativeButton("String_Node_Str",new DialogInterface.OnClickListener(){
    public void onClick(    DialogInterface dialog,    int id){
      dialog.cancel();
    }
  }
);
  progressDialog=new ProgressDialog(this,ProgressDialog.STYLE_SPINNER);
  toast=Toast.makeText(this,"String_Node_Str",Toast.LENGTH_SHORT);
  playerIDs=new ArrayList<Integer>();
  itemIDs=new ArrayList<Integer>();
  players=new ArrayItemizedOverlay(G.player_marker_available,this){
    public boolean onTap(    int index){
      G.game.requestPlayer(playerIDs.get(index));
      return true;
    }
  }
;
  ItemizedOverlay.boundCenterBottom(G.player_marker_busy);
  shadows_player=new ArrayItemizedOverlay(getResources().getDrawable(R.drawable.marker_shadow),this);
  items=new ArrayItemizedOverlay(getResources().getDrawable(R.drawable.marker_item),this){
    public boolean onTap(    int index){
      G.game.requestItem(itemIDs.get(index));
      return true;
    }
  }
;
  ItemizedOverlay.boundCenter(getResources().getDrawable(R.drawable.marker_item));
  regions=new ArrayWayOverlay(null,null);
  setupTrainerAura();
  setupTrainerCircle();
  trainer_aura.addItem(G.player.aura);
  trainer_circle.addCircle(G.player.circle);
  mapView.getOverlays().add(regions);
  mapView.getOverlays().add(trainer_circle);
  mapView.getOverlays().add(trainer_aura);
  mapView.getOverlays().add(shadows_player);
  mapView.getOverlays().add(players);
  mapView.getOverlays().add(items);
  if (G.game == null) {
    new Game(this);
    G.game.createConnection();
    Log.i("String_Node_Str","String_Node_Str");
  }
 else   Log.i("String_Node_Str","String_Node_Str");
  if (G.testMode == TestMode.EXPERIMENT)   location_adapter=new LBGLocationAdapter(this,LBGLocationAdapter.GPS_LOCATION_ONLY,0,2,G.game);
}