Page 1 of 1

ClassNotFound net.sf.saxon.om.Orphan Oxygen 17 Trial and up

Posted: Fri May 25, 2018 11:23 am
by Freek Udo
Recently I started trying Oxygen XML Editor TRIAL versions that I admire for its rich features.
However starting with version 17 I have a runtime problem with a stylesheet that utilizes java functions (see error below).

I run the scenario with the packaged Saxon 9... PE/EE.
The Saxon Orphan class that is searched but not found in net.sf.saxon.om.actually resides in /net/sf/saxon/tree/util.
In the scenario - that runs succesfully in version 15, but will give a runtime error in 17,18,19 and 20 I have added the following extensions:

spring-context-4.1.6.RELEASE.jar
spring-beans-416.RELEASE.jar
spring-core-4.1.6.RELEASE.jar
and the classpath.

Code: Select all


The runtime error:
java.lang.ClassNotFoundException: net.sf.saxon.om.Orphan
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at ro.sync.util.ib.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114)
at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125)
at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
at sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68)
at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138)
at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
at sun.reflect.generics.repository.ConstructorRepository.getParameterTypes(ConstructorRepository.java:94)
at java.lang.reflect.Executable.getGenericParameterTypes(Executable.java:284)
at java.lang.reflect.Method.getGenericParameterTypes(Method.java:282)
at com.saxonica.expr.JavaExtensionFunctionCall.typeCheck(JavaExtensionFunctionCall.java:107)
at net.sf.saxon.expr.parser.ExpressionVisitor.typeCheck(ExpressionVisitor.java:188)
at net.sf.saxon.style.StyleElement.typeCheck(Unknown Source)
at net.sf.saxon.style.SourceBinding.postValidate(SourceBinding.java:287)
at net.sf.saxon.style.XSLGeneralVariable.postValidate(XSLGeneralVariable.java:93)
at net.sf.saxon.style.StyleElement.validateSubtree(Unknown Source)
at net.sf.saxon.style.StyleElement.validateChildren(Unknown Source)
at net.sf.saxon.style.StyleElement.validateSubtree(Unknown Source)
at net.sf.saxon.style.StylesheetPackage.preprocess(Unknown Source)
at net.sf.saxon.style.Compilation.compilePackage(Compilation.java:180)
at net.sf.saxon.style.Compilation.compileSingletonPackage(Compilation.java:94)
at net.sf.saxon.s9api.XsltCompiler.compile(XsltCompiler.java:543)
at net.sf.saxon.jaxp.SaxonTransformerFactory.newTemplates(Unknown Source)
at net.sf.saxon.jaxp.SaxonTransformerFactory.newTransformer(Unknown Source)
at ro.sync.xml.transformer.c.eb(Unknown Source)
at ro.sync.xml.transformer.c.f(Unknown Source)
at ro.sync.xml.transformer.c.v(Unknown Source)
at ro.sync.xml.transformer.c.fb(Unknown Source)
at ro.sync.xml.transformer.c.x(Unknown Source)
at ro.sync.exml.editor.xmleditor.bc.trg(Unknown Source)
at ro.sync.exml.editor.xmleditor.bc.msg(Unknown Source)
at ro.sync.exml.editor.xmleditor.bc$4.ted(Unknown Source)
at ro.sync.ui.application.mb.run(Unknown Source)

Re: ClassNotFound net.sf.saxon.om.Orphan Oxygen 17 Trial and up

Posted: Fri May 25, 2018 11:43 am
by Radu
Hi,

Oxygen 17.1 comes bundled with Saxon 9.6.0.7. And indeed in the Saxon JAR library the "Orphan" class resides in the package net\sf\saxon\tree\util\. So why is it searched some place else? In my opinion the Java extension called by the XSLT somewhere in its implementation tries to load the "Orphan" by using its old package location (because the Java extension class was built and tested with an older Saxon 9 library).
You cannot replace the Saxon 9 library shipped with Oxygen (because Oxygen has various patches and functionality closely integrated with it) so if you cannot re-compile the extensions to work with the newer Saxon you will have to stick to using an older Oxygen version.

Regards,
Radu

Re: ClassNotFound net.sf.saxon.om.Orphan Oxygen 17 Trial and up

Posted: Fri May 25, 2018 12:33 pm
by Freek Udo
Radu, you are right, I should have looked further: looking into the library code the XSL depends open I found an import statement referring to the "old" package. I just started with oxygen and suspected the tooling in stead of my dependency. Thanks, Freek

Re: ClassNotFound net.sf.saxon.om.Orphan Oxygen 17 Trial and up

Posted: Fri May 25, 2018 12:48 pm
by Radu
Hi Freek,

No problem, thanks for updating the thread.

Regards,
Radu