ibm-mobile-push / android

BY DOWNLOADING, INSTALLING, COPYING, ACCESSING, CLICKING ON AN “ACCEPT” BUTTON, OR OTHERWISE USING THE PROGRAM, LICENSEE AGREES TO THE TERMS OF THIS AGREEMENT.
https://developer.ibm.com/customer-engagement/mobile-app-messaging/
5 stars 4 forks source link

[URGENT] CRASH IN METHOD enableDefaultNotification #3

Open winigma opened 7 years ago

winigma commented 7 years ago

When using the enableDefaultNotification method the following error occurs:

06-16 11:34:41.098 27929-27929/br.com.ipiranga.kmv.devel.debug E/AndroidRuntime: FATAL EXCEPTION: main Process: br.com.ipiranga.kmv.devel.debug, PID: 27929 java.lang.StackOverflowError: stack size 8MB at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotification(Unknown Source) at com.ibm.mce.sdk.notification.NotificationsClientImpl.enableDefaultNotifica

Answer the questions, create an SDK that gives problems and does not even answer users' questions

cjeskefl commented 7 years ago

I ran into the same problem as well. It appears to be caused by these lines in NotificationsClientImpl. Infinite recursion:

public void enableDefaultNotification(Context var1, boolean var2) {
    this.enableDefaultNotification(var1, var2);
    Logger.d("NotificationsClient", "Default notifications enabled was set to " + var2);
}

The workaround (until IBM decides to fix) is to set the following preference value:

            SharedPreferences prefs = getSharedPreferences("IBM_MCE_SDK_DATA", 0);
            SharedPreferences.Editor editor = prefs.edit();
            editor.putBoolean("ENABLE_SDK_DEF_NOTIF", false);
            editor.commit();

This disables the duplicate firing of notifications, as the internal notification handler is controlled by that shared preference value. Hope this helps someone else.

zohart74 commented 6 years ago

Fixed in 3.7.1.0