This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-compress.git
commit d358a28bf420623164152937d35866cee1c8153a Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Thu Apr 10 09:43:21 2025 -0400 org.apache.commons.compress.harmony.unpack200.SegmentConstantPool.getClassSpecificPoolEntry(int, long, String) now throws Pack200Exception instead of Error on bad constant pool type input --- src/changes/changes.xml | 1 + .../commons/compress/harmony/unpack200/SegmentConstantPool.java | 6 ++---- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index c0138b811..bac61cda0 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -74,6 +74,7 @@ The <action> type attribute can be add,update,fix,remove. <action type="fix" dev="ggregory" due-to="Gary Gregory">org.apache.commons.compress.harmony.unpack200.SegmentConstantPool.getConstantPoolEntry(int, long) now throws Pack200Exception instead of Error and does better range checking of the index argument.</action> <action type="fix" dev="ggregory" due-to="Gary Gregory">org.apache.commons.compress.harmony.unpack200.SegmentConstantPool.getInitMethodPoolEntry(int, long, String) now throws Pack200Exception instead of Error and does better range checking of the index argument.</action> <action type="fix" dev="ggregory" due-to="Gary Gregory">org.apache.commons.compress.harmony.unpack200.SegmentConstantPool.getInitMethodPoolEntry(int, long, String) now throws Pack200Exception instead of Error on bad constant pool type input.</action> + <action type="fix" dev="ggregory" due-to="Gary Gregory">org.apache.commons.compress.harmony.unpack200.SegmentConstantPool.getClassSpecificPoolEntry(int, long, String) now throws Pack200Exception instead of Error on bad constant pool type input.</action> <!-- ADD --> <action type="add" dev="ggregory" due-to="Gary Gregory">Add GzipParameters.getModificationInstant().</action> <action type="add" dev="ggregory" due-to="Gary Gregory">Add GzipParameters.setModificationInstant(Instant).</action> diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/SegmentConstantPool.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/SegmentConstantPool.java index 6d5eb9873..c0e85fe92 100644 --- a/src/main/java/org/apache/commons/compress/harmony/unpack200/SegmentConstantPool.java +++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/SegmentConstantPool.java @@ -203,11 +203,9 @@ public ConstantPoolEntry getClassSpecificPoolEntry(final int cp, final long desi array = bands.getCpIMethodClass(); break; default: - throw new Error("Don't know how to handle " + cp); + throw new Pack200Exception("Type is not supported yet: " + cp); } - final int index = toIndex(desiredIndex); - final int realIndex = matchSpecificPoolEntryIndex(array, desiredClassName, index); - return getConstantPoolEntry(cp, realIndex); + return getConstantPoolEntry(cp, matchSpecificPoolEntryIndex(array, desiredClassName, toIndex(desiredIndex))); } /**