Program: 3011
Project: 3011
Buggy source:
@Override boolean loadSystemProperties(Surface surface){
  boolean value;
  boolean changed=false;
  String profiling=SystemProperties.get(PROFILE_PROPERTY);
  value=PROFILE_PROPERTY_VISUALIZE.equalsIgnoreCase(profiling);
  if (value != mProfileVisualizerEnabled) {
    changed=true;
    mProfileVisualizerEnabled=value;
    mProfileRects=null;
    mProfilePaint=null;
  }
  if (!value) {
    value=Boolean.parseBoolean(profiling);
  }
  if (value != mProfileEnabled) {
    changed=true;
    mProfileEnabled=value;
    if (mProfileEnabled) {
      Log.d(LOG_TAG,"String_Node_Str");
    }
    if (mProfileEnabled) {
      int maxProfileFrames=SystemProperties.getInt(PROFILE_MAXFRAMES_PROPERTY,PROFILE_MAX_FRAMES);
      mProfileData=new float[maxProfileFrames * PROFILE_FRAME_DATA_COUNT];
      for (int i=0; i < mProfileData.length; i+=PROFILE_FRAME_DATA_COUNT) {
        mProfileData[i]=mProfileData[i + 1]=mProfileData[i + 2]=-1;
      }
      mProfileLock=new ReentrantLock();
    }
 else {
      mProfileData=null;
      mProfileLock=null;
    }
    mProfileRects=null;
    mProfilePaint=null;
  }
  value=SystemProperties.getBoolean(DEBUG_DIRTY_REGIONS_PROPERTY,false);
  if (value != mDebugDirtyRegions) {
    changed=true;
    mDebugDirtyRegions=value;
    if (mDebugDirtyRegions) {
      Log.d(LOG_TAG,"String_Node_Str");
    }
  }
  value=SystemProperties.getBoolean(HardwareRenderer.DEBUG_SHOW_OVERDRAW_PROPERTY,false);
  if (value != mShowOverdraw) {
    changed=true;
    mShowOverdraw=value;
    if (surface != null && isEnabled()) {
      if (validate()) {
        sEglConfig=loadEglConfig();
        invalidate(surface);
      }
    }
  }
  if (nLoadProperties()) {
    changed=true;
  }
  return changed;
}

Fixed version (ground truth):
@Override boolean loadSystemProperties(Surface surface){
  boolean value;
  boolean changed=false;
  String profiling=SystemProperties.get(PROFILE_PROPERTY);
  value=PROFILE_PROPERTY_VISUALIZE.equalsIgnoreCase(profiling);
  if (value != mProfileVisualizerEnabled) {
    changed=true;
    mProfileVisualizerEnabled=value;
    mProfileRects=null;
    mProfilePaint=null;
  }
  if (!value) {
    value=Boolean.parseBoolean(profiling);
  }
  if (value != mProfileEnabled) {
    changed=true;
    mProfileEnabled=value;
    if (mProfileEnabled) {
      Log.d(LOG_TAG,"String_Node_Str");
      int maxProfileFrames=SystemProperties.getInt(PROFILE_MAXFRAMES_PROPERTY,PROFILE_MAX_FRAMES);
      mProfileData=new float[maxProfileFrames * PROFILE_FRAME_DATA_COUNT];
      for (int i=0; i < mProfileData.length; i+=PROFILE_FRAME_DATA_COUNT) {
        mProfileData[i]=mProfileData[i + 1]=mProfileData[i + 2]=-1;
      }
      mProfileLock=new ReentrantLock();
    }
 else {
      mProfileData=null;
      mProfileLock=null;
    }
    mProfileCurrentFrame=-PROFILE_FRAME_DATA_COUNT;
  }
  value=SystemProperties.getBoolean(DEBUG_DIRTY_REGIONS_PROPERTY,false);
  if (value != mDebugDirtyRegions) {
    changed=true;
    mDebugDirtyRegions=value;
    if (mDebugDirtyRegions) {
      Log.d(LOG_TAG,"String_Node_Str");
    }
  }
  value=SystemProperties.getBoolean(HardwareRenderer.DEBUG_SHOW_OVERDRAW_PROPERTY,false);
  if (value != mShowOverdraw) {
    changed=true;
    mShowOverdraw=value;
    if (surface != null && isEnabled()) {
      if (validate()) {
        sEglConfig=loadEglConfig();
        invalidate(surface);
      }
    }
  }
  if (nLoadProperties()) {
    changed=true;
  }
  return changed;
}