returns an unmodifiable view of the public keys . for efficiency , an in-memory cache of the public keys is used here . if this method is called for the first time , or the certificates have expired since last time it has been called or are within 5 minutes of expiring , #refresh will be called before returning the value . concode_field_sep Pattern MAX_AGE_PATTERN concode_elem_sep Lock lock concode_elem_sep List<PublicKey> publicKeys concode_elem_sep JsonFactory jsonFactory concode_elem_sep Clock clock concode_elem_sep long expirationTimeMilliseconds concode_elem_sep String publicCertsEncodedUrl concode_elem_sep long REFRESH_SKEW_MILLIS concode_elem_sep HttpTransport transport concode_elem_sep Clock clock concode_elem_sep String publicCertsEncodedUrl concode_field_sep HttpTransport getTransport concode_elem_sep HttpTransport getTransport concode_elem_sep GooglePublicKeysManager build concode_elem_sep String getPublicCertsEncodedUrl concode_elem_sep String getPublicCertsEncodedUrl concode_elem_sep GooglePublicKeysManager refresh concode_elem_sep JsonFactory getJsonFactory concode_elem_sep JsonFactory getJsonFactory concode_elem_sep Clock getClock concode_elem_sep Clock getClock concode_elem_sep long getCacheTimeInSec concode_elem_sep Builder setPublicCertsEncodedUrl concode_elem_sep long getExpirationTimeMilliseconds concode_elem_sep Builder setClock
List < PublicKey > function ( ) { lock . lock ( ) ; try { if ( publicKeys == null || clock . currentTimeMillis ( ) + REFRESH_SKEW_MILLIS > expirationTimeMilliseconds ) { refresh ( ) ; } return publicKeys ; } finally { lock . unlock ( ) ; } }