code: private static synchronized ProfileCredentialsService getProfileCredentialService() {
          if (STS_CREDENTIALS_SERVICE == null) {
              try {
                  STS_CREDENTIALS_SERVICE = (ProfileCredentialsService) Class.forName(CLASS_NAME)
                          .newInstance();
              } catch (ClassNotFoundException ex) {
                  throw new SdkClientException(
                          "To use assume role profiles the aws-java-sdk-sts module must be on the class path.",
                          ex);
              } catch (InstantiationException ex) {
                  throw new SdkClientException("Failed to instantiate " + CLASS_NAME, ex);
              } catch (IllegalAccessException ex) {
                  throw new SdkClientException("Failed to instantiate " + CLASS_NAME, ex);
              }
          }
          return STS_CREDENTIALS_SERVICE;
      }
docs: Only called once per creation of each profile credential provider so we don't bother with any
  double checked locking.