a47364d48ccd5b8ee8cdf7b47b7ba9edcfd66f1f
braney
  Wed Apr 16 10:58:32 2014 -0700
fix a crashing bug in hgCustom if the description field is empty on anassembly hub

diff --git src/hg/hgCustom/hgCustom.c src/hg/hgCustom/hgCustom.c
index eafc644..25f3a6c 100644
--- src/hg/hgCustom/hgCustom.c
+++ src/hg/hgCustom/hgCustom.c
@@ -199,31 +199,32 @@
         {
         puts("<TR><TD>clade\n");
         printCladeListHtml(hOrganism(database), onChangeClade);
         puts("&nbsp;&nbsp;&nbsp;");
         puts("genome\n");
         printGenomeListForCladeHtml(database, onChangeOrg);
         }
     else
         {
         puts("<TR><TD>genome\n");
         printGenomeListHtml(database, onChangeOrg);
         }
     puts("&nbsp;&nbsp;&nbsp;");
     puts("assembly\n");
     printAssemblyListHtml(database, onChangeDb);
-    if (! stringIn(database, hFreezeFromDb(database)))
+    char *description = hFreezeFromDb(database);
+    if ((description != NULL) && ! stringIn(database, description))
 	{
 	puts("&nbsp;&nbsp;&nbsp;");
 	printf("[%s]", trackHubSkipHubName(database));
 	}
     puts("</TD></TR></TABLE>\n");
     }
 
 /* intro text */
 puts("<P>");
 if (isUpdateForm)
     puts("Update your custom track configuration, data, and/or documentation.");
 else
     puts("Display your own data as custom annotation tracks in the browser.");
 addIntro();
 puts("<P>");
@@ -703,31 +704,31 @@
     char *onChangeDb = "onchange=\"document.orgForm.db.value = document.mainForm.db.options[document.mainForm.db.selectedIndex].value; document.orgForm.submit();\"";
     char *onChangeOrg = "onchange=\"document.orgForm.org.value = document.mainForm.org.options[document.mainForm.org.selectedIndex].value; document.orgForm.db.value = 0; document.orgForm.submit();\"";
 
     puts("<TABLE BORDER=0>\n");
     puts("<TR><TD>genome\n");
     printSomeGenomeListHtml(database, dbList, onChangeOrg);
     puts("&nbsp;&nbsp;&nbsp;");
     puts("assembly\n");
     printSomeAssemblyListHtml(database, dbList, onChangeDb);
     puts("&nbsp;&nbsp;&nbsp;");
     printf("[%s]", database);
     puts("</TD></TR></TABLE><P>\n");
     }
 else
     printf("<B>genome:</B> %s &nbsp;&nbsp;&nbsp;<B>assembly:</B> %s &nbsp;&nbsp;&nbsp;[%s]\n",
-            organism, hFreezeDate(database), database);
+            organism, hFreezeDateOpt(database), database);
 
 if (measureTiming && (loadTime > 0))
     printf("\n<BR>load time: %ld ms<BR>\n", loadTime);
 /* place for warning messages to appear */
 if (isNotEmpty(warn))
     {
     char *encoded = htmlEncode(warn);
     printf("<P><B>&nbsp;&nbsp;&nbsp;&nbsp;%s", encoded);
     freeMem(encoded);
     }
 
 /* count up number of custom tracks for this genome */
 int numCts = slCount(ctList);
 
 cgiSimpleTableStart();