breautek commented on issue #924: Crash Report: ConcurrentModificationException
URL: https://github.com/apache/cordova-android/issues/924#issuecomment-612563876
 
 
   I believe this is caused because we access these `LinkedHashMap` objects 
potentially from different threads and these hash maps are not thread safe.
   
   > Note that this implementation is not synchronized. If multiple threads 
access a linked hash map concurrently, and at least one of the threads modifies 
the map structurally, it must be synchronized externally. This is typically 
accomplished by synchronizing on some object that naturally encapsulates the 
map. If no such object exists, the map should be "wrapped" using the 
Collections.synchronizedMap method. This is best done at creation time, to 
prevent accidental unsynchronized access to the map:
      Map m = Collections.synchronizedMap(new LinkedHashMap(...));
   
   https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html
   
   However it will be very hard to be confident unless if we can reproduce this 
reliability. In the above callstacks, it seems to be occurring on the iteration 
of plugins on responding to a pause or resume event. Unfortunately this isn't 
necessary the error, it's just tells us that the hash map has changed while we 
were iterating.
   
   @HansKrywaa can you tell me a little bit of your app? My wild theory is this 
is related to maybe the webview being unloaded/killed but that would only make 
sense if your app goes into the background to load up something memory 
intensive (such as the camera app). Normally under this situation, the webview 
is suppose to load back up (but the webview environment would be refreshed). 
I'm thinking there might be a race condition there...

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to