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: dev-unsubscr...@poi.apache.org
For additional commands, e-mail: dev-h...@poi.apache.org

Reply via email to