code: public AmazonS3 getClient(String region) {
          if (region == null) {
              throw new IllegalArgumentException("S3 region must be specified");
          }
          AmazonS3 client = clientsByRegion.get(region);
          return client != null ? client : cacheClient(region);
      }
docs: Returns a client for the requested region, or throws an exception when
  unable.
  
  @param region
  The region the returned {@link AmazonS3} will be
  configured to use.
  @return A client for the given region from the cache, either instantiated
  automatically from the provided {@link AWSCredentials} or
  provided with {@link #useClient(AmazonS3)}.
  @throws IllegalArgumentException
  When a region is requested that has not been provided to the
  cache with {@link #useClient(AmazonS3)}, and the cache
  has no {@link AWSCredentials} with which a client may be
  instantiated.