Typical use is to provide functionality like removing persistence of the access token from
the data store. Implementations can assume proper thread synchronization is already taken care
of inside Credential#refreshToken(). Implementations can also assume that Credential#setAccessToken, and Credential#setExpiresInSeconds have already been called
previously with null to clear their values.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[],[],null,["# Class CredentialStoreRefreshListener (1.39.0)\n\nVersion latestkeyboard_arrow_down\n\n- [1.39.0 (latest)](/java/docs/reference/google-oauth-client/latest/com.google.api.client.auth.oauth2.CredentialStoreRefreshListener)\n- [1.38.2](/java/docs/reference/google-oauth-client/1.38.2/com.google.api.client.auth.oauth2.CredentialStoreRefreshListener)\n- [1.37.0](/java/docs/reference/google-oauth-client/1.37.0/com.google.api.client.auth.oauth2.CredentialStoreRefreshListener)\n- [1.36.0](/java/docs/reference/google-oauth-client/1.36.0/com.google.api.client.auth.oauth2.CredentialStoreRefreshListener)\n- [1.34.1](/java/docs/reference/google-oauth-client/1.34.1/com.google.api.client.auth.oauth2.CredentialStoreRefreshListener)\n- [1.33.3](/java/docs/reference/google-oauth-client/1.33.3/com.google.api.client.auth.oauth2.CredentialStoreRefreshListener)\n- [1.32.1](/java/docs/reference/google-oauth-client/1.32.1/com.google.api.client.auth.oauth2.CredentialStoreRefreshListener) \n\n public final class CredentialStoreRefreshListener implements CredentialRefreshListener\n\n**Deprecated.** *(to be removed in the future) Use [DataStoreCredentialRefreshListener](/java/docs/reference/google-oauth-client/latest/com.google.api.client.auth.oauth2.DataStoreCredentialRefreshListener) instead.*\n\nBeta \n\nThread-safe OAuth 2.0 credential refresh listener that stores the refresh token response in the\ncredential store.\n\nIt needs to be added as a refresh listener using [Credential.Builder#addRefreshListener](/java/docs/reference/google-oauth-client/latest/com.google.api.client.auth.oauth2.Credential.Builder#com_google_api_client_auth_oauth2_Credential_Builder_addRefreshListener_). \n\nInheritance\n-----------\n\n[java.lang.Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \\\u003e CredentialStoreRefreshListener \n\nImplements\n----------\n\n[CredentialRefreshListener](/java/docs/reference/google-oauth-client/latest/com.google.api.client.auth.oauth2.CredentialRefreshListener) \n\nInherited Members\n-----------------\n\n[Object.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--) \n[Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) \n[Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) \n[Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) \n[Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) \n[Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) \n[Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) \n[Object.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) \n[Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) \n[Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) \n[Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)\n\nConstructors\n------------\n\n### CredentialStoreRefreshListener(String userId, CredentialStore credentialStore) (deprecated)\n\n public CredentialStoreRefreshListener(String userId, CredentialStore credentialStore)\n\nMethods\n-------\n\n### getCredentialStore() (deprecated)\n\n public CredentialStore getCredentialStore()\n\nReturns the credential store.\n\n### makePersistent(Credential credential) (deprecated)\n\n public void makePersistent(Credential credential)\n\nStores the updated credential in the credential store.\n\n### onTokenErrorResponse(Credential credential, TokenErrorResponse tokenErrorResponse) (deprecated)\n\n public void onTokenErrorResponse(Credential credential, TokenErrorResponse tokenErrorResponse)\n\nNotifies of an error token response from [Credential#refreshToken()](/java/docs/reference/google-oauth-client/latest/com.google.api.client.auth.oauth2.Credential#com_google_api_client_auth_oauth2_Credential_refreshToken__).\n\nTypical use is to provide functionality like removing persistence of the access token from\nthe data store. Implementations can assume proper thread synchronization is already taken care\nof inside [Credential#refreshToken()](/java/docs/reference/google-oauth-client/latest/com.google.api.client.auth.oauth2.Credential#com_google_api_client_auth_oauth2_Credential_refreshToken__). Implementations can also assume that [Credential#setAccessToken](/java/docs/reference/google-oauth-client/latest/com.google.api.client.auth.oauth2.Credential#com_google_api_client_auth_oauth2_Credential_setAccessToken_), and [Credential#setExpiresInSeconds](/java/docs/reference/google-oauth-client/latest/com.google.api.client.auth.oauth2.Credential#com_google_api_client_auth_oauth2_Credential_setExpiresInSeconds_) have already been called\npreviously with `null` to clear their values.\n\n### onTokenResponse(Credential credential, TokenResponse tokenResponse) (deprecated)\n\n public void onTokenResponse(Credential credential, TokenResponse tokenResponse)\n\nNotifies of a successful token response from [Credential#refreshToken()](/java/docs/reference/google-oauth-client/latest/com.google.api.client.auth.oauth2.Credential#com_google_api_client_auth_oauth2_Credential_refreshToken__).\n\nTypical use is to provide functionality like persisting the access token in a data store.\nImplementations can assume proper thread synchronization is already taken care of inside [Credential#refreshToken()](/java/docs/reference/google-oauth-client/latest/com.google.api.client.auth.oauth2.Credential#com_google_api_client_auth_oauth2_Credential_refreshToken__). Implementations can also assume that [Credential#setAccessToken](/java/docs/reference/google-oauth-client/latest/com.google.api.client.auth.oauth2.Credential#com_google_api_client_auth_oauth2_Credential_setAccessToken_), [Credential#setRefreshToken](/java/docs/reference/google-oauth-client/latest/com.google.api.client.auth.oauth2.Credential#com_google_api_client_auth_oauth2_Credential_setRefreshToken_), and [Credential#setExpiresInSeconds](/java/docs/reference/google-oauth-client/latest/com.google.api.client.auth.oauth2.Credential#com_google_api_client_auth_oauth2_Credential_setExpiresInSeconds_) have already been called previously with the information from\nthe [TokenResponse](/java/docs/reference/google-oauth-client/latest/com.google.api.client.auth.oauth2.TokenResponse)."]]