Program: 165055
Project: 165055
Buggy source:
/** 
 * Broadcast the given intent to all interested BroadcastReceivers.  This call is asynchronous; it returns immediately, and you will continue executing while the receivers are run.
 * @param intent The Intent to broadcast; all receivers matching thisIntent will receive the broadcast.
 * @see #registerReceiver
 */
public boolean sendBroadcast(Intent intent){
synchronized (mReceivers) {
    final String action=intent.getAction();
    final String type=intent.resolveTypeIfNeeded(mAppContext.getContentResolver());
    final Uri data=intent.getData();
    final String scheme=intent.getScheme();
    final Set<String> categories=intent.getCategories();
    final boolean debug=DEBUG || ((intent.getFlags() & Intent.FLAG_DEBUG_LOG_RESOLUTION) != 0);
    if (debug)     Log.v(TAG,"String_Node_Str" + type + "String_Node_Str"+ scheme+ "String_Node_Str"+ intent);
    ArrayList<ReceiverRecord> entries=mActions.get(intent.getAction());
    if (entries != null) {
      if (debug)       Log.v(TAG,"String_Node_Str" + entries);
      ArrayList<ReceiverRecord> receivers=null;
      for (int i=0; i < entries.size(); i++) {
        ReceiverRecord receiver=entries.get(i);
        if (debug)         Log.v(TAG,"String_Node_Str" + receiver.filter);
        if (receiver.broadcasting) {
          if (debug) {
            Log.v(TAG,"String_Node_Str");
          }
          continue;
        }
        int match=receiver.filter.match(action,type,scheme,data,categories,"String_Node_Str");
        if (match >= 0) {
          if (debug)           Log.v(TAG,"String_Node_Str" + Integer.toHexString(match));
          if (receivers == null) {
            receivers=new ArrayList<ReceiverRecord>();
          }
          receivers.add(receiver);
          receiver.broadcasting=true;
        }
 else {
          if (debug) {
            String reason;
switch (match) {
case IntentFilter.NO_MATCH_ACTION:
              reason="String_Node_Str";
            break;
case IntentFilter.NO_MATCH_CATEGORY:
          reason="String_Node_Str";
        break;
case IntentFilter.NO_MATCH_DATA:
      reason="String_Node_Str";
    break;
case IntentFilter.NO_MATCH_TYPE:
  reason="String_Node_Str";
break;
default :
reason="String_Node_Str";
break;
}
Log.v(TAG,"String_Node_Str" + reason);
}
}
}
if (receivers != null) {
for (int i=0; i < receivers.size(); i++) {
receivers.get(i).broadcasting=false;
}
mPendingBroadcasts.add(new BroadcastRecord(intent,receivers));
if (!mHandler.hasMessages(MSG_EXEC_PENDING_BROADCASTS)) {
mHandler.sendEmptyMessage(MSG_EXEC_PENDING_BROADCASTS);
}
return true;
}
}
}
return false;
}

Fixed version (ground truth):
/** 
 * Broadcast the given intent to all interested BroadcastReceivers.  This call is asynchronous; it returns immediately, and you will continue executing while the receivers are run.
 * @param intent The Intent to broadcast; all receivers matching thisIntent will receive the broadcast.
 * @see #registerReceiver
 */
public boolean sendBroadcast(Intent intent){
synchronized (mReceivers) {
    final String action=intent.getAction();
    final String type=intent.resolveTypeIfNeeded(mAppContext.getContentResolver());
    final Uri data=intent.getData();
    final String scheme=intent.getScheme();
    final Set<String> categories=intent.getCategories();
    ArrayList<ReceiverRecord> entries=mActions.get(intent.getAction());
    if (entries != null) {
      ArrayList<ReceiverRecord> receivers=null;
      for (int i=0; i < entries.size(); i++) {
        ReceiverRecord receiver=entries.get(i);
        if (receiver.broadcasting) {
          continue;
        }
        int match=receiver.filter.match(action,type,scheme,data,categories,"String_Node_Str");
        if (match >= 0) {
          if (receivers == null) {
            receivers=new ArrayList<ReceiverRecord>();
          }
          receivers.add(receiver);
          receiver.broadcasting=true;
        }
      }
      if (receivers != null) {
        for (int i=0; i < receivers.size(); i++) {
          receivers.get(i).broadcasting=false;
        }
        mPendingBroadcasts.add(new BroadcastRecord(intent,receivers));
        if (!mHandler.hasMessages(MSG_EXEC_PENDING_BROADCASTS)) {
          mHandler.sendEmptyMessage(MSG_EXEC_PENDING_BROADCASTS);
        }
        return true;
      }
    }
  }
  return false;
}