[
https://issues.apache.org/jira/browse/CB-12560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15984213#comment-15984213
]
ASF GitHub Bot commented on CB-12560:
-------------------------------------
Github user dblood commented on the issue:
https://github.com/apache/cordova-plugin-inappbrowser/pull/215
Of course. I will work on a test script. The library I was using is
https://github.com/IdentityModel/oidc-client-js
with type of "id_token token" and monitoring on. This would attempt to
request a "token/userinfo" endpoint on the server once a second regardless of
if the previous request had completed. This allowed the completion handler of
both requests to be executed concurrently.
A bit of background for why I didn't do an automated test:
1) Although this issue consistently occurred sometime within 300 seconds
for me, that is 300 potential requests (or possibly non) that would fail based
on my local environment and servers.
2) Though it would prove a null pointer could happen with the old code, a
negative test for an exception is already handled by every other test (if the
app didn't crash, there wasn't a null pointer). This could be applied to every
method everywhere, with every type of runtime exception, and adds no value.
3) I didn't want to address the bigger issue, and the risk around the
handling of cancelling an in-progress request or if the response has completed
but the callback hasn't completed yet.
> 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, pluginsrelease, 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]