c9b40ed334908a1b791191a3df227ae991b4810e
braney
Fri Mar 22 18:07:12 2013 -0700
fold back in the changes Angie made in the commit before my last commit. Change cartCopyCustomTracks() to not take a database argument since it's interation over all the "ctfile_*" in the cart anyway.All of this is to fix the problem that now loading a cart and connecting to hubs is what should be an atomic act. As it was, there were some hdb routines called after a new cart was loaded, but before the referenced hubs were loaded.
As it is now, hgSession will load new carts without reloading the associated hubs. This would only be a problem with assembly hubs, and I don't think it matters since hgSession isn't displaying hub data anyway.
diff --git src/hg/hgSession/hgSession.c src/hg/hgSession/hgSession.c
index 875b7c4..6986ad1 100644
--- src/hg/hgSession/hgSession.c
+++ src/hg/hgSession/hgSession.c
@@ -639,31 +639,31 @@
dyStringClear(dy);
dyStringPrintf(dy, "INSERT INTO %s ", namedSessionTable);
dyStringAppend(dy, "(userName, sessionName, contents, shared, "
"firstUse, lastUse, useCount) VALUES (");
dyStringPrintf(dy, "'%s', '%s', ", encUserName, encSessionName);
dyStringAppend(dy, "'");
cleanHgSessionFromCart(cart);
cartEncodeState(cart, dy);
dyStringAppend(dy, "', ");
dyStringPrintf(dy, "%d, ", (shareSession ? 1 : 0));
dyStringPrintf(dy, "%s, now(), %d);", firstUse, useCount);
sqlUpdate(conn, dy->string);
dyStringFree(&dy);
/* Prevent modification of custom tracks just saved to namedSessionDb: */
- cartCopyCustomTracks(cart, cartUsualString(cart, "db", hDefaultDb()));
+ cartCopyCustomTracks(cart);
if (useCount > INITIAL_USE_COUNT)
dyStringPrintf(dyMessage,
"Overwrote the contents of session %s "
"(that %s be shared with other users). "
"%s %s",
htmlEncode(sessionName), (shareSession ? "may" : "may not"),
getSessionLink(encUserName, encSessionName),
getSessionEmailLink(encUserName, encSessionName));
else
dyStringPrintf(dyMessage,
"Added a new session %s that %s be shared with other users. "
"%s %s",
htmlEncode(sessionName), (shareSession ? "may" : "may not"),
getSessionLink(encUserName, encSessionName),