Я получаю OutOfMemoryError от java.lang.StringBuilder.append, даже когда я устанавливаю размер памяти 32 ГБ и считываю только файл 500 МБ в сборщик.
java.lang.OutOfMemoryError: null at java.base/java.lang.AbstractStringBuilder.hugeCapacity(AbstractStringBuilder.java:214) ~[na:na] at java.base/java.lang.AbstractStringBuilder.newCapacity(AbstractStringBuilder.java:206) ~[na:na] at java.base/java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:173) ~[na:na] at java.base/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:538) ~[na:na] at java.base/java.lang.StringBuilder.append(StringBuilder.java:174) ~[na:na] at com.github.loa.indexer.service.index.base64.Base64Encoder.encode(Base64Encoder.java:31) ~[classes/:na]
Это происходит потому, что байтовому массиву, который StringBuilder хочет выделить, потребуется больший размер массива, чем разрешено JVM (более 2147483647, иначе говоря, элементов Integer.MAX_VALUE).