Buggy code:
public class UpdateLocalService extends MyService { private static final String DEBUG_TAG = "UpdateLocalService" ; public static final String PREF_NAME = "monakhv.android.samlib.service.UpdateLocalService" ; public static final String PREF_KEY_LAST_UPDATE = ( UpdateLocalService . PREF_NAME ) + ".LAST_UPDATE" ; public static final String PREF_KEY_CALLER = ( UpdateLocalService . PREF_NAME ) + ".CALLER" ; public static final String ACTION_STOP = "UpdateLocalService.ACTION_STOP" ; private static final String ACTION_UPDATE = "UpdateLocalService.ACTION_UPDATE" ; private static final String EXTRA_ARGUMENT = "UpdateLocalService.EXTRA_ARGUMENT" ; private final IBinder mBinder = new UpdateLocalService . LocalBinder ( ) ; private SharedPreferences mSharedPreferences ; private MessageConstructor mMessageConstructor ; private static boolean isRun = false ; private boolean isReceiver = false ; private static WakeLock wl ; private static Thread mThread ; public UpdateLocalService ( ) { } @ Override public int onStartCommand ( Intent intent , int flags , int startId ) { } @ Nullable @ Override public IBinder onBind ( Intent intent ) { } public static void makeUpdate ( Context context , Author author , AuthorGuiState state ) { } private void runService ( UpdateLocalService . ArgumentData argData ) { if ( ( UpdateLocalService . isRun ) && ( ! ( isReceiver ) ) ) { Log . i ( UpdateLocalService . DEBUG_TAG , "runService:<seq2seq4repair_space>Update<seq2seq4repair_space>already<seq2seq4repair_space>running<seq2seq4repair_space>exiting" ) ; return ; } mSharedPreferences = PrefsUtil . getSharedPreferences ( this , UpdateLocalService . PREF_NAME ) ; getSettingsHelper ( ) . requestFirstBackup ( ) ; mSharedPreferences . edit ( ) . putBoolean ( UpdateLocalService . PREF_KEY_CALLER , isReceiver ) . apply ( ) ; if ( ( isReceiver ) && ( ! ( getSettingsHelper ( ) . haveInternetWIFI ( ) ) ) ) { monakhv . samlib . log . Log . d ( UpdateLocalService . DEBUG_TAG , "runService:<seq2seq4repair_space>Ignore<seq2seq4repair_space>update<seq2seq4repair_space>task<seq2seq4repair_space>-<seq2seq4repair_space>we<seq2seq4repair_space>have<seq2seq4repair_space>no<seq2seq4repair_space>internet<seq2seq4repair_space>connection" ) ; return ; } if ( ! ( SettingsHelper . haveInternet ( this ) ) ) { Log . e ( UpdateLocalService . DEBUG_TAG , "runService:<seq2seq4repair_space>Ignore<seq2seq4repair_space>update<seq2seq4repair_space>-<seq2seq4repair_space>we<seq2seq4repair_space>have<seq2seq4repair_space>no<seq2seq4repair_space>internet<seq2seq4repair_space>connection" ) ; return ; } PowerManager pm = ( ( PowerManager ) ( getSystemService ( POWER_SERVICE ) ) ) ; UpdateLocalService . wl = pm . newWakeLock ( PARTIAL_WAKE_LOCK , UpdateLocalService . DEBUG_TAG ) ; UpdateLocalService . wl . acquire ( ) ; SpecialAuthorService service = getSpecialSamlibService ( ) ; service . setCallerIsReceiver ( isReceiver ) ; UpdateLocalService . mThread = new UpdateLocalService . SamlibUpdateTread ( service , argData ) ; final Subscription subscription = getBus ( ) . getObservable ( ) . subscribe ( ( guiUpdateObject ) -> { if ( guiUpdateObject . isProgress ( ) ) { if ( ( mMessageConstructor ) == null ) { mMessageConstructor = new MessageConstructor ( this , getSettingsHelper ( ) ) ; } mMessageConstructor . updateNotification ( ( ( AuthorUpdateProgress ) ( guiUpdateObject . getObject ( ) ) ) ) ; } if ( guiUpdateObject . isResult ( ) ) { mMessageConstructor . cancelProgress ( ) ; mMessageConstructor . showUpdateNotification ( ( ( Result ) ( guiUpdateObject . getObject ( ) ) ) ) ; } <START_BUG> if ( guiUpdateObject . isAuthor ( ) ) { <END_BUG> mMessageConstructor . updateNotification ( ( ( Author ) ( guiUpdateObject . getObject ( ) ) ) ) ; } } ) ; addSubscription ( subscription ) ; UpdateLocalService . mThread . start ( ) ; } private void interrupt ( ) { } public boolean isRunning ( ) { } public class LocalBinder extends Binder { public UpdateLocalService getService ( ) { } } private class SamlibUpdateTread extends Thread { private final AuthorUpdateService mAuthorUpdateService ; private final UpdateLocalService . ArgumentData mData ; public SamlibUpdateTread ( AuthorUpdateService authorUpdateService , UpdateLocalService . ArgumentData data ) { } @ Override public void run ( ) { } } private void releaseLock ( ) { } private static class ArgumentData implements Parcelable { int state_id ; String order ; int author_id = - 1 ; int isReceiver ; public ArgumentData ( AuthorGuiState state ) { } public ArgumentData ( Author author , AuthorGuiState state ) { } public AuthorGuiState getState ( ) { } protected ArgumentData ( Parcel in ) { } public static final Creator < UpdateLocalService . ArgumentData > CREATOR = new Creator < UpdateLocalService . ArgumentData > ( ) { @ Override public UpdateLocalService . ArgumentData createFromParcel ( Parcel in ) { } @ Override public UpdateLocalService . ArgumentData [ ] newArray ( int size ) { } } ; @ Override public int describeContents ( ) { } @ Override public void writeToParcel ( Parcel dest , int flags ) { } } }

Fix:
if ( ( guiUpdateObject . isAuthor ( ) ) && ( ( guiUpdateObject . getUpdateType ( ) ) == GuiUpdateObject . UpdateType . UPDATE_UPDATE ) ) {