We’re happy to announce the release of GroupDocs.Conversion for Java v26.9. This September 2026 release introduces cooperative cancellation for document conversion, adds conversions between compressed-stream formats, and provides a stable Java module name. It also updates the advertised archive conversion pairs, so applications that select conversions dynamically should review the available pairs before upgrading.
What’s new in this release
The .NET issue keys below identify features ported to Java; the summaries describe the formats supported by this Java release.
| Key | Category | Change |
|---|---|---|
| CONVERSIONNET-6880 | Feature | Support cooperative cancellation through cancellation tokens |
| CONVERSIONNET-7032 | Feature | Convert Bzip2, Gzip, XZ, and Unix Z to LZMA |
| CONVERSIONNET-7019 | Feature | Convert LZMA to Bzip2 and Gzip |
| CONVERSIONNET-7020 | Feature | Convert Unix Z to Bzip2 and Gzip |
| CONVERSIONNET-7030 | Feature | Convert Bzip2, Gzip, LZMA, and Unix Z to XZ |
| CONVERSIONNET-7029 | Feature | Convert XZ to Bzip2 and Gzip |
| CONVERSIONNET-7028 | Feature | Convert Gzip to Bzip2 |
| CONVERSIONNET-7021 | Feature | Convert Bzip2 to Gzip |
| CONVERSIONJAVA-3238 | Task | Resolve package verification findings in groupdocs-conversion-26.7.jar |
The release JAR also declares Automatic-Module-Name: com.groupdocs.conversion for applications using the Java module system.
Public API changes
Cooperative cancellation
Two new classes, com.groupdocs.conversion.CancellationToken and com.groupdocs.conversion.CancellationTokenSource, let an application request that a conversion stop. All public Converter.convert(...) and Converter.convertPageByPage(...) methods now have overloads with a final CancellationToken parameter. The fluent conversion executor also adds ConversionExecutor.convert(CancellationToken).
Existing overloads remain available and use CancellationToken.NONE, so existing conversion calls do not require changes.
Create a token source and pass its token to the conversion:
import com.groupdocs.conversion.CancellationTokenSource;
import com.groupdocs.conversion.Converter;
import com.groupdocs.conversion.options.convert.PdfConvertOptions;
import java.util.concurrent.CancellationException;
CancellationTokenSource cancellationSource = new CancellationTokenSource();
try (Converter converter = new Converter("input.docx")) {
// An application cancellation handler can call cancellationSource.cancel()
// from another thread while this conversion runs.
converter.convert(
"converted.pdf",
new PdfConvertOptions(),
cancellationSource.getToken()
);
} catch (CancellationException ex) {
System.out.println("Conversion was cancelled.");
}
Call cancellationSource.cancel() when the user cancels a job or the application decides to stop it. Cancellation is checked between conversion operations: an operation already running finishes before cancellation is observed. The conversion then raises java.util.concurrent.CancellationException.
Output already written is not rolled back, so applications should handle partial output when cancelling a job. A cancelled source cannot be reset; create a new source for a new job. Passing a null token raises NullPointerException.
Compressed-stream conversions
Version 26.9 supports the following compressed-stream sources and targets, including same-format conversion:
| Direction | Supported formats |
|---|---|
| Source | Bzip2 (Bz2), Gzip (Gz and Gzip), LZMA (Lzma), XZ (Xz), Unix Z (Z) |
| Target | Bzip2, Gzip, LZMA, XZ |
Unix Z is supported as a source, but is not a target in this release.
Use CompressionConvertOptions.setFormat(...) to select the output format. For example, convert a Gzip stream to LZMA:
import com.groupdocs.conversion.Converter;
import com.groupdocs.conversion.filetypes.CompressionFileType;
import com.groupdocs.conversion.options.convert.CompressionConvertOptions;
CompressionConvertOptions options = new CompressionConvertOptions();
options.setFormat(CompressionFileType.Lzma);
try (Converter converter = new Converter("input.gz")) {
converter.convert("converted.lzma", options);
}
Archive conversion compatibility
The advertised archive conversion pairs are now restricted to conversions within ZIP, 7z, TAR, and CPIO. Applications that relied on the previously advertised archive-to-compressed-stream pairs should review the available conversions before upgrading. The compressed-stream source and target formats listed above describe a separate group of supported conversions.
Stable Java module name
The release JAR declares the following manifest entry:
Automatic-Module-Name: com.groupdocs.conversion
This gives applications using the Java module system a stable module name. A modular application can refer to it in module-info.java:
module example.conversion {
requires com.groupdocs.conversion;
}
How to get the update
Maven
Add the GroupDocs repository and the 26.9 dependency to your pom.xml, or update the version in your existing dependency:
<repositories>
<repository>
<id>groupdocs-artifacts-repository</id>
<url>https://repository.groupdocs.com/repo/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-conversion</artifactId>
<version>26.9</version>
</dependency>
</dependencies>
You can also browse the GroupDocs.Conversion for Java Maven repository.
Direct download
Download the Java package from the GroupDocs.Conversion for Java releases page.