Hello,
unfortunately, the error is still in 21.7 as well, at least in the version available from GroupDocs Java Repository Browser /java/repo/ that was released on July 8.
- This is what we get from the Stack Trace when trying to convert a docx file to PDF under Windows 10 latest release with all patches, German:
Juli 12, 2021 11:24:37 VORM. com.groupdocs.conversion.internal.c.a.w.internal.Ny u
SEVERE:
java.lang.UnsatisfiedLinkError: ‘java.util.Map com.groupdocs.conversion.internal.c.a.w.WindowsNativeCall.readRegistryStringValues(int, java.lang.String)’
** at com.groupdocs.conversion.internal.c.a.w.WindowsNativeCall.readRegistryStringValues(Native Method)**
** at com.groupdocs.conversion.internal.c.a.w.internal.Qi.readRegistryStringValues(Unknown Source)**
at com.groupdocs.conversion.internal.c.a.w.internal.sl.b(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.internal.abt.piA(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.internal.abt.b(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.SystemFontSource.getFontDataInternal(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.internal.Kn.oPU(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.internal.Kn.p(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.internal.acR.pkZ(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.internal.acR.zzYq0(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.internal.acR.aKf(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.internal.acR.aKe(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.internal.acR.eG(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.internal.acR.zzm1(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.FontSettings.zzm1(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.zzYOI.zzYoc(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.zzYOI.zzLY(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.zzYcM.zzZxj(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.zzZog$zzlp.zzXFh(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.internal.JL.moveNext(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.zzZog.zzYk1(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.zzZog.zzlp(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.zzXZD.zzWpm(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.zzXZD.zzXSr(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.zzZog.zzXuG(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.zzZog.(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.zzIs.zzYSN(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.zzWVC.zzXTQ(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.zzWVC.moveNext(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.zzWYC.zzCF(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.Document.updatePageLayout(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.Document.zzU2(Unknown Source)
at com.groupdocs.conversion.internal.c.a.w.Document.getPageCount(Unknown Source)
at com.groupdocs.conversion.contracts.documentinfo.WordprocessingDocumentInfo.(Unknown Source)
at com.groupdocs.conversion.documents.al.(Unknown Source)
at com.groupdocs.conversion.documents.al.(Unknown Source)
at com.groupdocs.conversion.loading.loaders.WordProcessingDocumentLoader.load(Unknown Source)
at com.groupdocs.conversion.pipeline.g.a(Unknown Source)
at com.groupdocs.conversion.Converter.convert(Unknown Source)
at com.groupdocs.conversion.Converter.convert(Unknown Source)
at com.groupdocs.conversion.Converter.convert(Unknown Source)
at com.groupdocs.conversion.Converter.convert(Unknown Source)
at com.lecare.pdfconversion.converters.GroupDocsFileToPdf.performConversion(GroupDocsFileToPdf.kt:25)
at com.lecare.pdfconversion.BaseFileConverter.convertFile(BaseFileConverter.kt:57)
at com.lecare.pdfconversion.BaseFileConverter.convertDirectory(BaseFileConverter.kt:32)
at com.lecare.pdfconversion.PDFConverterAppKt.main(PDFConverterApp.kt:7)
at com.lecare.pdfconversion.PDFConverterAppKt.main(PDFConverterApp.kt)
UnsatisfiedLinkError means that the GroupDocs conversion library tries to make a Java native JNI call, most certainly by utilizing a helper dll that provides a means of reading values from the Windows registry, but either 1. the required DLL could not be loaded at all or 2. does no provide the necessary function that gets called by GroupDocs. UnsatisfiedLinkError (Java Platform SE 8 )
The issue affects all versions of GroupDocs.Conversion from 21.1-21.7. Version 20.10.3 does not have the same issues, under Linux we did not notice any problems yet.
- Another issue we now experience is a Java 11 incompatibility that appears as soon as any GroupDocs class is initialized, e.g. the License class. This is the first call to GroupDocs we do before converting anything, but it serves just as an example here.
INFO [12 Juli 11:34:56] Trying to load license file from ./license/GroupDocs.Conversion.Java.lic
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.groupdocs.conversion.internal.c.a.ps.internal.gJ.c (file:/D:/pdfconverter/lib/groupdocs-conversion-21.7.jar) to field java.io.ByteArrayInputStream.buf
WARNING: Please consider reporting this to the maintainers of com.groupdocs.conversion.internal.c.a.ps.internal.gJ.c
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
INFO [12 Juli 11:34:58] License set successfully.
The relevant code is Kotlin, but that makes no difference here, the issue appear in pure Java as well:
private fun loadLicense() {
if (!licenseLoaded) {
logger.info("Trying to load license file from {}", Config.LICENSE_PATH)
val file = File(Config.LICENSE_PATH)
if (file.exists()) {
val license = License()
license.setLicense(Config.LICENSE_PATH)
licenseLoaded = true
logger.info("License set successfully.")
} else {
logger.info("License file not found")
}
}
}
The illegal access warning also appears if we omit the License initialisation and call any later GroupDocs function, namely, Converter.convert() and such, and only appears once (upon the first illegal access registered as always). In this case, too, only versions beyond 20.10.3 seem to be affected, so this behaviour was likely introduced by 21.1 as well. It only goes away with an 8 JDK (of course). We tried both AdoptOpenJDK 11 JRE and JDK and the issue reliably appears upon each start. In 20.10.3, no such warnings have been registered, using the same test app, with just the jre and GroupDocs lib replaced.
For reference, this is the release info from AdoptOpenJDK 11, latest version available:
IMPLEMENTOR=“AdoptOpenJDK”
IMPLEMENTOR_VERSION=“AdoptOpenJDK-11.0.11+9”
JAVA_VERSION=“11.0.11”
JAVA_VERSION_DATE=“2021-04-20”
MODULES=“java.base java.compiler java.datatransfer java.xml java.prefs java.desktop java.instrument java.logging java.management java.security.sasl java.naming java.rmi java.management.rmi java.net.http java.scripting java.security.jgss java.transaction.xa java.sql java.sql.rowset java.xml.crypto java.se java.smartcardio jdk.accessibility jdk.internal.vm.ci jdk.management jdk.unsupported jdk.internal.vm.compiler jdk.aot jdk.internal.jvmstat jdk.attach jdk.charsets jdk.compiler jdk.crypto.ec jdk.crypto.cryptoki jdk.crypto.mscapi jdk.dynalink jdk.internal.ed jdk.editpad jdk.hotspot.agent jdk.httpserver jdk.internal.le jdk.internal.opt jdk.internal.vm.compiler.management jdk.jartool jdk.javadoc jdk.jcmd jdk.management.agent jdk.jconsole jdk.jdeps jdk.jdwp.agent jdk.jdi jdk.jfr jdk.jlink jdk.jshell jdk.jsobject jdk.jstatd jdk.localedata jdk.management.jfr jdk.naming.dns jdk.naming.ldap jdk.naming.rmi jdk.net
jdk.pack jdk.rmic jdk.scripting.nashorn jdk.scripting.nashorn.shell jdk.sctp jdk.security.auth jdk.security.jgss jdk.unsupported.desktop jdk.xml.dom jdk.zipfs”
OS_ARCH=“x86_64”
OS_NAME=“Windows”
SOURCE=“.:git:9a5c368512c6”
BUILD_SOURCE=“git:4ad15fd”
FULL_VERSION=“11.0.11+9”
SEMANTIC_VERSION=“11.0.11+9”
BUILD_INFO=“OS: Windows Server 2012 R2 Version: 6.3”
JVM_VARIANT=“Hotspot”
JVM_VERSION=“11.0.11+9”
IMAGE_TYPE=“JRE”
As we just recently bought the GroupDocs.Conversion Site OEM license for up to 10 developers and need the conversion function rather timely for an important customer project, a remedy would be of definite importance for us. We cannot ship an application issuing exceptions tagged as SEVERE. The conversion itself works anyway in all cases. Thanks for your help!
– Ch.