Program: 191507
Project: 191507
Buggy source:
@Override public void onBootPhase(int phase){
  if (phase == PHASE_SYSTEM_SERVICES_READY) {
synchronized (this) {
      mAlarmManager=(AlarmManager)getContext().getSystemService(Context.ALARM_SERVICE);
      mBatteryStats=BatteryStatsService.getService();
      mLocalPowerManager=getLocalService(PowerManagerInternal.class);
      mPowerManager=getContext().getSystemService(PowerManager.class);
      mActiveIdleWakeLock=mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"String_Node_Str");
      mActiveIdleWakeLock.setReferenceCounted(false);
      mConnectivityService=(ConnectivityService)ServiceManager.getService(Context.CONNECTIVITY_SERVICE);
      mLocalAlarmManager=getLocalService(AlarmManagerService.LocalService.class);
      mNetworkPolicyManager=INetworkPolicyManager.Stub.asInterface(ServiceManager.getService(Context.NETWORK_POLICY_SERVICE));
      mDisplayManager=(DisplayManager)getContext().getSystemService(Context.DISPLAY_SERVICE);
      mSensorManager=(SensorManager)getContext().getSystemService(Context.SENSOR_SERVICE);
      int sigMotionSensorId=getContext().getResources().getInteger(com.android.internal.R.integer.config_autoPowerModeAnyMotionSensor);
      if (sigMotionSensorId > 0) {
        mMotionSensor=mSensorManager.getDefaultSensor(sigMotionSensorId,true);
      }
      if (mMotionSensor == null && getContext().getResources().getBoolean(com.android.internal.R.bool.config_autoPowerModePreferWristTilt)) {
        mMotionSensor=mSensorManager.getDefaultSensor(Sensor.TYPE_WRIST_TILT_GESTURE,true);
      }
      if (mMotionSensor == null) {
        mMotionSensor=mSensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION,true);
      }
      if (getContext().getResources().getBoolean(com.android.internal.R.bool.config_autoPowerModePrefetchLocation)) {
        mLocationManager=(LocationManager)getContext().getSystemService(Context.LOCATION_SERVICE);
        mLocationRequest=new LocationRequest().setQuality(LocationRequest.ACCURACY_FINE).setInterval(0).setFastestInterval(0).setNumUpdates(1);
      }
      float angleThreshold=getContext().getResources().getInteger(com.android.internal.R.integer.config_autoPowerModeThresholdAngle) / 100f;
      mAnyMotionDetector=new AnyMotionDetector((PowerManager)getContext().getSystemService(Context.POWER_SERVICE),mHandler,mSensorManager,this,angleThreshold);
      mIdleIntent=new Intent(PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED);
      mIdleIntent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY | Intent.FLAG_RECEIVER_FOREGROUND);
      mLightIdleIntent=new Intent(PowerManager.ACTION_LIGHT_DEVICE_IDLE_MODE_CHANGED);
      mLightIdleIntent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY | Intent.FLAG_RECEIVER_FOREGROUND);
      IntentFilter filter=new IntentFilter();
      filter.addAction(Intent.ACTION_BATTERY_CHANGED);
      getContext().registerReceiver(mReceiver,filter);
      filter=new IntentFilter();
      filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
      filter.addDataScheme("String_Node_Str");
      getContext().registerReceiver(mReceiver,filter);
      filter=new IntentFilter();
      filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
      getContext().registerReceiver(mReceiver,filter);
      mLocalPowerManager.setDeviceIdleWhitelist(mPowerSaveWhitelistAllAppIdArray);
      mLocalAlarmManager.setDeviceIdleUserWhitelist(mPowerSaveWhitelistUserAppIdArray);
      mDisplayManager.registerDisplayListener(mDisplayListener,null);
      updateConnectivityStateLocked(null);
      updateDisplayLocked();
    }
  }
}

Fixed version (ground truth):
@Override public void onBootPhase(int phase){
  if (phase == PHASE_SYSTEM_SERVICES_READY) {
synchronized (this) {
      mAlarmManager=(AlarmManager)getContext().getSystemService(Context.ALARM_SERVICE);
      mBatteryStats=BatteryStatsService.getService();
      mLocalPowerManager=getLocalService(PowerManagerInternal.class);
      mPowerManager=getContext().getSystemService(PowerManager.class);
      mActiveIdleWakeLock=mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"String_Node_Str");
      mActiveIdleWakeLock.setReferenceCounted(false);
      mConnectivityService=(ConnectivityService)ServiceManager.getService(Context.CONNECTIVITY_SERVICE);
      mLocalAlarmManager=getLocalService(AlarmManagerService.LocalService.class);
      mNetworkPolicyManager=INetworkPolicyManager.Stub.asInterface(ServiceManager.getService(Context.NETWORK_POLICY_SERVICE));
      mDisplayManager=(DisplayManager)getContext().getSystemService(Context.DISPLAY_SERVICE);
      mSensorManager=(SensorManager)getContext().getSystemService(Context.SENSOR_SERVICE);
      int sigMotionSensorId=getContext().getResources().getInteger(com.android.internal.R.integer.config_autoPowerModeAnyMotionSensor);
      if (sigMotionSensorId > 0) {
        mMotionSensor=mSensorManager.getDefaultSensor(sigMotionSensorId,true);
      }
      if (mMotionSensor == null && getContext().getResources().getBoolean(com.android.internal.R.bool.config_autoPowerModePreferWristTilt)) {
        mMotionSensor=mSensorManager.getDefaultSensor(Sensor.TYPE_WRIST_TILT_GESTURE,true);
      }
      if (mMotionSensor == null) {
        mMotionSensor=mSensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION,true);
      }
      if (getContext().getResources().getBoolean(com.android.internal.R.bool.config_autoPowerModePrefetchLocation)) {
        mLocationManager=(LocationManager)getContext().getSystemService(Context.LOCATION_SERVICE);
        mLocationRequest=new LocationRequest().setQuality(LocationRequest.ACCURACY_FINE).setInterval(0).setFastestInterval(0).setNumUpdates(1);
      }
      float angleThreshold=getContext().getResources().getInteger(com.android.internal.R.integer.config_autoPowerModeThresholdAngle) / 100f;
      mAnyMotionDetector=new AnyMotionDetector((PowerManager)getContext().getSystemService(Context.POWER_SERVICE),mHandler,mSensorManager,this,angleThreshold);
      mIdleIntent=new Intent(PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED);
      mIdleIntent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY | Intent.FLAG_RECEIVER_FOREGROUND);
      mLightIdleIntent=new Intent(PowerManager.ACTION_LIGHT_DEVICE_IDLE_MODE_CHANGED);
      mLightIdleIntent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY | Intent.FLAG_RECEIVER_FOREGROUND);
      IntentFilter filter=new IntentFilter();
      filter.addAction(Intent.ACTION_BATTERY_CHANGED);
      getContext().registerReceiver(mReceiver,filter);
      filter=new IntentFilter();
      filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
      filter.addDataScheme("String_Node_Str");
      getContext().registerReceiver(mReceiver,filter);
      filter=new IntentFilter();
      filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
      getContext().registerReceiver(mReceiver,filter);
      mLocalPowerManager.setDeviceIdleWhitelist(mPowerSaveWhitelistAllAppIdArray);
      mLocalAlarmManager.setDeviceIdleUserWhitelist(mPowerSaveWhitelistUserAppIdArray);
      mDisplayManager.registerDisplayListener(mDisplayListener,null);
      updateDisplayLocked();
    }
    updateConnectivityState(null);
  }
}