SONAR-12449 fix code move issue tracking missing some random issues
an initial piece of code of code move heuristic would index issues by line in a MultiMap
issues are DefaultIssue objects which hashCode method is based solely on DefaultIssue's key field
Multimap implementation used in code move was Set based
unfortunately, at this point in time, no DefaultIssue instance have a key set yet
which implies that all of them have the same hashcode
which implies when stored in the MultiMap for the same key, only one DefaultIssue instance was stored (the first added, which is unpredictable)
this change make code move heuristic use List based Multimaps which do not use DefaultIssue's hashcode
protect ManagedProcessHandler stop finalization code with lifecycle state
since this code is interrupting other threads, this ensures concurrent threads attempting to run this code will never interrupt each other
leading to unpredictable and unreproducible behavior
do not call stop finalization code without checking lifeCycle state
this avoid having multiple thread call the stope finalization concurrently and killing each other, which is unpredictable and very hard to reproduce behavior
add node state FINALIZE_STOPPING to sync stop finalizing code
this prevents concurrent threads to shutdown each other
this removes a test on NodeLifecycle.getState() which could be unthreadsafe and keep all lifeCycle logic in NodeLifecycle class
stop should be allowed when SQ is not yet fully operational
this allows to keep stop code behing lifecycle transition test
which prevents multiple stop sequence to be initiated in parallel from different thread
which may interrupt each other and create unstable behaviors (with cryptic non reproducible errors)