Program: 19182
Project: 19182
Buggy source:
@Override protected void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(this);
  oldPoints=new ArrayList<Point>();
  String[] cacheId=new String[0];
  fromPointsScreen=false;
  if (getIntent().hasExtra(PARAM_CACHE_ID)) {
    cacheId=new String[]{getIntent().getStringExtra(PARAM_CACHE_ID)};
    oldPoints.add(null);
  }
 else   if (LocusIntents.isIntentOnPointAction(getIntent())) {
    Point p=LocusIntents.handleIntentOnPointAction(getIntent());
    if (p != null && p.getGeocachingData() != null) {
      cacheId=new String[]{p.getGeocachingData().cacheID};
      oldPoints.add(p);
    }
  }
 else   if (LocusIntents.isIntentPointsScreenTools(getIntent())) {
    fromPointsScreen=true;
    ArrayList<PointsData> pointsData=LocusIntents.handleIntentPointsScreenTools(getIntent());
    if (pointsData != null && pointsData.size() > 0) {
      for (      PointsData data : pointsData) {
        for (        Point p : data.getPoints()) {
          oldPoints.add(p);
        }
      }
    }
    cacheId=new String[oldPoints.size()];
    for (int i=0; i < oldPoints.size(); i++) {
      cacheId[i]=oldPoints.get(i).getGeocachingData().cacheID;
    }
  }
 else   if (getIntent().hasExtra(PARAM_SIMPLE_CACHE_ID)) {
    cacheId=new String[]{getIntent().getStringExtra(PARAM_SIMPLE_CACHE_ID)};
    String repeatUpdate=prefs.getString(PrefConstants.DOWNLOADING_FULL_CACHE_DATE_ON_SHOW,PrefConstants.DOWNLOADING_FULL_CACHE_DATE_ON_SHOW__UPDATE_NEVER);
    if (PrefConstants.DOWNLOADING_FULL_CACHE_DATE_ON_SHOW__UPDATE_NEVER.equals(repeatUpdate)) {
      Log.i(TAG,"String_Node_Str");
      setResult(RESULT_CANCELED);
      finish();
      return;
    }
 else     if (PrefConstants.DOWNLOADING_FULL_CACHE_DATE_ON_SHOW__UPDATE_ONCE.equals(repeatUpdate)) {
      Point p=DisplayDataExtended.loadGeocacheFromCache(this,cacheId[0]);
      if (p != null) {
        Log.i(TAG,"String_Node_Str" + cacheId);
        setResult(RESULT_OK,LocusIntents.prepareResultExtraOnDisplayIntent(p,false));
        finish();
        return;
      }
    }
  }
  count=cacheId.length;
  if (count == 0) {
    Log.e(TAG,"String_Node_Str");
    setResult(RESULT_CANCELED);
    finish();
    return;
  }
  ErrorReporter.getInstance().putCustomData("String_Node_Str","String_Node_Str" + Arrays.toString(cacheId));
  if ((task=(UpdateTask)getLastNonConfigurationInstance()) == null) {
    Log.i(TAG,"String_Node_Str" + Arrays.toString(cacheId));
    task=new UpdateTask(this);
    task.execute(cacheId);
  }
 else {
    Log.i(TAG,"String_Node_Str" + Arrays.toString(cacheId));
    task.attach(this);
  }
}

Fixed version (ground truth):
@Override protected void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(this);
  oldPoints=new ArrayList<Point>();
  String[] cacheId=new String[0];
  fromPointsScreen=false;
  if (getIntent().hasExtra(PARAM_CACHE_ID)) {
    cacheId=new String[]{getIntent().getStringExtra(PARAM_CACHE_ID)};
    oldPoints.add(null);
  }
 else   if (LocusIntents.isIntentOnPointAction(getIntent())) {
    Point p=LocusIntents.handleIntentOnPointAction(getIntent());
    if (p != null && p.getGeocachingData() != null) {
      cacheId=new String[]{p.getGeocachingData().cacheID};
      oldPoints.add(p);
    }
  }
 else   if (LocusIntents.isIntentPointsScreenTools(getIntent())) {
    fromPointsScreen=true;
    ArrayList<PointsData> pointsData=LocusIntents.handleIntentPointsScreenTools(getIntent());
    if (pointsData != null && pointsData.size() > 0) {
      for (      PointsData data : pointsData) {
        for (        Point p : data.getPoints()) {
          oldPoints.add(p);
        }
      }
    }
    cacheId=new String[oldPoints.size()];
    for (int i=0; i < oldPoints.size(); i++) {
      cacheId[i]=oldPoints.get(i).getGeocachingData().cacheID;
    }
  }
 else   if (getIntent().hasExtra(PARAM_SIMPLE_CACHE_ID)) {
    cacheId=new String[]{getIntent().getStringExtra(PARAM_SIMPLE_CACHE_ID)};
    oldPoints.add(null);
    String repeatUpdate=prefs.getString(PrefConstants.DOWNLOADING_FULL_CACHE_DATE_ON_SHOW,PrefConstants.DOWNLOADING_FULL_CACHE_DATE_ON_SHOW__UPDATE_NEVER);
    if (PrefConstants.DOWNLOADING_FULL_CACHE_DATE_ON_SHOW__UPDATE_NEVER.equals(repeatUpdate)) {
      Log.i(TAG,"String_Node_Str");
      setResult(RESULT_CANCELED);
      finish();
      return;
    }
 else     if (PrefConstants.DOWNLOADING_FULL_CACHE_DATE_ON_SHOW__UPDATE_ONCE.equals(repeatUpdate)) {
      Point p=DisplayDataExtended.loadGeocacheFromCache(this,cacheId[0]);
      if (p != null) {
        Log.i(TAG,"String_Node_Str" + cacheId);
        setResult(RESULT_OK,LocusIntents.prepareResultExtraOnDisplayIntent(p,false));
        finish();
        return;
      }
    }
  }
  count=cacheId.length;
  if (count == 0) {
    Log.e(TAG,"String_Node_Str");
    setResult(RESULT_CANCELED);
    finish();
    return;
  }
  ErrorReporter.getInstance().putCustomData("String_Node_Str","String_Node_Str" + Arrays.toString(cacheId));
  if ((task=(UpdateTask)getLastNonConfigurationInstance()) == null) {
    Log.i(TAG,"String_Node_Str" + Arrays.toString(cacheId));
    task=new UpdateTask(this);
    task.execute(cacheId);
  }
 else {
    Log.i(TAG,"String_Node_Str" + Arrays.toString(cacheId));
    task.attach(this);
  }
}