Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5d8accdd authored by Priyanka Advani (xWF)'s avatar Priyanka Advani (xWF) Committed by Android (Google) Code Review
Browse files

Revert "Speculative fix for concurrency SessionManager issue"

Revert submission 30239784-spec_session_fix

Reason for revert: Droidmonitor created revert due to b/377750579. Will be verifying through ABTD before submission.

Reverted changes: /q/submissionid:30239784-spec_session_fix

Change-Id: I3642b453f10095354bf4f82d14cfd275e7d143cc
parent d4a941eb
Loading
Loading
Loading
Loading
+1 −18
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@ public class Log {
    // Used to synchronize singleton logging lazy initialization
    private static final Object sSingletonSync = new Object();
    private static EventManager sEventManager;
    private static volatile SessionManager sSessionManager;
    private static SessionManager sSessionManager;
    private static Object sLock = null;

    /**
@@ -379,23 +379,6 @@ public class Log {
        return sSessionManager;
    }

    @VisibleForTesting
    public static SessionManager setSessionManager(Context context,
            java.lang.Runnable cleanSessionRunnable) {
        // Checking for null again outside of synchronization because we only need to synchronize
        // during the lazy loading of the session logger. We don't need to synchronize elsewhere.
        if (sSessionManager == null) {
            synchronized (sSingletonSync) {
                if (sSessionManager == null) {
                    sSessionManager = new SessionManager(cleanSessionRunnable);
                    sSessionManager.setContext(context);
                    return sSessionManager;
                }
            }
        }
        return sSessionManager;
    }

    public static void setTag(String tag) {
        TAG = tag;
        DEBUG = isLoggable(android.util.Log.DEBUG);
+13 −21
Original line number Diff line number Diff line
@@ -62,7 +62,9 @@ public class SessionManager {

    @VisibleForTesting
    public final ConcurrentHashMap<Integer, Session> mSessionMapper = new ConcurrentHashMap<>(64);
    private final java.lang.Runnable mCleanStaleSessions;
    @VisibleForTesting
    public java.lang.Runnable mCleanStaleSessions = () ->
            cleanupStaleSessions(getSessionCleanupTimeoutMs());
    private final Handler mSessionCleanupHandler = new Handler(Looper.getMainLooper());

    // Overridden in LogTest to skip query to ContentProvider
@@ -108,37 +110,27 @@ public class SessionManager {
    }

    public SessionManager() {
        mCleanStaleSessions = () -> cleanupStaleSessions(getSessionCleanupTimeoutMs());
    }

    @VisibleForTesting
    public SessionManager(java.lang.Runnable cleanStaleSessionsRunnable) {
        mCleanStaleSessions = cleanStaleSessionsRunnable;
    }

    private long getSessionCleanupTimeoutMs() {
        return mSessionCleanupTimeoutMs.get();
    }

    private void resetStaleSessionTimer() {
    private synchronized void resetStaleSessionTimer() {
        if (!Flags.endSessionImprovements()) {
            resetStaleSessionTimerOld();
            return;
        }
            mSessionCleanupHandler.removeCallbacksAndMessages(null);
            // Will be null in Log Testing
        if (mCleanStaleSessions == null) return;
        synchronized (mSessionCleanupHandler) {
            if (!mSessionCleanupHandler.hasCallbacks(mCleanStaleSessions)) {
            if (mCleanStaleSessions != null) {
                mSessionCleanupHandler.postDelayed(mCleanStaleSessions,
                        getSessionCleanupTimeoutMs());
            }
        } else {
            if (mCleanStaleSessions != null
                    && !mSessionCleanupHandler.hasCallbacks(mCleanStaleSessions)) {
                mSessionCleanupHandler.postDelayed(mCleanStaleSessions,
                        getSessionCleanupTimeoutMs());
            }
        }

    private synchronized void resetStaleSessionTimerOld() {
        if (mCleanStaleSessions == null) return;
        mSessionCleanupHandler.removeCallbacksAndMessages(null);
        mSessionCleanupHandler.postDelayed(mCleanStaleSessions, getSessionCleanupTimeoutMs());
    }

    /**