Program: 180944
Project: 180944
Buggy source:
private void handleBtStateChange(Intent intent,int startId){
  int btState=intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,BluetoothAdapter.ERROR);
synchronized (this) {
    if (DEBUG)     Log.d(TAG,"String_Node_Str" + btState + "String_Node_Str"+ mPendingDevice);
    if (btState == BluetoothAdapter.STATE_ON) {
      if (mPendingDevice != null) {
        if (mPendingDevice.equals(mDevice)) {
          if (DEBUG)           Log.d(TAG,"String_Node_Str");
          applyBtSettings(mPendingDevice,mPendingStartId);
        }
 else         if (DEBUG) {
          Log.d(TAG,"String_Node_Str" + mPendingDevice + "String_Node_Str"+ mDevice+ "String_Node_Str");
        }
        mPendingDevice=null;
        DockEventReceiver.finishStartingService(mContext,mPendingStartId);
      }
 else {
        Intent i=registerReceiver(null,new IntentFilter(Intent.ACTION_DOCK_EVENT));
        if (i != null) {
          int state=i.getIntExtra(Intent.EXTRA_DOCK_STATE,Intent.EXTRA_DOCK_STATE_UNDOCKED);
          if (state != Intent.EXTRA_DOCK_STATE_UNDOCKED) {
            BluetoothDevice device=i.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
            if (device != null) {
              connectIfEnabled(device);
            }
          }
        }
      }
      if (mPendingTurnOnStartId != INVALID_STARTID) {
        DockEventReceiver.finishStartingService(this,mPendingTurnOnStartId);
        mPendingTurnOnStartId=INVALID_STARTID;
      }
      DockEventReceiver.finishStartingService(this,startId);
    }
 else     if (btState == BluetoothAdapter.STATE_TURNING_OFF) {
      removeDisableBtSetting();
      DockEventReceiver.finishStartingService(this,startId);
    }
 else     if (btState == BluetoothAdapter.STATE_OFF) {
      if (DEBUG)       Log.d(TAG,"String_Node_Str" + mPendingDevice);
      if (mPendingDevice != null) {
        mBtManager.getBluetoothAdapter().enable();
        mPendingTurnOnStartId=startId;
      }
 else {
        DockEventReceiver.finishStartingService(this,startId);
      }
    }
  }
}

Fixed version (ground truth):
private void handleBtStateChange(Intent intent,int startId){
  int btState=intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,BluetoothAdapter.ERROR);
synchronized (this) {
    if (DEBUG)     Log.d(TAG,"String_Node_Str" + btState + "String_Node_Str"+ mPendingDevice);
    if (btState == BluetoothAdapter.STATE_ON) {
      if (mPendingDevice != null) {
        if (mPendingDevice.equals(mDevice)) {
          if (DEBUG)           Log.d(TAG,"String_Node_Str");
          applyBtSettings(mPendingDevice,mPendingStartId);
        }
 else         if (DEBUG) {
          Log.d(TAG,"String_Node_Str" + mPendingDevice + "String_Node_Str"+ mDevice+ "String_Node_Str");
        }
        mPendingDevice=null;
        DockEventReceiver.finishStartingService(mContext,mPendingStartId);
      }
 else {
        if (DEBUG) {
          Log.d(TAG,"String_Node_Str" + getSetting(SHARED_PREFERENCES_KEY_DISABLE_BT_WHEN_UNDOCKED));
        }
        Intent i=registerReceiver(null,new IntentFilter(Intent.ACTION_DOCK_EVENT));
        if (i != null) {
          int state=i.getIntExtra(Intent.EXTRA_DOCK_STATE,Intent.EXTRA_DOCK_STATE_UNDOCKED);
          if (state != Intent.EXTRA_DOCK_STATE_UNDOCKED) {
            BluetoothDevice device=i.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
            if (device != null) {
              connectIfEnabled(device);
            }
          }
 else           if (getSetting(SHARED_PREFERENCES_KEY_DISABLE_BT) && mBtManager.getBluetoothAdapter().disable()) {
            mPendingTurnOffStartId=startId;
            removeSetting(SHARED_PREFERENCES_KEY_DISABLE_BT);
            return;
          }
        }
      }
      if (mPendingTurnOnStartId != INVALID_STARTID) {
        DockEventReceiver.finishStartingService(this,mPendingTurnOnStartId);
        mPendingTurnOnStartId=INVALID_STARTID;
      }
      DockEventReceiver.finishStartingService(this,startId);
    }
 else     if (btState == BluetoothAdapter.STATE_TURNING_OFF) {
      removeSetting(SHARED_PREFERENCES_KEY_DISABLE_BT_WHEN_UNDOCKED);
      DockEventReceiver.finishStartingService(this,startId);
    }
 else     if (btState == BluetoothAdapter.STATE_OFF) {
      if (DEBUG)       Log.d(TAG,"String_Node_Str" + mPendingDevice);
      if (mPendingTurnOffStartId != INVALID_STARTID) {
        DockEventReceiver.finishStartingService(this,mPendingTurnOffStartId);
        removeSetting(SHARED_PREFERENCES_KEY_DISABLE_BT);
        mPendingTurnOffStartId=INVALID_STARTID;
      }
      if (mPendingDevice != null) {
        mBtManager.getBluetoothAdapter().enable();
        mPendingTurnOnStartId=startId;
      }
 else {
        DockEventReceiver.finishStartingService(this,startId);
      }
    }
  }
}