S3のファイルの最終更新日時を取得するためにこういうコードを書くと、50回ほど実行したときにConnectionPoolTimeoutExceptionが発生します。
AmazonS3Client s3 = new AmazonS3Client(引数省略);
S3Object obj = s3.getObject("backetname", "filename.txt");
long lastModified = obj.getObjectMetadata().getLastModified().getTime();
これは、getObjectがcloseされてないせいで、ちゃんとobj.close()を呼べば解決。
S3Object#getObjectContentを呼んだときだけcloseしなきゃならないと思っていたけれど、どうも無条件でcloseしなきゃならないようです。
ObjectMetadataはAmazonS3Clientから直接取れるので、getObjectを使わない以下のコードでもOK。
AmazonS3Client s3 = new AmazonS3Client(引数省略);
long lastModified = s3.getObjectMetadata("backetname", "filename.txt").getLastModified().getTime();
S3ObjectはCloseableです。Closeableなインスタンスは必ずcloseしろということですね。