protected void AfterEnd() { try { if (eventQueue != null) { eventQueue.FlushEventQueue(); } } finally { try { IDatabaseProvider databaseProvider = beanContext.GetService <IDatabaseProvider>("databaseProvider", false); IDatabase database = databaseProvider != null?databaseProvider.TryGetInstance() : null; if (database != null) { database.Dispose(); } } finally { ClearThreadLocal(); } } }