GroupDocs.Comparison for Java 26.8.1 Release Notes
Hotfix release.
Full list of changes in this release
| ID | Summary | Category |
|---|---|---|
| COMPARISONJAVA | Metered and file license activation no longer fails with IllegalAccessError (Aspose.Tasks licensing resource restored in the packaged jar) | Fix |
| COMPARISONJAVA | Public API lost to obfuscation is available again: ILogger, ConsoleLogger, CultureInfo, FontsHelper, Path, TemporaryFileManager, DefaultTemporaryFileManager, TemporaryFileManagerFactory, IgnoreChangeSensitivitySettings | Fix |
| COMPARISONJAVA | ComparerSettings(ILogger), ComparerSettings.getLogger()/setLogger(), ComparisonLogger.setLogger(), CompareOptions.getIgnoreChangeSettings()/setIgnoreChangeSettings(), SupportedLocales.isLocaleSupported(CultureInfo) are available again | Fix |
Fix — license activation failed with IllegalAccessError
Applying a license on 26.8.1 could fail with a message-less java.lang.IllegalAccessError thrown out of
Metered.setMeteredKey (and from file/stream license activation as well), after authentication had
already succeeded.
Caused by: java.lang.IllegalAccessError
at com.groupdocs.comparison.internal.c.a.t.rr.a(Unknown Source)
at com.groupdocs.comparison.internal.c.a.t.rr.<clinit>(Unknown Source)
at com.groupdocs.comparison.internal.c.a.t.Mm.<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)
Cause. 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 and the resulting failure surfaced as an IllegalAccessError with no message. The packaged jar
now ships that resource at the path the engine actually requests.
Scope.
- Affects 26.8.1 only. 26.5 and earlier are not affected.
- No API or configuration changes. No user code changes are required.
- If you applied the workaround of copying
New project 2010.ziponto your application classpath atcom/aspose/tasks/resources/, you can remove it — it is no longer needed, and keeping it does no harm. - Reported on the forum: license activation crash on 26.8.1. (COMPARISONJAVA)
Fix — public API restored in the obfuscated jar
Several public types and members were being renamed by obfuscation instead of being kept, so code using them did not compile against the published jar. They are exported again under their documented names.
Restored types:
com.groupdocs.comparison.logging.ILogger,com.groupdocs.comparison.logging.ConsoleLoggercom.groupdocs.comparison.utils.CultureInfocom.groupdocs.comparison.utils.common.FontsHelper,com.groupdocs.comparison.utils.common.Pathcom.groupdocs.comparison.common.tempfiles.TemporaryFileManager,DefaultTemporaryFileManager,TemporaryFileManagerFactorycom.groupdocs.comparison.options.IgnoreChangeSensitivitySettings
Restored members:
ComparerSettings(ILogger),ComparerSettings.getLogger(),ComparerSettings.setLogger(ILogger)ComparisonLogger.setLogger(ILogger)— previously reachable only through an obfuscated name that changed from release to releaseCompareOptions.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.1. Code written against 24.7 or earlier compiles again without changes.
- Additive only — nothing was removed or renamed, so no migration is needed.
- Comparison results are unchanged; this is a packaging fix. (COMPARISONJAVA)