Program: 181380
Project: 181380
Buggy source:
/** 
 * Called when an attempt to fail over to another network has failed.
 * @param info the {@link NetworkInfo} for the failed network
 */
private void handleConnectionFailure(NetworkInfo info){
  mNetTrackers[info.getType()].setTeardownRequested(false);
  String reason=info.getReason();
  String extraInfo=info.getExtraInfo();
  if (DBG) {
    String reasonText;
    if (reason == null) {
      reasonText="String_Node_Str";
    }
 else {
      reasonText="String_Node_Str" + reason + "String_Node_Str";
    }
    Slog.v(TAG,"String_Node_Str" + info.getTypeName() + "String_Node_Str"+ reasonText);
  }
  Intent intent=new Intent(ConnectivityManager.CONNECTIVITY_ACTION);
  intent.putExtra(ConnectivityManager.EXTRA_NETWORK_INFO,info);
  if (getActiveNetworkInfo() == null) {
    intent.putExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY,true);
  }
  if (reason != null) {
    intent.putExtra(ConnectivityManager.EXTRA_REASON,reason);
  }
  if (extraInfo != null) {
    intent.putExtra(ConnectivityManager.EXTRA_EXTRA_INFO,extraInfo);
  }
  if (info.isFailover()) {
    intent.putExtra(ConnectivityManager.EXTRA_IS_FAILOVER,true);
    info.setFailover(false);
  }
  NetworkStateTracker newNet=null;
  if (mNetAttributes[info.getType()].isDefault()) {
    newNet=tryFailover(info.getType());
    if (newNet != null) {
      NetworkInfo switchTo=newNet.getNetworkInfo();
      intent.putExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO,switchTo);
    }
 else {
      intent.putExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY,true);
    }
  }
  sendStickyBroadcast(intent);
  if (newNet != null && newNet.getNetworkInfo().isConnected()) {
    sendConnectedBroadcast(newNet.getNetworkInfo());
  }
}

Fixed version (ground truth):
/** 
 * Called when an attempt to fail over to another network has failed.
 * @param info the {@link NetworkInfo} for the failed network
 */
private void handleConnectionFailure(NetworkInfo info){
  mNetTrackers[info.getType()].setTeardownRequested(false);
  String reason=info.getReason();
  String extraInfo=info.getExtraInfo();
  if (DBG) {
    String reasonText;
    if (reason == null) {
      reasonText="String_Node_Str";
    }
 else {
      reasonText="String_Node_Str" + reason + "String_Node_Str";
    }
    Slog.v(TAG,"String_Node_Str" + info.getTypeName() + "String_Node_Str"+ reasonText);
  }
  Intent intent=new Intent(ConnectivityManager.CONNECTIVITY_ACTION);
  intent.putExtra(ConnectivityManager.EXTRA_NETWORK_INFO,info);
  if (getActiveNetworkInfo() == null) {
    intent.putExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY,true);
  }
  if (reason != null) {
    intent.putExtra(ConnectivityManager.EXTRA_REASON,reason);
  }
  if (extraInfo != null) {
    intent.putExtra(ConnectivityManager.EXTRA_EXTRA_INFO,extraInfo);
  }
  if (info.isFailover()) {
    intent.putExtra(ConnectivityManager.EXTRA_IS_FAILOVER,true);
    info.setFailover(false);
  }
  NetworkStateTracker newNet=null;
  if (mNetAttributes[info.getType()].isDefault()) {
    newNet=tryFailover(info.getType());
    if (newNet != null) {
      NetworkInfo switchTo=newNet.getNetworkInfo();
      if (!switchTo.isConnected()) {
        mDefaultInetConditionPublished=0;
      }
      intent.putExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO,switchTo);
    }
 else {
      mDefaultInetConditionPublished=0;
      intent.putExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY,true);
    }
  }
  intent.putExtra(ConnectivityManager.EXTRA_INET_CONDITION,mDefaultInetConditionPublished);
  sendStickyBroadcast(intent);
  if (newNet != null && newNet.getNetworkInfo().isConnected()) {
    sendConnectedBroadcast(newNet.getNetworkInfo());
  }
}