<div class="container">
<h1>Recommended update for plexus-archiver, apache-commons-compress</h1>
<table class="table table-striped table-bordered">
<tbody>
<tr>
<th>Announcement ID:</th>
<td>SUSE-RU-2026:22375-1</td>
</tr>
<tr>
<th>Release Date:</th>
<td>2026-06-26T08:17:17Z</td>
</tr>
<tr>
<th>Rating:</th>
<td>moderate</td>
</tr>
<tr>
<th>References:</th>
<td>
<ul>
</ul>
</td>
</tr>
<tr>
<th>Affected Products:</th>
<td>
<ul class="list-group">
<li class="list-group-item">SUSE Linux Enterprise Server 16.0</li>
<li class="list-group-item">SUSE Linux Enterprise Server for SAP applications 16.0</li>
</ul>
</td>
</tr>
</tbody>
</table>
<p>An update that can now be installed.</p>
<h2>Description:</h2>
<p>This update for plexus-archiver, apache-commons-compress fixes the following issues:</p>
<p>Changes in plexus-archiver:</p>
<ul>
<li>we now have the dependencies to be able to build the zstd support</li>
</ul>
<p>Changes in apache-commons-compress:</p>
<p>Update to 1.28.0</p>
<ul>
<li>
<p>New Features</p>
<ul>
<li>Add GzipParameters.getModificationInstant()</li>
<li>Add GzipParameters.setModificationInstant(Instant)</li>
<li>Add GzipParameters.OS, setOS(OS), getOS()</li>
<li>Add GzipParameters.toString()</li>
<li>COMPRESS-638: Add GzipParameters.setFileNameCharset(Charset)
and getFileNameCharset() to override the default ISO-8859-1
Charset</li>
<li>Add support for gzip extra subfields, see
GzipParameters.setExtra(HeaderExtraField)</li>
<li>Add CompressFilterOutputStream and refactor to use</li>
<li>Add ZipFile.stream()</li>
<li>GzipCompressorInputStream reads the modification time (MTIME)
and stores its value incorrectly multiplied by 1,000</li>
<li>GzipCompressorInputStream writes the modification time (MTIME)
the value incorrectly divided by 1,000</li>
<li>Add optional FHCRC to GZIP header</li>
<li>Add GzipCompressorInputStream.Builder allowing to customize
the file name and comment Charsets</li>
<li>Add GzipCompressorInputStream.Builder
.setOnMemberStart(IOConsumer) to monitor member parsing</li>
<li>Add GzipCompressorInputStream.Builder
.setOnMemberEnd(IOConsumer) to monitor member parsing</li>
<li>Add PMD check to default Maven goal</li>
<li>Add SevenZFile.Builder.setMaxMemoryLimitKiB(int)</li>
<li>Add MemoryLimitException.MemoryLimitException(long, int,
Throwable) and deprecate MemoryLimitException
.MemoryLimitException(long, int, Exception)</li>
<li>COMPRESS-692: Add support for zstd compression in zip archives</li>
<li>Add support for XZ compression in ZIP archives</li>
<li>COMPRESS-695: Add ZipArchiveInputStream
.createZstdInputStream(InputStream) to provide a different
InputStream implementation for Zstandard (Zstd)</li>
<li>Add org.apache.commons.compress.harmony.pack200
.Pack200Exception.Pack200Exception(String, Throwable)</li>
<li>COMPRESS-697: Move BitStream.nextBit() method to BitInputStream</li>
<li>Add org.apache.commons.compress.compressors.lzma
.LZMACompressorInputStream.builder/Builder()</li>
<li>Add org.apache.commons.compress.compressors.lzma
.LZMACompressorOutputStream.builder/Builder()</li>
<li>Add org.apache.commons.compress.compressors.xz
.XZCompressorInputStream.builder/Builder()</li>
<li>Add org.apache.commons.compress.compressors.xz
.XZCompressorOutputStream.builder/Builder()</li>
<li>Add org.apache.commons.compress.compressors.xz
.ZstdCompressorOutputStream.builder/Builder()</li>
<li>Add org.apache.commons.compress.compressors.xz.ZstdConstants</li>
<li>Add org.apache.commons.compress.archivers.ArchiveException
.requireNonNull(T, Supplier<String>)</li>
<li>Add org.apache.commons.compress.compressors
.CompressorException as the root for all custom exceptions
ArchiveException and CompressorException</li>
<li>Add ArchiveException.ArchiveException(String, Throwable)</li>
<li>Add ArchiveException.ArchiveException(Throwable)</li>
<li>Add org.apache.commons.compress.archivers.sevenz
.SevenZArchiveEntry.isEmptyStream()</li>
<li>Add generics for org.apache.commons.compress.compressors
.CompressorStreamProvider.createCompressorOutputStream(String, T)</li>
<li>Fixed Bugs</li>
<li>COMPRESS-686: Better exception messages in
SeekableInMemoryByteChannel</li>
<li>COMPRESS-691: ZipArchiveOutputStream.addRawArchiveEntry()
should check is2PhaseSource</li>
<li>ArchiveException extends IOException</li>
<li>CompressorException extends IOException</li>
<li>Update outdated descriptions in IOUtils and IOUtilsTest</li>
<li>Remove unused local variable in ZipFile</li>
<li>Optimize ZipEightByteInteger</li>
<li>ZipEightByteInteger.toString() now returns a number string
without text prefix, like BigInteger</li>
<li>Throw an IllegalArgumentException when a file name or comment
in gzip parameters encodes to a byte array with a 0 byte</li>
<li>Update outdated links in ZipMethod Javadoc</li>
<li>Deprecate ZipUtil.signedByteToUnsignedInt(byte) in favor of
Byte.toUnsignedInt(byte)</li>
<li>ZipArchiveOutputStream.close() does not close its underlying
output stream</li>
<li>ZipArchiveOutputStream.close() does not close its underlying
output stream</li>
<li>Don't use deprecated code in TarArchiveInputStream</li>
<li>Don't use deprecated code in TarFile</li>
<li>CpioArchiveInputStream.read(byte[], int, int) now throws an
IOException on a data pad count mismatch</li>
<li>CpioArchiveInputStream.readNewEntry(boolean) now throws an
IOException on a header pad count mismatch</li>
<li>CpioArchiveInputStream.readOldBinaryEntry(boolean) now throws
an IOException on a header pad count mismatch</li>
<li>Fix Javadoc and names in the org.apache.commons.compress
.archivers.sevenz package to specify kibibyte scale in memory
limits</li>
<li>Fix Javadoc and names in the org.apache.commons.compress
.compressors.lzw package to specify kibibyte scale in memory
limits</li>
<li>Fix Javadoc and names in the org.apache.commons.compress
.compressors.z package to specify kibibyte scale in memory
limits</li>
<li>Refactor LZ77Compressor block classes to reduce duplication</li>
<li>Package-private and private classes can be final</li>
<li>Deprecate ArjArchiveEntry.HostOs.HostOs()</li>
<li>Drop coveralls reference (no longer needed)</li>
<li>Some ZIP operations won't read all data from a non-blocking
file channel</li>
<li>COMPRESS-696: ZipArchiveInputStream.getCompressedCount()
throws NullPointerException if called before getNextEntry()</li>
<li>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</li>
<li>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</li>
<li>org.apache.commons.compress.harmony.unpack200
.SegmentConstantPool.getInitMethodPoolEntry(int, long, String)
now throws Pack200Exception instead of Error on bad constant
pool type input</li>
<li>org.apache.commons.compress.harmony.unpack200
.SegmentConstantPool.getClassSpecificPoolEntry(int, long,
String) now throws Pack200Exception instead of Error on bad
constant pool type input</li>
<li>org.apache.commons.compress.harmony.unpack200
.SegmentConstantPool.getClassPoolEntry(String) now throws
Pack200Exception instead of Error on some bad inputs and
states</li>
<li>org.apache.commons.compress.harmony.unpack200.bytecode
.ByteCode.extractOperands(OperandManager, Segment, int) now
throws Pack200Exception instead of Error on some bad inputs
and states</li>
<li>org.apache.commons.compress.harmony.unpack200.bytecode.forms
.ByteCodeForm.setByteCodeOperands(ByteCode, OperandManager,
int) now throws Pack200Exception instead of Error on some bad
inputs and states</li>
<li>org.apache.commons.compress.harmony.unpack200.bytecode
.CodeAttribute.CodeAttribute(int, int, byte[], Segment,
OperandManager, List) now throws Pack200Exception instead of
Error on some bad inputs and states</li>
<li>org.apache.commons.compress.harmony.unpack200.bytecode.forms
.IMethodRefForm.setByteCodeOperands(ByteCode, OperandManager,
int) now throws Pack200Exception instead of Error on some bad
inputs and states</li>
<li>org.apache.commons.compress.harmony.unpack200.bytecode.forms
.MultiANewArrayForm.setByteCodeOperands(ByteCode,
OperandManager, int) now throws Pack200Exception instead of
Error on some bad inputs and states</li>
<li>org.apache.commons.compress.harmony.unpack200.bytecode.forms
.NewClassRefForm.setByteCodeOperands(ByteCode, OperandManager,
int) now throws Pack200Exception instead of Error on some bad
inputs and states</li>
<li>org.apache.commons.compress.harmony.unpack200.bytecode.forms
.ReferenceForm.setByteCodeOperands(ByteCode, OperandManager,
int) now throws Pack200Exception instead of Error on some bad
inputs and states</li>
<li>Deprecate org.apache.commons.compress.harmony.pack200
.CanonicalCodecFamilies.CanonicalCodecFamilies()</li>
<li>Deprecate FileNameUtils#getBaseName(Path)</li>
<li>Deprecate FileNameUtils#getExtension(Path)</li>
<li>org.apache.commons.compress.harmony.unpack200.Archive.unpack()
should not log to system out (the console)</li>
<li>[site] Fix minor zip docs type: remove extraneous 'a'</li>
<li>Throw a better exception in org.apache.commons.compress
.archivers.sevenz.SevenZFile.readFilesInfo(ByteBuffer,
Archive)</li>
<li>MemoryLimitException now extends CompressException instead of
IOException (CompressException extends IOException)</li>
<li>DumpArchiveException now extends ArchiveException instead of
IOException (ArchiveException extends CompressException)</li>
<li>PasswordRequiredException now extends CompressException
instead of IOException (CompressException extends IOException)</li>
<li>Pack200Exception now extends CompressException instead of
IOException (CompressException extends IOException)</li>
<li>ArArchiveInputStream.getBSDLongName(String) now throws its
EOFException with a message</li>
<li>ZipEncodingHelper.getZipEncoding(*) can throw
NullPointerException and IllegalArgumentException on bad input
instead of returning a value using the default Charset</li>
<li>Javadoc improvements throughout</li>
<li>COMPRESS-699: ArchiveStreamFactory.detect(inputStream)
ArchiveException for TAR regression</li>
<li>COMPRESS-700: Can't detect file
flutter_awesome_buttons-0.1.0.tar as a TAR file</li>
<li>Deprecate org.apache.commons.compress.utils.TimeUtils
.toUnixTime(FileTime) in favor of org.apache.commons.io.file
.attribute.FileTimes.toUnixTime(FileTime)</li>
<li>Deprecate org.apache.commons.compress.utils.TimeUtils
.truncateToHundredNanos(FileTime)</li>
<li>Changes</li>
<li>Bump org.apache.commons:commons-parent from 72 to 85</li>
<li>Bump com.github.luben:zstd-jni from 1.5.6-4 to 1.5.7-4</li>
<li>Bump org.apache.commons:commons-lang3 from 3.16.0 to 3.18.0</li>
<li>Bump commons-io:commons-io from 2.16.1 to 2.20.0</li>
<li>Bump com.github.marschall:memoryfilesystem from 2.8.0 to 2.8.1</li>
<li>Bump org.ow2.asm:asm from 9.7 to 9.7.1</li>
<li>Bump commons-codec:commons-codec from 1.17.1 to 1.19.0</li>
<li>Removed</li>
<li>COMPRESS-638: GzipCompressorOutputStream no longer
percent-endcodes in US-ASCII a file name or comment that the
Charset in GzipParameters.setFileNameCharset(Charset) cannot
encode</li>
<li>Remove ZstdCompressorOutputStream.toString(), it was
misleading by returning the delegate's toString()</li>
<li>Changes of version 1.27.1</li>
<li>Fixed Bugs</li>
<li>COMPRESS-686: Compression into BZip2 format has unexpected end
of file when using a BufferedOutputStream</li>
<li>Changes</li>
<li>Bump org.apache.commons:commons-lang3 from 3.15.0 to 3.16.0</li>
<li>Changes of version 1.27.0</li>
<li>New Features</li>
<li>Add ArchiveInputStream.forEach(IOConsumer)</li>
<li>Add ArchiveInputStream.iterator()</li>
<li>Add ArchiveOutputStream.isFinished()</li>
<li>Add ArchiveOutputStream.checkFinished()</li>
<li>Fixed Bugs</li>
<li>Fix PMD UnnecessaryFullyQualifiedName and others</li>
<li>COMPRESS-681: Support reading a 7z file that writing archive
properties</li>
<li>Upgrade commons-io from 2.15.1 to 2.16.1</li>
<li>CompressorOutputStream now extends FilterOutputStream</li>
<li>ArchiveOutputStream now extends FilterOutputStream</li>
<li>COMPRESS-685: Update Javadoc description for
GzipCompressorInputStream</li>
<li>Replace FileNameUtil.getCompressedFileName(String) use of
Locale.ENGLISH with Locale.ROOT</li>
<li>Fix SpotBugs DLS_DEAD_LOCAL_STORE in
SevenZFile.readPackInfo(ByteBuffer, Archive)</li>
<li>Fix SpotBugs NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE in
ZipFile.openZipChannel(Path, long, OpenOption[])</li>
<li>Fix SpotBugs UC_USELESS_OBJECT in
unpack200.CpBands.parseCpSignature(InputStream)</li>
<li>Fix PMD UselessOverridingMethod in
unpack200.bytecode.InnerClassesAttribute</li>
<li>Fix PMD UselessOverridingMethod in
unpack200.bytecode.LineNumberTableAttribute</li>
<li>Fix PMD CheckSkipResult in ZipArchiveInputStream.closeEntry()</li>
<li>Changes</li>
<li>COMPRESS-684: Replace assert with Exception</li>
<li>Bump org.apache.commons:commons-parent from 69 to 72</li>
<li>Bump PMD from 6.x to 7.2.0</li>
<li>Bump commons-codec:commons-codec from 1.17.0 to 1.17.1</li>
<li>Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.15.0</li>
<li>Bump com.github.luben:zstd-jni from 1.5.6-3 to 1.5.6-4</li>
<li>Bump org.tukaani:xz from 1.9 to 1.10</li>
<li>Bump org.hamcrest:hamcrest from 2.2 to 3.0</li>
</ul>
</li>
</ul>
<h2>Patch Instructions:</h2>
<p>
To install this SUSE update use the SUSE recommended
installation methods like YaST online_update or "zypper patch".<br/>
Alternatively you can run the command listed for your product:
</p>
<ul class="list-group">
<li class="list-group-item">
SUSE Linux Enterprise Server 16.0
<br/>
<code>zypper in -t patch SUSE-SLES-16.0-1090=1</code>
</li>
<li class="list-group-item">
SUSE Linux Enterprise Server for SAP applications 16.0
<br/>
<code>zypper in -t patch SUSE-SLES-16.0-1090=1</code>
</li>
</ul>
<h2>Package List:</h2>
<ul>
<li>
SUSE Linux Enterprise Server 16.0 (noarch)
<ul>
<li>plexus-archiver-javadoc-4.11.0-160000.2.1</li>
<li>apache-commons-compress-javadoc-1.28.0-160000.1.1</li>
<li>plexus-archiver-4.11.0-160000.2.1</li>
<li>apache-commons-compress-1.28.0-160000.1.1</li>
</ul>
</li>
<li>
SUSE Linux Enterprise Server for SAP applications 16.0 (noarch)
<ul>
<li>apache-commons-compress-javadoc-1.28.0-160000.1.1</li>
<li>apache-commons-compress-1.28.0-160000.1.1</li>
<li>plexus-archiver-javadoc-4.11.0-160000.2.1</li>
<li>plexus-archiver-4.11.0-160000.2.1</li>
</ul>
</li>
</ul>
</div>