大量のデータ(14ギガ)をtar / gzする必要のあるJavaプログラムがあり、commons-compressを使用しています。これは毎週繰り返される仕事であり、自動化されています。
このサイズのものを圧縮しようとすると、次のようになります。
java.lang.IllegalArgumentException: 13313903445=143144405525 will not fit in octal number buffer of length 11
at org.apache.commons.compress.archivers.tar.TarUtils.formatUnsignedOctalString(TarUtils.java:212)
at org.apache.commons.compress.archivers.tar.TarUtils.formatLongOctalBytes(TarUtils.java:265)
at org.apache.commons.compress.archivers.tar.TarArchiveEntry.writeEntryHeader(TarArchiveEntry.java:749)
at org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.putArchiveEntry(TarArchiveOutputStream.java:209)
at com.broadridge.adc.core.commons.io.ADCFileUtils.addFilesToCompression(ADCFileUtils.java:144)
at com.broadridge.adc.core.commons.io.ADCFileUtils.addFilesToCompression(ADCFileUtils.java:154)
at com.broadridge.adc.core.commons.io.ADCFileUtils.compressFiles(ADCFileUtils.java:125)
at com.broadridge.adc.core.commons.io.ADCFileUtils.compressFile(ADCFileUtils.java:106)
私のコードは、少量の情報(約600メガバイト)で正常に機能します。ソースコードを見てきましたが、なぜエラーが発生しているのかわかりません。
なぜこれが起こっているのか誰かが知っていますか?