GroupDocs.Watermark for Java 26.9 Release Notes
Full list of changes in this release
| ID | Summary | Category |
|---|---|---|
| WATERMARKJAVA-155 | Aspose 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.10 | Update |
| WATERMARKNET-2189 | Removed custom evaluation message: addEvaluationWarning dropped for Diagram/Email/Presentation/Spreadsheet/WordProcessing, kept for PDF; ImageContent uses full evaluation text | Update |
| WATERMARKNET-2175 | Removed documents count restriction in evaluation mode (LicensingRestrictions.checkLoadedDocumentsCount, Content constructor) | Update |
| WATERMARKJAVA | UnsatisfiedLinkError from all Aspose.Words native calls in the obfuscated jar: WindowsNativeCall kept in original package (jarjar identity rule) and excluded from obfuscation | Fix |
| WATERMARKJAVA | IllegalAccessError 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 |
| WATERMARKJAVA | Embedded email object written out as plain attachment: EmailEmbeddedObjectCollection.add assigns an explicit Content-ID (Aspose.Email 26.1 no longer generates one) | Fix |
| WATERMARKJAVA | ArgumentOutOfRange adding annotation watermark with ArtBox/BleedBox/TrimBox: PdfWatermarkingUtils.initializeWrapperForm overload appends the GS operator instead of insert(2, gs) | Fix |
| WATERMARKJAVA | Empty PNG preview for WordProcessing documents: WordsPageSavingCallback no longer keeps the page stream open | Fix |
| WATERMARKJAVA | PdfContent: CryptoAlgorithm.values field replaced with values() method (Aspose.PDF 26.2 turned it into an enum) | Fix |
| WATERMARKJAVA | EmailContent: MsgSaveOptions.setPreserveSignature/setSaveAsTemplate calls removed (deleted from Aspose.Email 26.1 public API) | Update |
| WATERMARKJAVA | StreamToFileTypeAdapter: migrated to Aspose.CAD 24.6.1 FileFormat enum; renamed DWT constants (DwtCadR10/11/13/14, R012/R015/R021/R025/R026) | Update |
| WATERMARKJAVA-156 | License.setLicense: debug console output removed | Fix |
| WATERMARKJAVA-157 | PGP signing of released artifacts (sign-maven-plugin, checksum-maven-plugin); code-signing via maven-jarsigner-plugin disabled | Update |
| WATERMARKJAVA | Deploy profiles: deploy-file configuration restored (main jar and simplified pom were missing from the published artifacts); antrun copies instead of moves the obfuscated jar | Fix |
| WATERMARKJAVA | PresentationSlideTests.getShape skips layout placeholders (Aspose.Slides 26.2 exposes the slide number placeholder of .ppt in the shape collection) | Test |
| WATERMARKJAVA | DiagramShapeCollectionTests: unset XForm values (Double.MinValue) treated as 0, matching DiagramPage conversion (Aspose.Diagram 25.10) | Test |
| WATERMARKJAVA | PdfPageTests.heightWidth_LoadSupportedFiles_CorrectHeightAndWidth loads the document from a stream via StreamHelper.getFileCopy | Test |
| WATERMARKJAVA | LicensingMaxDocumentsCountRestrictionTests: InvalidOperationException assertion removed (follows WATERMARKNET-2175) | Test |
| WATERMARKJAVA | DiagramRasterizationBasedTests.diagramDocument_AddWatermark quarantined (Aspose.Diagram 25.10 OutOfMemoryError); Quarantine group excluded in all-tests.xml | Test |
| WATERMARKJAVA | Copyright headers updated 2022 → 2026 (272 test files) | Test |
| WATERMARKJAVA | Unused wildcard imports removed from tests | Test |
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.