[Release] GroupDocs.Comparison for Java 26.8.1

Dear GroupDocs users, we’re pleased to announce GroupDocs.Comparison for Java 26.8.1. This is a hotfix release: it fixes a crash during license activation on 26.8 and restores a number of public types and members that had been renamed by obfuscation and were therefore not resolvable against the published jar. The release is backward compatible — no code changes are required, and if you are on 26.8 we recommend updating.

Fix — license activation no longer fails with IllegalAccessError

Applying a license on 26.8 could fail with a message-less java.lang.IllegalAccessError, thrown after authentication had already succeeded. It affected metered activation as well as activation from a file or a stream.

Caused by: java.lang.IllegalAccessError
    at com.groupdocs.comparison.internal.c.a.t.rr.<clinit>(Unknown Source)
    at com.groupdocs.comparison.internal.c.a.t.bX.setLicense(Unknown Source)
    ...
    at com.groupdocs.comparison.license.License.BiV(Unknown Source)
    at com.groupdocs.comparison.license.Metered.setMeteredKey(Unknown Source)

Applying a license reaches the bundled Aspose.Tasks engine, which loads one of its own resources from a path it assembles at run time rather than from a string constant. Because the path is built dynamically, the packaging step that moves the bundled engines into the com.groupdocs.comparison.internal namespace could not rewrite it, so the lookup missed the moved file. The packaged jar now also ships that resource at the path the engine actually requests. Scope.

  • Affects 26.8 only. 26.5 and earlier are not affected.
  • No API or configuration changes; no user code changes are required.
  • If you worked around it by copying New project 2010.zip onto your application classpath under com/aspose/tasks/resources/, you can remove it after updating. Leaving it in place does no harm.
  • Comparison behaviour and results are unchanged — this is a packaging fix. (COMPARISONJAVA)

Fix — public API restored in the published jar

Several public types and members were being renamed by obfuscation instead of being kept, so code referencing them did not compile against the published jar. They are exported again under their documented names:

  • com.groupdocs.comparison.logging.ILogger, com.groupdocs.comparison.logging.ConsoleLogger
  • com.groupdocs.comparison.utils.CultureInfo
  • com.groupdocs.comparison.utils.common.FontsHelper, com.groupdocs.comparison.utils.common.Path
  • com.groupdocs.comparison.common.tempfiles.TemporaryFileManager, DefaultTemporaryFileManager, TemporaryFileManagerFactory
  • com.groupdocs.comparison.options.IgnoreChangeSensitivitySettings
  • ComparerSettings(ILogger), ComparerSettings.getLogger(), ComparerSettings.setLogger(ILogger)
  • ComparisonLogger.setLogger(ILogger)
  • CompareOptions.getIgnoreChangeSettings(), CompareOptions.setIgnoreChangeSettings(...)
  • SupportedLocales.isLocaleSupported(CultureInfo)

Configuring a custom logger works as documented again:

import com.groupdocs.comparison.logging.ComparisonLogger;
import com.groupdocs.comparison.logging.ConsoleLogger;

ComparisonLogger.setLogger(new ConsoleLogger(false, true, true, true));

Scope.

  • Present since 25.2 and affecting 25.2, 26.5 and 26.8. Code written against 24.7 or earlier compiles again without changes.
  • Additive only — nothing was removed or renamed, so no migration is needed.
  • Comparison behaviour and results are unchanged. (COMPARISONJAVA)

Resources

1 Like