GroupDocs.Watermark for Java 26.9 Release Notes

Full list of changes in this release

IDSummaryCategory
WATERMARKJAVA-155Aspose engines updated: CAD 23.1→24.6.1, Cells 23.6→26.3, Diagram 23.6→25.10, Email 23.5→26.1, Imaging 25.8→25.12, PDF 23.4→26.2, Slides 23.3→26.2, Words 23.6→26.3, BarCode 23.5→25.5, Tasks 23.1→25.9, PSD 21.7→25.10Update
WATERMARKNET-2189Removed custom evaluation message: addEvaluationWarning dropped for Diagram/Email/Presentation/Spreadsheet/WordProcessing, kept for PDF; ImageContent uses full evaluation textUpdate
WATERMARKNET-2175Removed documents count restriction in evaluation mode (LicensingRestrictions.checkLoadedDocumentsCount, Content constructor)Update
WATERMARKJAVAUnsatisfiedLinkError from all Aspose.Words native calls in the obfuscated jar: WindowsNativeCall kept in original package (jarjar identity rule) and excluded from obfuscationFix
WATERMARKJAVAIllegalAccessError in License.setLicense() from Aspose.Tasks 25.9: licensing resource restored in the obfuscated jar at the original path (dependency:unpack + exec jar uf)Fix
WATERMARKJAVAEmbedded email object written out as plain attachment: EmailEmbeddedObjectCollection.add assigns an explicit Content-ID (Aspose.Email 26.1 no longer generates one)Fix
WATERMARKJAVAArgumentOutOfRange adding annotation watermark with ArtBox/BleedBox/TrimBox: PdfWatermarkingUtils.initializeWrapperForm overload appends the GS operator instead of insert(2, gs)Fix
WATERMARKJAVAEmpty PNG preview for WordProcessing documents: WordsPageSavingCallback no longer keeps the page stream openFix
WATERMARKJAVAPdfContent: CryptoAlgorithm.values field replaced with values() method (Aspose.PDF 26.2 turned it into an enum)Fix
WATERMARKJAVAEmailContent: MsgSaveOptions.setPreserveSignature/setSaveAsTemplate calls removed (deleted from Aspose.Email 26.1 public API)Update
WATERMARKJAVAStreamToFileTypeAdapter: migrated to Aspose.CAD 24.6.1 FileFormat enum; renamed DWT constants (DwtCadR10/11/13/14, R012/R015/R021/R025/R026)Update
WATERMARKJAVA-156License.setLicense: debug console output removedFix
WATERMARKJAVA-157PGP signing of released artifacts (sign-maven-plugin, checksum-maven-plugin); code-signing via maven-jarsigner-plugin disabledUpdate
WATERMARKJAVADeploy profiles: deploy-file configuration restored (main jar and simplified pom were missing from the published artifacts); antrun copies instead of moves the obfuscated jarFix
WATERMARKJAVAPresentationSlideTests.getShape skips layout placeholders (Aspose.Slides 26.2 exposes the slide number placeholder of .ppt in the shape collection)Test
WATERMARKJAVADiagramShapeCollectionTests: unset XForm values (Double.MinValue) treated as 0, matching DiagramPage conversion (Aspose.Diagram 25.10)Test
WATERMARKJAVAPdfPageTests.heightWidth_LoadSupportedFiles_CorrectHeightAndWidth loads the document from a stream via StreamHelper.getFileCopyTest
WATERMARKJAVALicensingMaxDocumentsCountRestrictionTests: InvalidOperationException assertion removed (follows WATERMARKNET-2175)Test
WATERMARKJAVADiagramRasterizationBasedTests.diagramDocument_AddWatermark quarantined (Aspose.Diagram 25.10 OutOfMemoryError); Quarantine group excluded in all-tests.xmlTest
WATERMARKJAVACopyright headers updated 2022 → 2026 (272 test files)Test
WATERMARKJAVAUnused wildcard imports removed from testsTest

Aspose engine updates

All document-format engines have been updated, in most cases across several major versions. This is the largest part of the release and affects rendering, format detection and licensing behaviour. Aspose.Note (23.3), Aspose.HTML (22.7) and Aspose.Drawing (25.7) are unchanged.

Evaluation mode changes (WATERMARKNET-2189, WATERMARKNET-2175)

The custom evaluation watermark is no longer added to Diagram, Email, Presentation, Spreadsheet and WordProcessing documents; PDF documents keep it, and image documents now carry the full evaluation text instead of the compact variant. The limit on the number of documents that could be loaded per application run in evaluation mode has been removed.

Native calls in the released jar

UnsatisfiedLinkError was thrown from every Aspose.Words native call in the obfuscated (released) build. Depending on the operation this either flooded the console with SEVERE stack traces — for example on Watermarker.getDocumentInfo() for a DOCX file — or aborted the operation outright, as when adding a watermark to an RTF file with SizingType.ScaleToParentDimensions. The build relocated com.aspose.words.internal.a1.WindowsNativeCall, but a JNI symbol encodes the full package path, so the entry points exported by the bundled WindowsNativeCall_*.dll could no longer be resolved. The class now stays in its original package and is excluded from obfuscation.

License application in the released jar

License.setLicense() failed with a message-less IllegalAccessError originating in Aspose.Tasks. Since Aspose.Tasks 25.9 its licensing resource is read from a static initializer, and the resource path is built at runtime from a byte array, so it could not be rewritten when the package was relocated. The resource is now restored in the released jar at the path the engine expects.

Embedded email objects

An object added through EmailContent.getEmbeddedObjects().add(...) was written out as a plain attachment, so the cid: reference in the HTML body no longer resolved after a save/load round trip. Aspose.Email 26.1 stopped generating a Content-ID for new linked resources; one is now assigned explicitly.

PDF annotation watermarks

Adding an annotation watermark threw ArgumentOutOfRange when the page margin type was ArtBox, BleedBox or TrimBox. The graphics-state operator is now appended in order instead of being inserted at a fixed index, which Aspose.PDF 26.2 no longer accepts.

WordProcessing PNG previews

generatePreview() with PreviewFormats.PNG produced a zero-byte stream for Word documents, while JPEG worked. Aspose.Words buffers the rendered page internally and flushes it only when it closes the page stream, so the page stream is no longer kept open.

Behaviour change: the page stream passed to ICreatePageStream is now closed by the engine. IReleasePageStream is still invoked afterwards, but code that relied on the stream remaining open after generatePreview() returns needs to be adjusted.

PGP-signed artifacts

Released artifacts are signed with a PGP key — .asc files are published next to the jar, pom and javadoc — instead of being code-signed with a certificate.