c00e0481c53131d00bb175b9c3cf23037f47ebea
braney
  Wed Jun 9 16:06:40 2021 -0700
fix crash if track is in density mode and the bigDataUrl is not
accessible #27661

diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c
index f2c67f4..a007b9f 100644
--- src/hg/hgTracks/simpleTracks.c
+++ src/hg/hgTracks/simpleTracks.c
@@ -367,31 +367,31 @@
 /* Check to see if a track should be drawing as a wiggle. */
 {
 boolean doWiggle = cartOrTdbBoolean(cart, tg->tdb, "doWiggle" , FALSE);
 
 if (!doWiggle)
     {
     char *setting = trackDbSetting(tg->tdb, "maxWindowCoverage" );
     if (setting)
         {
         unsigned size = sqlUnsigned(setting);
         if ((size > 0) && ((winEnd - winStart) > size))
             doWiggle = TRUE;
         }
     }
 
-if (doWiggle)
+if (doWiggle && isEmpty(tg->networkErrMsg))
     {
     tg->drawLeftLabels = wigLeftLabels;
     tg->colorShades = shadesOfGray;
     tg->mapsSelf = TRUE;
     }
 
 return doWiggle;
 }
 
 struct sameItemNode
 /* sameItem node */
     {
     struct sameItemNode *next; /* next node */
     struct window *window;     /* in which window - can use to detect duplicate keys */
     void *item;
@@ -4175,31 +4175,38 @@
         }
 
     if (compat)
 	{  // draw labeled exon/intron maps with exon/intron numbers
 	linkedFeaturesItemExonMaps(tg, hvg, item, scale, y, heightPer, s, e, lButton, rButton, buttonW);
 	x2 = x1;
 	w = x2-textX;
 	}
     // if not already mapped, pick up the label
     if (!(lButton && compat))
 	{
         tg->mapItem(tg, hvg, item, tg->itemName(tg, item), tg->mapItemName(tg, item),
 		s, e, textX, y, w, heightPer);
 	}
     }
-
+#ifdef NOTYET
+else if (vis == tvSquish)
+    {
+    int w = x2-textX;
+    tg->mapItem(tg, hvg, item, tg->itemName(tg, item), tg->mapItemName(tg, item),
+            s, e, textX, y, w, heightPer);
+    }
+#endif
 else if (vis == tvFull)
     {
     int geneMapBoxX = insideX;
     int geneMapBoxW = insideWidth;
     /* Draw the first gene label mapbox, in the left margin. */
     int trackPastTabX = (withLeftLabels ? trackTabWidth : 0);
     tg->mapItem(tg, hvg, item, tg->itemName(tg, item), tg->mapItemName(tg, item),
                 s, e, trackPastTabX, y, insideX - trackPastTabX, heightPer);
     /* Depending on which button mapboxes we drew, draw the remaining mapbox. */
     if (lButton)
         {
         geneMapBoxX += buttonW;
         geneMapBoxW -= buttonW;
         }
     if (rButton)