[ https://issues.apache.org/jira/browse/COMPRESS-628?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrii Hudz closed COMPRESS-628. -------------------------------- Fixed > OutOfMemoryError on pack200 NewAttributeBands.readNextUnionCase > --------------------------------------------------------------- > > Key: COMPRESS-628 > URL: https://issues.apache.org/jira/browse/COMPRESS-628 > Project: Commons Compress > Issue Type: Bug > Components: Archivers > Affects Versions: 1.21 > Environment: ubuntu18, java-11-openjdk-amd64 > Reporter: Andrii Hudz > Priority: Major > Fix For: 1.22 > > > Similar to https://issues.apache.org/jira/browse/COMPRESS-626 > pack200.NewAttributeBands.readNextUnionCase can result in an infinite loop > that finally leads to an out of memory error. > {code:java} > import org.apache.commons.compress.harmony.pack200.*; > public class ApacheCompress_1_22_90a4d8b3_OutOfMemory { > public static void main(String[] args) throws Exception { > CPUTF8 name = new CPUTF8(""); > CPUTF8 layout = new CPUTF8("Re\\T"); > new NewAttributeBands(1, null, null, > new AttributeDefinitionBands.AttributeDefinition(35, > AttributeDefinitionBands.CONTEXT_CLASS, name, layout) > ); > } > } > {code} > > exception on 1.22 snapshot commit(90a4d8b3) > {code:java} > Exception in thread "main" java.lang.OutOfMemoryError: Java heap space: > failed reallocation of scalar replaced objects {code} > exception on 1.21 > {code:java} > java.lang.OutOfMemoryError: Java heap space > at java.base/java.util.Arrays.copyOf(Arrays.java:3745) > at > java.base/java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:172) > at > java.base/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:748) > at java.base/java.lang.StringBuffer.append(StringBuffer.java:429) > at > org.apache.commons.compress.harmony.pack200.NewAttributeBands.getStreamUpToMatchingBracket(NewAttributeBands.java:822) > at > org.apache.commons.compress.harmony.pack200.NewAttributeBands.readNextUnionCase(NewAttributeBands.java:304) > at > org.apache.commons.compress.harmony.pack200.NewAttributeBands.readNextLayoutElement(NewAttributeBands.java:237) > at > org.apache.commons.compress.harmony.pack200.NewAttributeBands.readNextAttributeElement(NewAttributeBands.java:184) > at > org.apache.commons.compress.harmony.pack200.NewAttributeBands.parseLayout(NewAttributeBands.java:95) > at > org.apache.commons.compress.harmony.pack200.NewAttributeBands.<init>(NewAttributeBands.java:53) > at > ApacheCompress_1_22_90a4d8b3_OutOfMemory.main(ApacheCompress_1_22_90a4d8b3_OutOfMemory.java:7) > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)