adyen-android
adyen-android copied to clipboard
NullPointerException on typing the CVV code of the cart
Describe the bug When a user types in the CVV code, the app immediately crashes with a null pointer exception. This happens for me every time when I use the test American Express card with a 4-digit CVV code.
Crashlog
java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.CharSequence android.text.InputFilter.filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int)' on a null object reference
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:517)
at android.text.SpannableStringBuilder.append(SpannableStringBuilder.java:270)
at android.text.SpannableStringBuilder.append(SpannableStringBuilder.java:296)
at android.text.SpannableStringBuilder.append(SpannableStringBuilder.java:37)
at com.adyen.checkout.ui.internal.card.CardOneClickConfirmationFragment$3.onCharClicked(CardOneClickConfirmationFragment.java:139)
at com.adyen.checkout.ui.internal.card.NumpadView.notifyCharClicked(NumpadView.java:64)
at com.adyen.checkout.ui.internal.card.NumpadView.access$200(NumpadView.java:21)
at com.adyen.checkout.ui.internal.card.NumpadView$CharNotifier.onClick(NumpadView.java:89)
at android.view.View.performClick(View.java:7448)
at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119)
at android.view.View.performClickInternal(View.java:7425)
at android.view.View.access$3600(View.java:810)
at android.view.View$PerformClick.run(View.java:28305)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7660)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Affected versions that I've tested:
- com.adyen.checkout:ui:2.4.12
- com.adyen.checkout:ui:2.4.11
- com.adyen.checkout:ui:2.4.9
The bug is in the com.adyen.checkout.ui.internal.common.util.TextViewUtil#71 it does not fill the elements to the left side of the index.
private static Object remove(final Object array, final int index) {
4874 final int length = getLength(array);
4875 if (index < 0 || index >= length) {
4876 throw new IndexOutOfBoundsException("Index: " + index + ", Length: " + length);
4877 }
4878
4879 final Object result = Array.newInstance(array.getClass().getComponentType(), length - 1);
4880 System.arraycopy(array, 0, result, 0, index);
4881 if (index < length - 1) {
4882 System.arraycopy(array, index + 1, result, index, length - index - 1);
4883 }
4884
4885 return result;
4886 }
Toy may want to do it this way.
Closing this issue because it has been inactive for a while.
Please reopen if you still encounter this issue with the latest version.
Thank you!