Changing the logic in the retrieveDataContainer() method is working as the providers are not initialized simultaneously (multi-threaded), tested it with the UCSC provider. Also, while doing this change, found out that the data providers are not initializing based on the load priority but based on the order in the igbDefaultPrefs.json file. We can change this behavior by sorting the dataProviders list after retrieving them from the json based on the load priority. Below are the custom print messages which I have added to check this.
===================Current thread: AWT-EventQueue-0 Provider: RNA-Seq Priority: 0====================
===================Current thread: AWT-EventQueue-0 Provider: IGB Quickload Priority: 2====================
===================Current thread: AWT-EventQueue-0 Provider: Blueberry Priority: 3====================
===================Current thread: AWT-EventQueue-0 Provider: UCSC REST Priority: 6====================
===================Current thread: AWT-EventQueue-0 Provider: Bio-Analytic Resource Priority: 1====================
===================Current thread: AWT-EventQueue-0 Provider: ChIP-Seq Priority: 1====================
===================Current thread: AWT-EventQueue-0 Provider: Genome in a Bottle Priority: 1====================
Nowlan Freese - Could you please look into this and let me know if I need to change the logic to load them based on the load priority.
Created a ticket for fixing the order: https://jira.bioviz.org/browse/IGBF-3774