f813e11a4d7798debd5a20c6222eb3a7be1bc0e0 chmalee Tue Jul 11 14:21:12 2023 -0700 Fail more gracefully when a genbank table has been left on a server mistakenly, refs #31744 diff --git src/hg/cgilib/cartJson.c src/hg/cgilib/cartJson.c index 8377856..36c8adf 100644 --- src/hg/cgilib/cartJson.c +++ src/hg/cgilib/cartJson.c @@ -76,30 +76,37 @@ for (table = hgp->tableList; table != NULL; table = table->next) { if (table->posList != NULL) { char *trackName = table->name, *tableName = table->name; struct trackDb *tdb = NULL; // clear the tdb cache if this track is a hub track if (! (sameString("trackDb", tableName) || sameString("helpDocs", tableName) || sameString("publicHubs", tableName))) { if (isHubTrack(tableName)) tdbList = NULL; tdb = tdbForTrack(db, tableName, &tdbList); if (!tdb && startsWith("all_", tableName)) tdb = tdbForTrack(db, tableName+strlen("all_"), &tdbList); + if (!tdb && startsWith("xeno", tableName)) + { + // due to genbank track changes over the years, sometimes tables + // get left on different servers when their trackDb entry was removed + // long ago. In that case skip those hits + continue; + } if (!tdb) errAbort("no track for table \"%s\" found via a findSpec", tableName); trackName = tdb->track; } jsonWriteObjectStart(jw, NULL); jsonWriteString(jw, "name", table->name); jsonWriteString(jw, "trackName", trackName); jsonWriteString(jw, "description", table->description); if (tdb != NULL) jsonWriteString(jw, "vis", hCarefulTrackOpenVis(db, trackName)); jsonWriteListStart(jw, "matches"); struct hgPos *pos; for (pos = table->posList; pos != NULL; pos = pos->next) { char *encMatches = cgiEncode(pos->browserName);