You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2025/08/02 21:32:45 UTC

(commons-compress) 02/02: org.apache.commons.compress.harmony.pack200.Pack200Exception.Pack200Exception(String, Object...)

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 bfae09525aebb8698dec8f88362877738e585b1a
Author: Gary D. Gregory <ga...@gmail.com>
AuthorDate: Sat Aug 2 17:32:37 2025 -0400

    org.apache.commons.compress.harmony.pack200.Pack200Exception.Pack200Exception(String,
    Object...)
---
 src/changes/changes.xml                                   |  1 +
 .../commons/compress/harmony/pack200/BHSDCodec.java       |  4 +---
 .../apache/commons/compress/harmony/pack200/Codec.java    |  2 +-
 .../commons/compress/harmony/pack200/CodecEncoding.java   |  2 +-
 .../compress/harmony/pack200/Pack200Exception.java        | 15 +++++++++++++++
 .../commons/compress/harmony/pack200/PopulationCodec.java |  2 +-
 .../apache/commons/compress/harmony/pack200/Segment.java  |  2 +-
 .../compress/harmony/unpack200/AttributeLayout.java       |  4 ++--
 .../compress/harmony/unpack200/AttributeLayoutMap.java    |  4 ++--
 .../commons/compress/harmony/unpack200/BandSet.java       |  6 +++---
 .../compress/harmony/unpack200/SegmentConstantPool.java   |  8 ++++----
 .../commons/compress/harmony/unpack200/SegmentHeader.java |  2 +-
 12 files changed, 33 insertions(+), 19 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 8ae770046..30feebbac 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -64,6 +64,7 @@ The <action> type attribute can be add,update,fix,remove.
       <action type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.compress.CompressException.CompressException(String, Object...).</action>
       <action type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.compress.archivers.ArchiveException.ArchiveException(String, Object...).</action>
       <action type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.compress.compressors.CompressorException.CompressorException(String, Object...).</action>
+      <action type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.compress.harmony.pack200.Pack200Exception.Pack200Exception(String, Object...).</action>
       <!-- UPDATE -->
     </release>
     <release version="1.28.0" date="2025-07-26" description="This is a feature and maintenance release. Java 8 or later is required.">
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/BHSDCodec.java b/src/main/java/org/apache/commons/compress/harmony/pack200/BHSDCodec.java
index e3ea428c7..6c1f3ccba 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/BHSDCodec.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/BHSDCodec.java
@@ -312,9 +312,8 @@ public byte[] encode(final int value) throws Pack200Exception {
     @Override
     public byte[] encode(final int value, final int last) throws Pack200Exception {
         if (!encodes(value)) {
-            throw new Pack200Exception("The codec " + this + " does not encode the value " + value);
+            throw new Pack200Exception("The codec %s does not encode the value %s", this, value);
         }
-
         long z = value;
         if (isDelta()) {
             z -= last;
@@ -340,7 +339,6 @@ public byte[] encode(final int value, final int last) throws Pack200Exception {
         if (z < 0) {
             throw new Pack200Exception("Unable to encode");
         }
-
         final List<Byte> byteList = new ArrayList<>();
         for (int n = 0; n < b; n++) {
             long byteN;
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Codec.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Codec.java
index e43000842..089c599c0 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Codec.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Codec.java
@@ -92,7 +92,7 @@ int check(final int n, final InputStream in) throws Pack200Exception {
                 final long remaining = maxLength - count;
                 final String format = "Can't read beyond end of stream (n = %,d, count = %,d, maxLength = %,d, remaining = %,d)";
                 if (count < -1 || n > remaining) {
-                    throw new Pack200Exception(String.format(format, n, count, maxLength, remaining));
+                    throw new Pack200Exception(format, n, count, maxLength, remaining);
                 }
             }
         }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CodecEncoding.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CodecEncoding.java
index 48499f894..b4543cd27 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CodecEncoding.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CodecEncoding.java
@@ -148,7 +148,7 @@ public static Codec getCodec(final int value, final InputStream in, final Codec
             return new RunCodec(k, aCodec, bCodec);
         }
         if (value < 141 || value > 188) {
-            throw new Pack200Exception("Invalid codec encoding byte (" + value + ") found");
+            throw new Pack200Exception("Invalid codec encoding byte (%s) found", value);
         }
         final int offset = value - 141;
         final boolean fdef = (offset & 1) == 1;
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Exception.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Exception.java
index b27093a76..e5d60675c 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Exception.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200Exception.java
@@ -37,6 +37,21 @@ public Pack200Exception(final String message) {
         super(message);
     }
 
+    /**
+     * Constructs a new exception with the specified detail message format and arguments. The cause is not initialized.
+     * <p>
+     * The arguments are used with {@link String#format(String, Object...)}.
+     * </p>
+     *
+     * @param message The message format (which is saved for later retrieval by the {@link #getMessage()} method).
+     * @param args    the format arguments to use.
+     * @since 1.29.0
+     * @see String#format(String, Object...)
+     */
+    public Pack200Exception(final String message, final Object... args) {
+        super(message, args);
+    }
+
     /**
      * Constructs an {@code Pack200Exception} with the specified detail message and cause.
      * <p>
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/PopulationCodec.java b/src/main/java/org/apache/commons/compress/harmony/pack200/PopulationCodec.java
index 92c7a8485..6aaeb7616 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/PopulationCodec.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/PopulationCodec.java
@@ -105,7 +105,7 @@ public int[] decodeInts(final int n, final InputStream in) throws IOException, P
                     }
                 }
                 if (tokenCodec == null) {
-                    throw new Pack200Exception("Cannot calculate token codec from " + k + " and " + l);
+                    throw new Pack200Exception("Cannot calculate token codec from %s and %s", k, l);
                 }
             }
         }
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java
index 095745beb..30c1113e2 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java
@@ -672,7 +672,7 @@ private void processClasses(final SegmentUnit segmentUnit, final Attribute[] att
                     }
                 }
                 if (!found) {
-                    throw new Pack200Exception("Error passing file " + name);
+                    throw new Pack200Exception("Error passing file '%s'", name);
                 }
             }
         }
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayout.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayout.java
index eeac65470..43e248cf3 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayout.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayout.java
@@ -242,7 +242,7 @@ private static ClassFileEntry getValue(final String layout, long longIndex, fina
                 return pool.getValue(SegmentConstantPool.CP_DOUBLE, longIndex);
             }
         }
-        throw new Pack200Exception("Unknown layout encoding: " + layout);
+        throw new Pack200Exception("Unknown layout encoding: '%s'", layout);
     }
 
     private final int context;
@@ -293,7 +293,7 @@ public AttributeLayout(final String name, final int context, final String layout
             this.mask = 0;
         }
         if (context != CONTEXT_CLASS && context != CONTEXT_CODE && context != CONTEXT_FIELD && context != CONTEXT_METHOD) {
-            throw new Pack200Exception("Attribute context out of range: " + context);
+            throw new Pack200Exception("Attribute context out of range: %d", context);
         }
         if (layout == null) {
             throw new Pack200Exception("Cannot have a null layout");
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayoutMap.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayoutMap.java
index 486dd32e7..686f0e4d9 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayoutMap.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/AttributeLayoutMap.java
@@ -158,8 +158,8 @@ public void checkMap() throws Pack200Exception {
                 for (int j2 = j + 1; j2 < layouts.size(); j2++) {
                     final AttributeLayout layout2 = layouts.get(j2);
                     if (layout1.getName().equals(layout2.getName()) && layout1.getLayout().equals(layout2.getLayout())) {
-                        throw new Pack200Exception("Same layout/name combination: " + layout1.getLayout() + "/" + layout1.getName()
-                                + " exists twice for context: " + AttributeLayout.contextNames[layout1.getContext()]);
+                        throw new Pack200Exception("Same layout/name combination: %s/%s exists twice for context: %s", layout1.getLayout(), layout1.getName(),
+                                AttributeLayout.contextNames[layout1.getContext()]);
                     }
                 }
             }
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/BandSet.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/BandSet.java
index 6ac490e06..c919cc168 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/BandSet.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/BandSet.java
@@ -324,7 +324,7 @@ public CPInteger[] parseCPIntReferences(final String name, final InputStream in,
         for (int i = 0; i < count; i++) {
             final int index = indices[i];
             if (index < 0 || index >= reference.length) {
-                throw new Pack200Exception("Something has gone wrong during parsing references, index = " + index + ", array size = " + reference.length);
+                throw new Pack200Exception("Something has gone wrong parsing references, index = %,d, array size = %,d", index, reference.length);
             }
             result[i] = cpBands.cpIntegerValue(index);
         }
@@ -351,7 +351,7 @@ public CPLong[] parseCPLongReferences(final String name, final InputStream in, f
         for (int i = 0; i < count; i++) {
             final int index = indices[i];
             if (index < 0 || index >= reference.length) {
-                throw new Pack200Exception("Something has gone wrong during parsing references, index = " + index + ", array size = " + reference.length);
+                throw new Pack200Exception("Something has gone wrong parsing references, index = %,d, array size = %,d", index, reference.length);
             }
             result[i] = cpBands.cpLongValue(index);
         }
@@ -637,7 +637,7 @@ public String[][] parseReferences(final String name, final InputStream in, final
         for (int i1 = 0; i1 < sum; i1++) {
             final int index = indices[i1];
             if (index < 0 || index >= reference.length) {
-                throw new Pack200Exception("Something has gone wrong during parsing references, index = " + index + ", array size = " + reference.length);
+                throw new Pack200Exception("Something has gone wrong parsing references, index = %,d, array size = %,d", index, reference.length);
             }
             result1[i1] = reference[index];
         }
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 f72902cfa..b02435c66 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
@@ -196,7 +196,7 @@ public ConstantPoolEntry getClassSpecificPoolEntry(final int cp, final long desi
             array = bands.getCpIMethodClass();
             break;
         default:
-            throw new Pack200Exception("Type is not supported yet: " + cp);
+            throw new Pack200Exception("Type is not supported yet: %s", cp);
         }
         return getConstantPoolEntry(cp, matchSpecificPoolEntryIndex(array, desiredClassName, toIndex(desiredIndex)));
     }
@@ -230,10 +230,10 @@ public ConstantPoolEntry getConstantPoolEntry(final int type, final long index)
         case CP_CLASS:
             return bands.cpClassValue(actualIndex);
         case SIGNATURE:
-            throw new Pack200Exception("Type SIGNATURE is not supported yet: " + SIGNATURE);
+            throw new Pack200Exception("Type SIGNATURE is not supported yet: %s", SIGNATURE);
         // return null /* new CPSignature(bands.getCpSignature()[index]) */;
         case CP_DESCR:
-            throw new Pack200Exception("Type CP_DESCR is not supported yet: " + CP_DESCR);
+            throw new Pack200Exception("Type CP_DESCR is not supported yet: %s", CP_DESCR);
         // return null /* new CPDescriptor(bands.getCpDescriptor()[index])
         // */;
         case CP_FIELD:
@@ -246,7 +246,7 @@ public ConstantPoolEntry getConstantPoolEntry(final int type, final long index)
             break;
         }
         // etc
-        throw new Pack200Exception("Type is not supported yet: " + type);
+        throw new Pack200Exception("Type is not supported yet: %s", type);
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/SegmentHeader.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/SegmentHeader.java
index 49ab73f16..aaa4c078e 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/SegmentHeader.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/SegmentHeader.java
@@ -315,7 +315,7 @@ public void read(final InputStream in) throws IOException, Error, Pack200Excepti
      */
     private void setArchiveMajorVersion(final int version) throws Pack200Exception {
         if (version != 150) {
-            throw new Pack200Exception("Invalid segment major version: " + version);
+            throw new Pack200Exception("Invalid segment major version: %s", version);
         }
         archiveMajor = version;
     }