[
https://issues.apache.org/jira/browse/TOMEE-4644?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Markus Jung updated TOMEE-4644:
-------------------------------
Description:
TomEE's faces-config.xml unmarshaller, {{ReadDescriptors.readFacesConfig}},
rejects the {{schemaLocation}} attribute when it sits on the
{{https://www.w3.org/2001/XMLSchema-instance}} namespace. Faces 4.1 descriptors
declare {{schemaLocation}} on this exact namespace, so deployment fails to
unmarshal the file.
The failure only shows up when the descriptor has child content. A bare
{{<faces-config>}} element with no children deploys fine even with the same
https namespace and attribute. Once the descriptor carries a child element,
such as {{<faces-config-extension>}}, the parser takes a stricter path and the
unknown attribute breaks it.
This is why only one test in the affected group fails.
{{headAndBodyRenderer/Spec1760IT}} has a {{<faces-config-extension>}} in its
faces-config.xml and hits the strict path. The sibling tests
{{uiRepeat/Spec1263IT}} and {{uuidConverter/Spec1819IT}} use the same https
namespace but on an empty {{<faces-config>}}, so they deploy and pass.
h2. Steps to reproduce / TCK reference
* TCK test: {{faces41/headAndBodyRenderer/Spec1760IT}}
* Deploy any Faces 4.1 app whose faces-config.xml declares the
{{https://www.w3.org/2001/XMLSchema-instance}} namespace with a
{{schemaLocation}} attribute AND has child content (e.g.
{{<faces-config-extension>}}) inside {{<faces-config>}}.
* Deployment fails during unmarshalling in {{ReadDescriptors.readFacesConfig}}.
* Currently excluded in {{runner-standalone/exclusions/faces.txt}} in the
apache/tomee-tck harness repo. Remove the entry there once fixed.
* For contrast, {{uiRepeat/Spec1263IT}} and {{uuidConverter/Spec1819IT}} use
the same namespace on an empty {{<faces-config>}} and already pass, confirming
the child-content path is what triggers the bug.
was:
h2. Description
TomEE's faces-config.xml unmarshaller, {{ReadDescriptors.readFacesConfig}},
rejects the {{schemaLocation}} attribute when it sits on the
{{https://www.w3.org/2001/XMLSchema-instance}} namespace. Faces 4.1 descriptors
declare {{schemaLocation}} on this exact namespace, so deployment fails to
unmarshal the file.
The failure only shows up when the descriptor has child content. A bare
{{<faces-config>}} element with no children deploys fine even with the same
https namespace and attribute. Once the descriptor carries a child element,
such as {{<faces-config-extension>}}, the parser takes a stricter path and the
unknown attribute breaks it.
This is why only one test in the affected group fails.
{{headAndBodyRenderer/Spec1760IT}} has a {{<faces-config-extension>}} in its
faces-config.xml and hits the strict path. The sibling tests
{{uiRepeat/Spec1263IT}} and {{uuidConverter/Spec1819IT}} use the same https
namespace but on an empty {{<faces-config>}}, so they deploy and pass.
h2. Steps to reproduce / TCK reference
* TCK test: {{faces41/headAndBodyRenderer/Spec1760IT}}
* Deploy any Faces 4.1 app whose faces-config.xml declares the
{{https://www.w3.org/2001/XMLSchema-instance}} namespace with a
{{schemaLocation}} attribute AND has child content (e.g.
{{<faces-config-extension>}}) inside {{<faces-config>}}.
* Deployment fails during unmarshalling in {{ReadDescriptors.readFacesConfig}}.
* Currently excluded in {{runner-standalone/exclusions/faces.txt}} in the
apache/tomee-tck harness repo. Remove the entry there once fixed.
* For contrast, {{uiRepeat/Spec1263IT}} and {{uuidConverter/Spec1819IT}} use
the same namespace on an empty {{<faces-config>}} and already pass, confirming
the child-content path is what triggers the bug.
> Faces config parser rejects XSI schemaLocation on https namespace
> -----------------------------------------------------------------
>
> Key: TOMEE-4644
> URL: https://issues.apache.org/jira/browse/TOMEE-4644
> Project: TomEE
> Issue Type: Bug
> Reporter: Markus Jung
> Priority: Major
>
> TomEE's faces-config.xml unmarshaller, {{ReadDescriptors.readFacesConfig}},
> rejects the {{schemaLocation}} attribute when it sits on the
> {{https://www.w3.org/2001/XMLSchema-instance}} namespace. Faces 4.1
> descriptors declare {{schemaLocation}} on this exact namespace, so deployment
> fails to unmarshal the file.
> The failure only shows up when the descriptor has child content. A bare
> {{<faces-config>}} element with no children deploys fine even with the same
> https namespace and attribute. Once the descriptor carries a child element,
> such as {{<faces-config-extension>}}, the parser takes a stricter path and
> the unknown attribute breaks it.
> This is why only one test in the affected group fails.
> {{headAndBodyRenderer/Spec1760IT}} has a {{<faces-config-extension>}} in its
> faces-config.xml and hits the strict path. The sibling tests
> {{uiRepeat/Spec1263IT}} and {{uuidConverter/Spec1819IT}} use the same https
> namespace but on an empty {{<faces-config>}}, so they deploy and pass.
> h2. Steps to reproduce / TCK reference
> * TCK test: {{faces41/headAndBodyRenderer/Spec1760IT}}
> * Deploy any Faces 4.1 app whose faces-config.xml declares the
> {{https://www.w3.org/2001/XMLSchema-instance}} namespace with a
> {{schemaLocation}} attribute AND has child content (e.g.
> {{<faces-config-extension>}}) inside {{<faces-config>}}.
> * Deployment fails during unmarshalling in
> {{ReadDescriptors.readFacesConfig}}.
> * Currently excluded in {{runner-standalone/exclusions/faces.txt}} in the
> apache/tomee-tck harness repo. Remove the entry there once fixed.
> * For contrast, {{uiRepeat/Spec1263IT}} and {{uuidConverter/Spec1819IT}} use
> the same namespace on an empty {{<faces-config>}} and already pass,
> confirming the child-content path is what triggers the bug.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)