Program: 23733
Project: 23733
Buggy source:
void onPropertyChanged(String[] propValues){
  if (mBluetoothService.isAdapterPropertiesEmpty()) {
    mBluetoothService.getAllProperties();
  }
  String name=propValues[0];
  if (name.equals("String_Node_Str")) {
    Intent intent=new Intent(BluetoothDevice.ACTION_NAME_CHANGED);
    intent.putExtra(BluetoothDevice.EXTRA_NAME,propValues[1]);
    mContext.sendBroadcast(intent,BLUETOOTH_PERM);
    mBluetoothService.setProperty(name,propValues[1]);
  }
 else   if (name.equals("String_Node_Str") || name.equals("String_Node_Str")) {
    String pairable=name.equals("String_Node_Str") ? propValues[1] : mBluetoothService.getProperty("String_Node_Str");
    String discoverable=name.equals("String_Node_Str") ? propValues[1] : mBluetoothService.getProperty("String_Node_Str");
    if (pairable == null || discoverable == null)     return;
    int mode=BluetoothService.bluezStringToScanMode(pairable.equals("String_Node_Str"),discoverable.equals("String_Node_Str"));
    if (mode >= 0) {
      Intent intent=new Intent(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED);
      intent.putExtra(BluetoothAdapter.EXTRA_SCAN_MODE,mode);
      intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
      mContext.sendBroadcast(intent,BLUETOOTH_PERM);
    }
    mBluetoothService.setProperty(name,propValues[1]);
  }
 else   if (name.equals("String_Node_Str")) {
    Intent intent;
    if (propValues[1].equals("String_Node_Str")) {
      mBluetoothService.setIsDiscovering(true);
      intent=new Intent(BluetoothAdapter.ACTION_DISCOVERY_STARTED);
    }
 else {
      mBluetoothService.cancelDiscovery();
      mBluetoothService.setIsDiscovering(false);
      intent=new Intent(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
    }
    mContext.sendBroadcast(intent,BLUETOOTH_PERM);
    mBluetoothService.setProperty(name,propValues[1]);
  }
 else   if (name.equals("String_Node_Str")) {
    String value=null;
    int len=Integer.valueOf(propValues[1]);
    if (len > 0) {
      StringBuilder str=new StringBuilder();
      for (int i=2; i < propValues.length; i++) {
        str.append(propValues[i]);
        str.append("String_Node_Str");
      }
      value=str.toString();
    }
    mBluetoothService.setProperty(name,value);
  }
 else   if (name.equals("String_Node_Str")) {
    if (propValues[1].equals("String_Node_Str"))     onRestartRequired();
  }
}

Fixed version (ground truth):
void onPropertyChanged(String[] propValues){
  if (mBluetoothService.isAdapterPropertiesEmpty()) {
    mBluetoothService.getAllProperties();
  }
  String name=propValues[0];
  if (name.equals("String_Node_Str")) {
    Intent intent=new Intent(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED);
    intent.putExtra(BluetoothAdapter.EXTRA_LOCAL_NAME,propValues[1]);
    mContext.sendBroadcast(intent,BLUETOOTH_PERM);
    mBluetoothService.setProperty(name,propValues[1]);
  }
 else   if (name.equals("String_Node_Str") || name.equals("String_Node_Str")) {
    String pairable=name.equals("String_Node_Str") ? propValues[1] : mBluetoothService.getProperty("String_Node_Str");
    String discoverable=name.equals("String_Node_Str") ? propValues[1] : mBluetoothService.getProperty("String_Node_Str");
    if (pairable == null || discoverable == null)     return;
    int mode=BluetoothService.bluezStringToScanMode(pairable.equals("String_Node_Str"),discoverable.equals("String_Node_Str"));
    if (mode >= 0) {
      Intent intent=new Intent(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED);
      intent.putExtra(BluetoothAdapter.EXTRA_SCAN_MODE,mode);
      intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
      mContext.sendBroadcast(intent,BLUETOOTH_PERM);
    }
    mBluetoothService.setProperty(name,propValues[1]);
  }
 else   if (name.equals("String_Node_Str")) {
    Intent intent;
    if (propValues[1].equals("String_Node_Str")) {
      mBluetoothService.setIsDiscovering(true);
      intent=new Intent(BluetoothAdapter.ACTION_DISCOVERY_STARTED);
    }
 else {
      mBluetoothService.cancelDiscovery();
      mBluetoothService.setIsDiscovering(false);
      intent=new Intent(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
    }
    mContext.sendBroadcast(intent,BLUETOOTH_PERM);
    mBluetoothService.setProperty(name,propValues[1]);
  }
 else   if (name.equals("String_Node_Str")) {
    String value=null;
    int len=Integer.valueOf(propValues[1]);
    if (len > 0) {
      StringBuilder str=new StringBuilder();
      for (int i=2; i < propValues.length; i++) {
        str.append(propValues[i]);
        str.append("String_Node_Str");
      }
      value=str.toString();
    }
    mBluetoothService.setProperty(name,value);
  }
 else   if (name.equals("String_Node_Str")) {
    if (propValues[1].equals("String_Node_Str"))     onRestartRequired();
  }
}