public bool IsNewSession(UUID newSessionID)
        {
            m_log.InfoFormat("[GLOEBITMONEYMODULE] in IsNewSession for last:{0} current:{1}", this.LastSessionID, newSessionID.ToString());
            string newSessionIDStr = newSessionID.ToString();

            if (this.LastSessionID == newSessionIDStr)
            {
                m_log.DebugFormat("[GLOEBITMONEYMODULE] User is not new session");
                return(false);
            }
            // Before we return true, Ensure our cache is up to date
            GloebitUser.InvalidateCache(UUID.Parse(this.PrincipalID));
            GloebitUser u_from_db = GloebitUser.Get(this.AppKey, UUID.Parse(this.PrincipalID));

            if (u_from_db.LastSessionID == newSessionIDStr)
            {
                m_log.DebugFormat("[GLOEBITMONEYMODULE] User Cache was out of date.  Updated cache.  User is not new session");
                // cache was out of date.  update local user copy form db
                this.UpdateFrom(u_from_db);
                return(false);
            }
            else
            {
                m_log.DebugFormat("[GLOEBITMONEYMODULE] User is New Session");
                // we have a new session.  Store it and return true.

                // Code to ensure we update user in cache
                GloebitUser u;
                lock (s_userMap) {
                    s_userMap.TryGetValue(this.PrincipalID, out u);
                }
                if (u == null)
                {
                    m_log.DebugFormat("[GLOEBITMONEYMODULE] GloebitUser.IsNewSession() Did not find User in s_userMap to update.  User logged out.");
                    u = u_from_db;  // User logged out.  Still want to store token.  Don't want to add back to map.
                }
                lock (u.userLock) {
                    u.LastSessionID = newSessionIDStr;
                    bool stored = GloebitUserData.Instance.Store(u);
                    if (!stored)
                    {
                        throw new Exception(String.Format("[GLOEBITMONEYMODULE] GloebitUser.IsNewSession Failed to store user {0}", this.PrincipalID));
                    }
                    this.UpdateFrom(u);
                }

                return(true);
            }
        }