This is an automated email from the ASF dual-hosted git repository.

garydgregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-compress.git

commit 5940bb0f237d82271f0604da7ce214f566cfbac4
Author: Gary Gregory <[email protected]>
AuthorDate: Fri Jul 31 10:32:21 2026 -0400

    No need to nest else.
---
 .../archivers/lha/LhaArchiveInputStream.java       | 85 ++++++++++++----------
 1 file changed, 46 insertions(+), 39 deletions(-)

diff --git 
a/src/main/java/org/apache/commons/compress/archivers/lha/LhaArchiveInputStream.java
 
b/src/main/java/org/apache/commons/compress/archivers/lha/LhaArchiveInputStream.java
index f6c33619f..bda9b8c62 100644
--- 
a/src/main/java/org/apache/commons/compress/archivers/lha/LhaArchiveInputStream.java
+++ 
b/src/main/java/org/apache/commons/compress/archivers/lha/LhaArchiveInputStream.java
@@ -222,14 +222,13 @@ static String getCompressionMethod(final ByteBuffer 
buffer) throws ArchiveExcept
             (Character.isLowerCase(compressionMethodBuffer[3]) || 
Character.isDigit(compressionMethodBuffer[3])) &&
             compressionMethodBuffer[4] == '-') {
             return new String(compressionMethodBuffer, 
StandardCharsets.US_ASCII);
-        } else {
-            throw new ArchiveException("Invalid compression method: 0x%02x 
0x%02x 0x%02x 0x%02x 0x%02x",
-                    compressionMethodBuffer[0],
-                    compressionMethodBuffer[1],
-                    compressionMethodBuffer[2],
-                    compressionMethodBuffer[3],
-                    compressionMethodBuffer[4]);
         }
+        throw new ArchiveException("Invalid compression method: 0x%02x 0x%02x 
0x%02x 0x%02x 0x%02x",
+                compressionMethodBuffer[0],
+                compressionMethodBuffer[1],
+                compressionMethodBuffer[2],
+                compressionMethodBuffer[3],
+                compressionMethodBuffer[4]);
     }
     /**
      * Checks if the signature matches what is expected for an LHA file. There 
is no specific
@@ -257,7 +256,7 @@ public static boolean matches(final byte[] signature, final 
int length) {
         // Check if the compression method is valid for LHA archives
         try {
             getCompressionMethod(header);
-        } catch (ArchiveException e) {
+        } catch (final ArchiveException e) {
             return false;
         }
 
@@ -298,7 +297,7 @@ private ByteBuffer byteBufferSlice(final ByteBuffer buffer, 
final int position,
      */
     private long calculateCRC16(final ByteBuffer... buffers) {
         final Checksum crc = Crc16.arc();
-        for (ByteBuffer buffer : buffers) {
+        for (final ByteBuffer buffer : buffers) {
             crc.update(buffer.array(), 0, buffer.limit());
         }
 
@@ -357,9 +356,10 @@ String getPathname(final ByteBuffer buffer, final int 
pathnameLength) throws Arc
         // Check pathname length to ensure we don't allocate too much memory
         if (pathnameLength > MAX_PATHNAME_LENGTH) {
             throw new ArchiveException("Pathname is longer than the maximum 
allowed (%d > %d)", pathnameLength, MAX_PATHNAME_LENGTH);
-        } else if (pathnameLength < 0) {
+        }
+        if (pathnameLength < 0) {
             throw new ArchiveException("Pathname length is negative");
-        } else if (pathnameLength > (buffer.limit() - buffer.position())) {
+        } else if (pathnameLength > buffer.limit() - buffer.position()) {
             throw new ArchiveException("Invalid pathname length");
         }
 
@@ -424,25 +424,27 @@ void parseExtendedHeader(final ByteBuffer 
extendedHeaderBuffer, final LhaArchive
         }
 
         final int extendedHeaderType = 
Byte.toUnsignedInt(extendedHeaderBuffer.get());
-        if (extendedHeaderType == EXTENDED_HEADER_TYPE_COMMON) {
+        switch (extendedHeaderType) {
+        case EXTENDED_HEADER_TYPE_COMMON: {
             // Common header
-            if (extendedHeaderLength < (MIN_EXTENDED_HEADER_LENGTH + 
EXTENDED_HEADER_TYPE_COMMON_MIN_PAYLOAD_LENGTH)) {
+            if (extendedHeaderLength < MIN_EXTENDED_HEADER_LENGTH + 
EXTENDED_HEADER_TYPE_COMMON_MIN_PAYLOAD_LENGTH) {
                 throw new ArchiveException("Invalid extended header length");
             }
-
             final int crcPos = extendedHeaderBuffer.position(); // Save the 
current position to be able to set the header CRC later
-
             // Header CRC
             
entryBuilder.setHeaderCrc(Short.toUnsignedInt(extendedHeaderBuffer.getShort()));
-
             // Set header CRC to zero to be able to later compute the CRC of 
the full header
             extendedHeaderBuffer.putShort(crcPos, (short) 0);
-        } else if (extendedHeaderType == EXTENDED_HEADER_TYPE_FILENAME) {
+            break;
+        }
+        case EXTENDED_HEADER_TYPE_FILENAME: {
             // File name header
             final int filenameLength = extendedHeaderBuffer.limit() - 
extendedHeaderBuffer.position() - EXTENDED_HEADER_NEXT_HEADER_SIZE_LENGTH;
             final String filename = getPathname(extendedHeaderBuffer, 
filenameLength);
             entryBuilder.setFilename(filename);
-        } else if (extendedHeaderType == EXTENDED_HEADER_TYPE_DIRECTORY_NAME) {
+            break;
+        }
+        case EXTENDED_HEADER_TYPE_DIRECTORY_NAME: {
             // Directory name header
             final int directoryNameLength = extendedHeaderBuffer.limit() - 
extendedHeaderBuffer.position() - EXTENDED_HEADER_NEXT_HEADER_SIZE_LENGTH;
             final String directoryName = getPathname(extendedHeaderBuffer, 
directoryNameLength);
@@ -452,36 +454,39 @@ void parseExtendedHeader(final ByteBuffer 
extendedHeaderBuffer, final LhaArchive
             } else {
                 entryBuilder.setDirectoryName(directoryName);
             }
-
-        } else if (extendedHeaderType == 
EXTENDED_HEADER_TYPE_MSDOS_FILE_ATTRIBUTES) {
+            break;
+        }
+        case EXTENDED_HEADER_TYPE_MSDOS_FILE_ATTRIBUTES:
             // MS-DOS file attributes
-            if (extendedHeaderLength != (MIN_EXTENDED_HEADER_LENGTH + 
EXTENDED_HEADER_TYPE_MSDOS_FILE_ATTRIBUTES_PAYLOAD_LENGTH)) {
+            if (extendedHeaderLength != MIN_EXTENDED_HEADER_LENGTH + 
EXTENDED_HEADER_TYPE_MSDOS_FILE_ATTRIBUTES_PAYLOAD_LENGTH) {
                 throw new ArchiveException("Invalid extended header length");
             }
-
             
entryBuilder.setMsdosFileAttributes(Short.toUnsignedInt(extendedHeaderBuffer.getShort()));
-        } else if (extendedHeaderType == EXTENDED_HEADER_TYPE_UNIX_PERMISSION) 
{
+            break;
+        case EXTENDED_HEADER_TYPE_UNIX_PERMISSION:
             // UNIX file permission
-            if (extendedHeaderLength != (MIN_EXTENDED_HEADER_LENGTH + 
EXTENDED_HEADER_TYPE_UNIX_PERMISSION_PAYLOAD_LENGTH)) {
+            if (extendedHeaderLength != MIN_EXTENDED_HEADER_LENGTH + 
EXTENDED_HEADER_TYPE_UNIX_PERMISSION_PAYLOAD_LENGTH) {
                 throw new ArchiveException("Invalid extended header length");
             }
-
             
entryBuilder.setUnixPermissionMode(Short.toUnsignedInt(extendedHeaderBuffer.getShort()));
-        } else if (extendedHeaderType == EXTENDED_HEADER_TYPE_UNIX_UID_GID) {
+            break;
+        case EXTENDED_HEADER_TYPE_UNIX_UID_GID:
             // UNIX group/user ID
-            if (extendedHeaderLength != (MIN_EXTENDED_HEADER_LENGTH + 
EXTENDED_HEADER_TYPE_UNIX_UID_GID_PAYLOAD_LENGTH)) {
+            if (extendedHeaderLength != MIN_EXTENDED_HEADER_LENGTH + 
EXTENDED_HEADER_TYPE_UNIX_UID_GID_PAYLOAD_LENGTH) {
                 throw new ArchiveException("Invalid extended header length");
             }
-
             
entryBuilder.setUnixGroupId(Short.toUnsignedInt(extendedHeaderBuffer.getShort()));
             
entryBuilder.setUnixUserId(Short.toUnsignedInt(extendedHeaderBuffer.getShort()));
-        } else if (extendedHeaderType == EXTENDED_HEADER_TYPE_UNIX_TIMESTAMP) {
+            break;
+        case EXTENDED_HEADER_TYPE_UNIX_TIMESTAMP:
             // UNIX last modified time
-            if (extendedHeaderLength != (MIN_EXTENDED_HEADER_LENGTH + 
EXTENDED_HEADER_TYPE_UNIX_TIMESTAMP_PAYLOAD_LENGTH)) {
+            if (extendedHeaderLength != MIN_EXTENDED_HEADER_LENGTH + 
EXTENDED_HEADER_TYPE_UNIX_TIMESTAMP_PAYLOAD_LENGTH) {
                 throw new ArchiveException("Invalid extended header length");
             }
-
             entryBuilder.setLastModifiedDate(new 
Date(Integer.toUnsignedLong(extendedHeaderBuffer.getInt()) * 1000));
+            break;
+        default:
+            break;
         }
 
         // Ignore unknown extended header
@@ -579,7 +584,8 @@ LhaArchiveEntry readHeader() throws IOException {
         if (len == 0) {
             // EOF
             return null;
-        } else if (len == 1 && buffer[0] == 0) {
+        }
+        if (len == 1 && buffer[0] == 0) {
             // Last byte of the file is zero indicating no more entries
             return null;
         } else if (len < HEADER_GENERIC_MINIMUM_HEADER_LENGTH) {
@@ -590,13 +596,14 @@ LhaArchiveEntry readHeader() throws IOException {
 
         // Determine header level
         final byte headerLevel = 
header.get(HEADER_GENERIC_OFFSET_HEADER_LEVEL);
-        if (headerLevel == 0) {
+        switch (headerLevel) {
+        case 0:
             return readHeaderLevel0(header);
-        } else if (headerLevel == 1) {
+        case 1:
             return readHeaderLevel1(header);
-        } else if (headerLevel == 2) {
+        case 2:
             return readHeaderLevel2(header);
-        } else {
+        default:
             throw new ArchiveException("Invalid header level: %d", 
headerLevel);
         }
     }
@@ -630,7 +637,7 @@ LhaArchiveEntry readHeaderLevel0(ByteBuffer buffer) throws 
IOException {
         final int filenameLength = 
Byte.toUnsignedInt(buffer.get(HEADER_LEVEL_0_OFFSET_FILENAME_LENGTH));
 
         // Make sure the filename is not overflowing into the CRC field
-        if (filenameLength > (headerSize - HEADER_LEVEL_0_OFFSET_FILENAME - 
2)) {
+        if (filenameLength > headerSize - HEADER_LEVEL_0_OFFSET_FILENAME - 2) {
             throw new ArchiveException("Invalid pathname length");
         }
 
@@ -681,7 +688,7 @@ LhaArchiveEntry readHeaderLevel1(ByteBuffer buffer) throws 
IOException {
         // Make sure the filename is not overflowing into the CRC, OS ID and 
first extended header length fields.
         // This check is not bulletproof because there might also be an 
extended area after the filename that
         // we cannot detect for corrupt archives.
-        if (filenameLength > (baseHeaderSize - HEADER_LEVEL_1_OFFSET_FILENAME 
- 5)) {
+        if (filenameLength > baseHeaderSize - HEADER_LEVEL_1_OFFSET_FILENAME - 
5) {
             throw new ArchiveException("Invalid pathname length");
         }
 
@@ -766,7 +773,7 @@ LhaArchiveEntry readHeaderLevel2(ByteBuffer buffer) throws 
IOException {
         int extendedHeaderSize = 
Short.toUnsignedInt(buffer.getShort(HEADER_LEVEL_2_OFFSET_FIRST_EXTENDED_HEADER_SIZE));
         int extendedHeaderOffset = 
HEADER_LEVEL_2_OFFSET_FIRST_EXTENDED_HEADER_SIZE + 2;
         while (extendedHeaderSize > 0) {
-            if ((extendedHeaderOffset + extendedHeaderSize) > buffer.limit()) {
+            if (extendedHeaderOffset + extendedHeaderSize > buffer.limit()) {
                 throw new ArchiveException("Invalid extended header length");
             }
 

Reply via email to