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)));
     }
 
     /**

Reply via email to