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,["# Interface CredentialRefreshListener (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.CredentialRefreshListener)\n- [1.38.2](/java/docs/reference/google-oauth-client/1.38.2/com.google.api.client.auth.oauth2.CredentialRefreshListener)\n- [1.37.0](/java/docs/reference/google-oauth-client/1.37.0/com.google.api.client.auth.oauth2.CredentialRefreshListener)\n- [1.36.0](/java/docs/reference/google-oauth-client/1.36.0/com.google.api.client.auth.oauth2.CredentialRefreshListener)\n- [1.34.1](/java/docs/reference/google-oauth-client/1.34.1/com.google.api.client.auth.oauth2.CredentialRefreshListener)\n- [1.33.3](/java/docs/reference/google-oauth-client/1.33.3/com.google.api.client.auth.oauth2.CredentialRefreshListener)\n- [1.32.1](/java/docs/reference/google-oauth-client/1.32.1/com.google.api.client.auth.oauth2.CredentialRefreshListener) \n\n public interface CredentialRefreshListener\n\nListener for refresh token results.\n\nThese methods are called 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__) after a response has been\nreceived from refreshing the token. [#onTokenResponse](/java/docs/reference/google-oauth-client/latest/com.google.api.client.auth.oauth2.CredentialRefreshListener#com_google_api_client_auth_oauth2_CredentialRefreshListener_onTokenResponse_) is called on a successful HTTP\nresponse, and [#onTokenErrorResponse](/java/docs/reference/google-oauth-client/latest/com.google.api.client.auth.oauth2.CredentialRefreshListener#com_google_api_client_auth_oauth2_CredentialRefreshListener_onTokenErrorResponse_) is called on an error HTTP response.\n\nMethods\n-------\n\n### onTokenErrorResponse(Credential credential, TokenErrorResponse tokenErrorResponse)\n\n public abstract 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)\n\n public abstract 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)."]]