NativeScript / canvas

Apache License 2.0
88 stars 18 forks source link

Error: java.lang.NullPointerException: Parameter specified as non-null is null #82

Closed CatchABus closed 1 year ago

CatchABus commented 2 years ago

If one gives a null value as a text to method fillText an exception will be thrown. In web, fillText may accept null value as a text.

In my case, it was chart.js itself that attempted to append a null parameter.

System.err: An uncaught Exception occurred on "main" thread.
System.err: Calling js method contextReady failed
System.err: Error: java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter text
System.err: 
System.err: StackTrace:
System.err: fillText(file: node_modules/@nativescript/canvas/Canvas2D/CanvasRenderingContext2D/index.android.js:684:0)
System.err:     at renderText(file: node_modules/chart.js/dist/chunks/helpers.segment.mjs:1540:0)
System.err:     at fillText(file: node_modules/chart.js/dist/chart.mjs:7972:16)
System.err:     at (file: node_modules/chart.js/dist/chart.mjs:8017:0)
System.err:     at _draw(file: node_modules/chart.js/dist/chart.mjs:7994:0)
System.err:     at draw(file: node_modules/chart.js/dist/chart.mjs:7905:0)
System.err:     at draw(file: node_modules/chart.js/dist/chart.mjs:4600:0)
System.err:     at draw(file: node_modules/chart.js/dist/chart.mjs:5840:0)
System.err:     at render(file: node_modules/chart.js/dist/chart.mjs:5820:0)
System.err:     at update(file: node_modules/chart.js/dist/chart.mjs:5719:0)
System.err:     at Chart(file: node_modules/chart.js/dist/chart.mjs:5476:0)
System.err:     at onDailyConsumptionChartReady(file: app/views/smartThings/tank/tank.js:48:0)
System.err:     at _handleEvent(file: node_modules/@nativescript/core/data/observable/index.js:233:0)
System.err:     at notify(file: node_modules/@nativescript/core/data/observable/index.js:216:0)
System.err:     at _readyEvent(file: node_modules/@nativescript/canvas/Canvas/common.js:131:0)
System.err:     at contextReady(file: node_modules/@nativescript/canvas/Canvas/index.android.js:124:0)
System.err:     at com.tns.Runtime.callJSMethodNative(Native Method)
System.err:     at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1302)
System.err:     at com.tns.Runtime.callJSMethodImpl(Runtime.java:1188)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1175)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1153)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1149)
System.err:     at com.tns.gen.org.nativescript.canvas.TNSCanvas_Listener.contextReady(TNSCanvas_Listener.java:17)
System.err:     at org.nativescript.canvas.GLView.onSurfaceTextureAvailable(GLView.kt:119)
System.err:     at android.view.TextureView.getTextureLayer(TextureView.java:408)
System.err:     at android.view.TextureView.draw(TextureView.java:351)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21522)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.draw(View.java:22701)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21522)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.draw(View.java:22701)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21522)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21513)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.draw(View.java:22701)
System.err:     at android.widget.ScrollView.draw(ScrollView.java:1833)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21522)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21513)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21513)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21513)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at androidx.recyclerview.widget.RecyclerView.drawChild(RecyclerView.java:5030)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.draw(View.java:22701)
System.err:     at androidx.recyclerview.widget.RecyclerView.draw(RecyclerView.java:4429)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21522)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21513)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21513)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21513)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.draw(View.java:22701)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21522)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.draw(View.java:22701)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21522)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21513)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.draw(View.java:22701)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21522)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.draw(View.java:22701)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21522)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21513)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21513)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21513)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21513)
System.err:     at android.view.View.draw(View.java:22408)
System.err:     at android.view.ViewGroup.drawChild(ViewGroup.java:4595)
System.err:     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4354)
System.err:     at android.view.View.draw(View.java:22701)
System.err:     at com.android.internal.policy.DecorView.draw(DecorView.java:826)
System.err:     at android.view.View.updateDisplayListIfDirty(View.java:21522)
System.err:     at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:559)
System.err:     at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:565)
System.err:     at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:642)
System.err:     at android.view.ViewRootImpl.draw(ViewRootImpl.java:4367)
System.err:     at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4077)
System.err:     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3335)
System.err:     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2135)
System.err:     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8624)
System.err:     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:975)
System.err:     at android.view.Choreographer.doCallbacks(Choreographer.java:799)
System.err:     at android.view.Choreographer.doFrame(Choreographer.java:734)
System.err:     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:960)
System.err:     at android.os.Handler.handleCallback(Handler.java:938)
System.err:     at android.os.Handler.dispatchMessage(Handler.java:99)
System.err:     at android.os.Looper.loop(Looper.java:236)
System.err:     at android.app.ActivityThread.main(ActivityThread.java:8057)
System.err:     at java.lang.reflect.Method.invoke(Native Method)
System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)
System.err: Caused by: java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter text
System.err:     at org.nativescript.canvas.TNSCanvasRenderingContext2D.fillText(Unknown Source:2)
System.err:     ... 127 more
triniwiz commented 2 years ago

What does it do if nothing we can just ignore the input

CatchABus commented 2 years ago

What does it do if nothing we can just ignore the input

I think browser is using something like param + "" internally by default. In my screenshots, I try to append different types apart from string. Screenshot from 2022-08-05 01-25-53 Screenshot from 2022-08-05 01-26-58 Screenshot from 2022-08-05 01-27-16 Screenshot from 2022-08-05 01-27-38

triniwiz commented 2 years ago

Nice will update