Rodrigo Merino created XMLBEANS-648:
---------------------------------------
Summary: Cannot resolve type for handle
_XY_Q=lang|R=lang@http://www.w3.org/XML/1998/namespace when running on java 9+
Key: XMLBEANS-648
URL: https://issues.apache.org/jira/browse/XMLBEANS-648
Project: XMLBeans
Issue Type: Bug
Components: XmlObject
Affects Versions: Version 5.2.0
Reporter: Rodrigo Merino
When {{XsbReader}} loads internal resources (i.e.:
{{org/apache/xmlbeans/metadata/attribute/http_3A_2F_2Fwww_2Ew3_2Eorg_2FXML_2F1998_2Fnamespace/lang.xsb}})
it ends up calling {{SchemaTypeLoaderImpl#typeSystemForComponent}}. There,
{{_resourceLoader}} is null, and using the classloader it cannot find resources
in packages not exported (declared in {{module-info.java}}).
An alternative would be to have a {{_resourceLoader}} that attempts to load the
resource with the anchorClass rather than with the classLoader, that way
internal resources are visible from within the module.
The stack of the error that is thrown is:
{{{}Caused by: org.apache.xmlbeans.SchemaTypeLoaderException: Cannot resolve
type for handle _XY_Q=lang|R=lang@http://www.w3.org/XML/1998/namespace
(org.apache.xmlbeans.metadata.system.sXMLSCHEMA.schemad77felemtype) - code
13{}}}{{{}at
org.apache.xmlbeans/org.apache.xmlbeans.impl.schema.XsbReader.readHandle(XsbReader.java:483){}}}{{{}at
org.apache.xmlbeans/org.apache.xmlbeans.impl.schema.XsbReader.readTypeRef(XsbReader.java:548){}}}{{{}at
org.apache.xmlbeans/org.apache.xmlbeans.impl.schema.XsbReader.loadAttribute(XsbReader.java:1282){}}}{{{}at
org.apache.xmlbeans/org.apache.xmlbeans.impl.schema.XsbReader.readAttributeData(XsbReader.java:1275){}}}{{{}at
org.apache.xmlbeans/org.apache.xmlbeans.impl.schema.XsbReader.finishLoadingType(XsbReader.java:902){}}}{{{}at
org.apache.xmlbeans/org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl.resolveHandle(SchemaTypeSystemImpl.java:940){}}}{{{}at
org.apache.xmlbeans/org.apache.xmlbeans.SchemaComponent$Ref.getComponent(SchemaComponent.java:111){}}}{{{}at
org.apache.xmlbeans/org.apache.xmlbeans.SchemaType$Ref.get(SchemaType.java:1072){}}}{{{}at
org.apache.xmlbeans/org.apache.xmlbeans.impl.schema.SchemaPropertyImpl.getType(SchemaPropertyImpl.java:85){}}}{{{}at
org.apache.xmlbeans/org.apache.xmlbeans.impl.schema.SchemaTypeImpl.createElementType(SchemaTypeImpl.java:991){}}}{{{}at
org.apache.xmlbeans/org.apache.xmlbeans.impl.values.XmlObjectBase.create_element_user(XmlObjectBase.java:879){}}}{{{}at
org.apache.xmlbeans/org.apache.xmlbeans.impl.store.Xobj.getUser(Xobj.java:1597){}}}{{{}at
org.apache.xmlbeans/org.apache.xmlbeans.impl.store.Xobj.find_element_user(Xobj.java:1968){}}}{{{}at
org.apache.xmlbeans/org.apache.xmlbeans.impl.xb.xsdschema.impl.SchemaDocumentImpl.getSchema(SchemaDocumentImpl.java:38){}}}{{{}at
org.apache.xmlbeans/org.apache.xmlbeans.impl.schema.SchemaTypeSystemCompiler.compile(SchemaTypeSystemCompiler.java:163){}}}{{{}...{}}}
This works fine on java 8 because module access rules are not enforced by java
in that version (jpms was introduced in java 9).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]