[ 
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]

Reply via email to