summaryrefslogtreecommitdiff
path: root/core/java/android/widget/ScrollView.java
diff options
context:
space:
mode:
authorAlex Cruz <alex@dirtyunicorns.com>2018-11-15 22:21:11 -0600
committerSemavi Ulusoy <doc.divxm@gmail.com>2022-09-26 14:28:33 +0200
commitc79337c04d2d4d429ee7ae36cb15bdf71c525880 (patch)
treeaa1241799dd4a35aa593622643130a7feda36861 /core/java/android/widget/ScrollView.java
parentfca2246aa60e2b5f53500400deb2d5c6a9c87bc3 (diff)
Fix NPE with void android.view.VelocityTracker.clear()
06-21 14:39:46.546 30816 30816 E AndroidRuntime: FATAL EXCEPTION: main 06-21 14:39:46.546 30816 30816 E AndroidRuntime: Process: com.android.settings, PID: 30816 06-21 14:39:46.546 30816 30816 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.VelocityTracker.clear()' on a null object reference 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.widget.ScrollView.onTouchEvent(ScrollView.java:692) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.View.dispatchTouchEvent(View.java:10023) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2626) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2307) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:416) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1808) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.app.Activity.dispatchTouchEvent(Activity.java:3065) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:53) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:378) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.View.dispatchPointerEvent(View.java:10243) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4444) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4312) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3859) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3912) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3878) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4005) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3886) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4062) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3859) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3912) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3878) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3886) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3859) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6253) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6227) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6188) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6356) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:176) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:6327) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:6379) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.Choreographer.doCallbacks(Choreographer.java:686) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.Choreographer.doFrame(Choreographer.java:615) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:751) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:95) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.os.Looper.loop(Looper.java:154) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6208) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891) 06-21 14:39:46.546 30816 30816 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781) Change-Id: I415fc2e85bcdbe694f1d3a1bd76d1462fc8db78b Reviewed-on: https://review.statixos.com/c/android_frameworks_base/+/6190 Reviewed-by: Sourajit Karmakar <sourajit@live.com> Tested-by: Sourajit Karmakar <sourajit@live.com> Reviewed-on: https://review.statixos.com/c/android_frameworks_base/+/7214 Reviewed-by: Anay Wadhera <anay1018@gmail.com> Tested-by: Anay Wadhera <anay1018@gmail.com>
Diffstat (limited to 'core/java/android/widget/ScrollView.java')
-rw-r--r--core/java/android/widget/ScrollView.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/core/java/android/widget/ScrollView.java b/core/java/android/widget/ScrollView.java
index 15cd17b20f4f..e7aae34b3c2a 100644
--- a/core/java/android/widget/ScrollView.java
+++ b/core/java/android/widget/ScrollView.java
@@ -828,7 +828,9 @@ public class ScrollView extends FrameLayout {
if (overScrollBy(0, deltaY, 0, mScrollY, 0, range, 0, mOverscrollDistance, true)
&& !hasNestedScrollingParent()) {
// Break our velocity if we hit a scroll barrier.
- mVelocityTracker.clear();
+ if (mVelocityTracker != null) {
+ mVelocityTracker.clear();
+ }
}
final int scrolledDeltaY = mScrollY - oldY;