Program: 51384
Project: 51384
Buggy source:
public Plus1BannerAsker init(){
  if (mInitialized)   return this;
  mDownloaderTimer=new Timer();
  if (!isDisabledAutoDetectLocation()) {
    mLocationManager=(LocationManager)mView.getContext().getSystemService(Context.LOCATION_SERVICE);
    mLocationListener=new LocationListener(){
      public void onLocationChanged(      Location location){
        mRequest.setLocation(location);
        if (!isLocationAutoRefreshEnabled())         removeLocationUpdates();
      }
      public void onProviderDisabled(      String provider){
        Log.d(LOGTAG,"String_Node_Str" + provider + "String_Node_Str");
        requestLocationUpdates();
      }
      public void onProviderEnabled(      String provider){
        Log.d(LOGTAG,"String_Node_Str" + provider + "String_Node_Str");
        removeLocationUpdates();
        requestLocationUpdates();
      }
      public void onStatusChanged(      String provider,      int status,      Bundle extras){
        Log.d(LOGTAG,"String_Node_Str" + provider + "String_Node_Str"+ status);
switch (status) {
case LocationProvider.AVAILABLE:
          removeLocationUpdates();
case LocationProvider.OUT_OF_SERVICE:
        requestLocationUpdates();
      break;
case LocationProvider.TEMPORARILY_UNAVAILABLE:
    break;
default :
  Log.w(LOGTAG,"String_Node_Str" + provider + "String_Node_Str"+ status);
}
}
}
;
}
mView.addListener(new Plus1BannerView.OnShowListener(){
public void onShow(Plus1BannerView view){
onShowBannerView();
}
}
).addListener(new Plus1BannerView.OnHideListener(){
public void onHide(Plus1BannerView view){
onHideBannerView();
}
}
).addListener(new Plus1BannerView.OnCloseButtonListener(){
public void onCloseButton(Plus1BannerView view){
onCloseBannerView();
}
}
).addListener(new Plus1BannerView.OnExpandListener(){
public void onExpand(Plus1BannerView view){
stop();
}
}
).addListener(new Plus1BannerView.OnCollapseListener(){
public void onCollapse(Plus1BannerView view){
start();
}
}
);
if (viewStateListener != null) mView.setViewStateListener(viewStateListener);
if (mVisibilityTimeout == 0) mVisibilityTimeout=mRefreshDelay * 3;
mHandler=new Handler();
new WebView(mView.getContext()).resumeTimers();
mInitialized=true;
return this;
}

Fixed version (ground truth):
public Plus1BannerAsker init(){
  if (mInitialized)   return this;
  mDownloaderTimer=new Timer();
  if (!isDisabledAutoDetectLocation()) {
    mLocationManager=(LocationManager)mView.getContext().getSystemService(Context.LOCATION_SERVICE);
    mLocationListener=new LocationListener(){
      public void onLocationChanged(      Location location){
        mRequest.setLocation(location);
        if (!isLocationAutoRefreshEnabled())         removeLocationUpdates();
      }
      public void onProviderDisabled(      String provider){
        Log.d(LOGTAG,"String_Node_Str" + provider + "String_Node_Str");
        requestLocationUpdates();
      }
      public void onProviderEnabled(      String provider){
        Log.d(LOGTAG,"String_Node_Str" + provider + "String_Node_Str");
        removeLocationUpdates();
        requestLocationUpdates();
      }
      public void onStatusChanged(      String provider,      int status,      Bundle extras){
        Log.d(LOGTAG,"String_Node_Str" + provider + "String_Node_Str"+ status);
switch (status) {
case LocationProvider.AVAILABLE:
          removeLocationUpdates();
case LocationProvider.OUT_OF_SERVICE:
        requestLocationUpdates();
      break;
case LocationProvider.TEMPORARILY_UNAVAILABLE:
    break;
default :
  Log.w(LOGTAG,"String_Node_Str" + provider + "String_Node_Str"+ status);
}
}
}
;
}
mView.addListener(new Plus1BannerView.OnCloseButtonListener(){
public void onCloseButton(Plus1BannerView view){
stop();
}
}
).addListener(new Plus1BannerView.OnExpandListener(){
public void onExpand(Plus1BannerView view){
stop();
}
}
).addListener(new Plus1BannerView.OnCollapseListener(){
public void onCollapse(Plus1BannerView view){
start();
}
}
);
new WebView(mView.getContext()).resumeTimers();
mInitialized=true;
return this;
}