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

Commit 021cef52 authored by Alexandre Roux's avatar Alexandre Roux
Browse files

use synchronized method to avoid concurrency issues

parent 1782c615
Loading
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ public class K9OAuth2TokenProvider extends OAuth2TokenProvider {
    @Override
    public String getToken(String email, long timeoutMillis)
	    throws AuthenticationFailedException, OAuth2NeedUserPromptException {
        getTokenFromAccountManager(email);
        String authToken = getTokenFromAccountManager(email);
        if (authToken != null) {
            return authToken;
        }
@@ -73,7 +73,7 @@ public class K9OAuth2TokenProvider extends OAuth2TokenProvider {
        return authorizationCodeFlowTokenProvider.getToken(email, timeoutMillis);
    }

    private String getTokenFromAccountManager(String emailId) {
    private synchronized String getTokenFromAccountManager(String emailId) {
        authToken = null; // set null otherwise we will have issues when address A is on account manager but Address B isn't, authToken will be != null (token of address A)
        android.accounts.Account[] eeloAccounts = accountManager.getAccountsByType(
                EELO_ACCOUNT_TYPE);
@@ -125,7 +125,7 @@ public class K9OAuth2TokenProvider extends OAuth2TokenProvider {

    @Override
    public void invalidateToken(String email) {
        getTokenFromAccountManager(email);
        String authToken = getTokenFromAccountManager(email);
        if (authToken != null) {
            accountManager.invalidateAuthToken(AUTH_TOKEN_TYPE,authToken);
            return;