PaxHeaders.X が作られないように圧縮ファイルを作成する

apache commons compress で圧縮ファイル tar.gz を作成していたら、
階層が深かったり長すぎるファイル名で圧縮後、解凍を行ったときに、
PaxHeaders.X という名のディレクトリエントリ、中に展開したときに不完全に解凍されたファイルのパスが
作られてしまった。

tar の仕様の問題であるが、Apache commons compress で圧縮するときの回避として、

TarArchiveOutputStream の設定メソッドで、

setLongFileMode(TarArchiveOutputStream.LONGFILE_POSIX);

ではなく、

setLongFileMode(TarArchiveOutputStream.LONGFILE_GNU);

で設定する。

以下も修正

tar and zip の圧縮・展開 - Oboe吹きプログラマの黙示録