Details
-
Type:
Bug
-
Status: Closed (View Workflow)
-
Priority:
Major
-
Resolution: Done
-
Affects Version/s: None
-
Fix Version/s: 9.0.1 Minor Release
-
Labels:
-
Sprint:B - Summer 2018
Description
*We get an exception when starting IGB:*
22:47:33.486 ERROR c.a.i.p.IgbPreferencesLoadingOrchestrator - Index: 0, Size: 0
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source) ~[na:1.8.0_152]
at java.util.ArrayList.get(Unknown Source) ~[na:1.8.0_152]
at com.affymetrix.igb.general.DataProviderManager.getDataProviderById(DataProviderManager.java:287) ~[na:na]
at com.affymetrix.igb.general.DataProviderManager.initializeDataProvider(DataProviderManager.java:206) ~[na:na]
From a functional standpoint, everything is fine. The issue relates to how IGB initializes preferences using multiple threads. Some threads get ahead and is request information about a data provider that hasn't been loaded yet. It looked like the load and check processes are called multiple times, so the early times (things are not fully loaded) throw exceptions, but the later times everything is loaded and things end up working out.
If you run through start up in the debugger, you can demonstrate that there are moments when the list of data providers is partially loaded. But we never figured out where the root call was coming from to prevent the exceptions.
Attachments
Activity
| Field | Original Value | New Value |
|---|---|---|
| Summary | exceptions are thrown when loading data providers | exceptions are thrown on startup when loading data providers |
| Link | This issue relates to IGBF-1243 [ IGBF-1243 ] |
| Labels | introduced-in-9.0.1 |
| Assignee | Ann Loraine [ aloraine ] |
| Rank | Ranked higher |
| Rank | Ranked higher |
| Assignee | Kiran Korey [ kkorey ] |
| Status | Open [ 1 ] | In Progress [ 3 ] |
| Status | In Progress [ 3 ] | Needs 1st Level Review [ 10005 ] |
| Status | Needs 1st Level Review [ 10005 ] | Ready for Pull Request [ 10304 ] |
| Status | Ready for Pull Request [ 10304 ] | Pull Request Submitted [ 10101 ] |
| Status | Pull Request Submitted [ 10101 ] | Needs Testing [ 10002 ] |
| Assignee | Kiran Korey [ kkorey ] |
| Fix Version/s | 9.0.1 Minor Release [ 10500 ] |
| Resolution | Done [ 10000 ] | |
| Status | Needs Testing [ 10002 ] | Closed [ 6 ] |
| Workflow | Loraine Lab Workflow [ 17940 ] | Fall 2019 Workflow Update [ 19861 ] |
| Workflow | Fall 2019 Workflow Update [ 19861 ] | Revised Fall 2019 Workflow Update [ 21980 ] |
The exception was because of getDataProviderById() method of DataProviderManager file.
The method was trying to return 1st object from an empty list.
So adding the null condition before returning solved the issue.
Note: The preferences file in windows can be found by following the instructions below:
press : win+r -> type : reg.edit
List of registries open.
Navigate to this location or simply copy paste to find the preferences of IGB
Computer\HKEY_CURRENT_USER\Software\JavaSoft\Prefs\com\affymetrix\igb