6c7ec2372bbbe86971f9c86d2e22a36c3f40a46a
galt
  Wed Mar 9 12:07:30 2016 -0800
Fixes #16982. nextItem was crashing for custom track big*

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index 03a76f6..3ba902a 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -7035,36 +7035,41 @@
 cartRemove(cart, "hgt.trackNameFilter");
 // restore
 if (saveTrackNameFilter)
     {
     cartSetString(cart, "hgt.trackNameFilter", saveTrackNameFilter);
     }
 trackList = saveTrackList;
 groupList = saveGroupList;
 return returnTrackList;
 }
 
 void doNextPrevItem(boolean goNext, char *trackName)
 /* In case a next item arrow was clicked on a track, change */
 /* position (i.e. winStart, winEnd, etc.) based on what track it was */
 {
-// create custom trackList with just trackName
+// create new trackList with just trackName
 struct track *myTrackList = getTrackListForOneTrack(trackName);
 struct track *track = trackFindByName(myTrackList, trackName);
 if ((track != NULL) && (track->nextPrevItem != NULL))
+    {
+    // custom track big* tracks have pre-opened handle which we should not use
+    // because that same bbiFile will get used later in the full track list
+    track->bbiFile = NULL; 
     track->nextPrevItem(track, goNext);
     }
+}
 
 
 void findBestEMGeneTable(struct track *myTrackList)
 /* Find the best gene table to use for exonMostly and geneMostly. */
 {
 // TODO add support for choosing any gene table of type genePred, genePreExt, bigGenePred
 
 // TODO add support for assembly hubs
 if (trackHubDatabase(database)) // assembly hub? not supported yet
     return; // any table-name matches might just be coincidence in an assembly hub
             // although the hub_ prefix on the track name would help prevent name collisions.
 
 char *orderedTables[] = 
 {"knownGene", "refGene", "ensGene", 
  "flybaseGene", "sangerGene", "augustusGene", "genscan"};