[
https://issues.apache.org/jira/browse/CB-12560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15991797#comment-15991797
]
ASF GitHub Bot commented on CB-12560:
-------------------------------------
Github user dblood commented on the issue:
https://github.com/apache/cordova-plugin-inappbrowser/pull/215
I dug through the code quite a bit and think I have found why this was so
hard to reproduce for me. (restoring the version I had in my repo instantly
caused the problem though).
I was initially using cordova-plugin-inappbrowser 1.1.1.
In version 1.2.1 (specifically 4d9e4884) the 'sendUpdate(obj, false);' was
moved into a 'runOnUiThread' Runnable which ensures that they are run serially,
and on the same thread.
Although this 'fixed' the common NullPointerException when close() was
called twice the sendUpdate function still wasn't correctly guarded, only the
single instance of when sendUpdate was being called with 'false'.
This pull request 'fixes' contextCallback references used within the same
function to ensure another thread can't modify the locally scoped reference
during function execution.
> InAppWebBrowser throws NullPointerException when attempting Callback
> --------------------------------------------------------------------
>
> Key: CB-12560
> URL: https://issues.apache.org/jira/browse/CB-12560
> Project: Apache Cordova
> Issue Type: Bug
> Components: Plugin InAppBrowser
> Affects Versions: 6.5.0
> Reporter: Douglas Blood
> Priority: Minor
> Labels: android, pull-request-available
>
> Using oidc-client.js and a redirection url of "http://localhost/". After
> login the "monitor" will attempt a request every second using the
> InAppBrowser instance that was logged in with.
> Occasionally, this will result in the following null pointer exception.
> java.lang.NullPointerException: Attempt to invoke virtual method 'void
> org.apache.cordova.CallbackContext.sendPluginResult(org.apache.cordova.PluginResult)'
> on a null object reference
> at
> org.apache.cordova.inappbrowser.InAppBrowser.sendUpdate(InAppBrowser.java:733)
> at
> org.apache.cordova.inappbrowser.InAppBrowser.sendUpdate(InAppBrowser.java:720)
> at
> org.apache.cordova.inappbrowser.InAppBrowser.access$1100(InAppBrowser.java:72)
> at
> org.apache.cordova.inappbrowser.InAppBrowser$InAppBrowserClient.onPageFinished(InAppBrowser.java:849)
> at
> com.android.webview.chromium.WebViewContentsClientAdapter.onPageFinished(WebViewContentsClientAdapter.java:531)
> at
> org.chromium.android_webview.AwContentsClientCallbackHelper$MyHandler.handleMessage(AwContentsClientCallbackHelper.java:188)
> at android.os.Handler.dispatchMessage(Handler.java:102)
> at android.os.Looper.loop(Looper.java:154)
> at android.app.ActivityThread.main(ActivityThread.java:6119)
> at java.lang.reflect.Method.invoke(Native Method)
> at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
> at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
> Additional logs, and a patch will be coming soon.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]