[
https://issues.apache.org/jira/browse/TRINIDAD-1229?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Prakash Udupa N updated TRINIDAD-1229:
--------------------------------------
Status: Patch Available (was: Open)
> SetFacetChildDocumentChange adds incomplete facet node to the document
> ----------------------------------------------------------------------
>
> Key: TRINIDAD-1229
> URL: https://issues.apache.org/jira/browse/TRINIDAD-1229
> Project: MyFaces Trinidad
> Issue Type: Bug
> Affects Versions: 1.2.9-core
> Environment: All environments
> Reporter: Prakash Udupa N
> Original Estimate: 2h
> Remaining Estimate: 2h
>
> The following is the current code in
> org.apache.myfaces.trinidad.change.SetFacetChildDocumentChange class:
> public void changeDocument(Node componentNode)
> {
> if (componentNode == null)
> throw new IllegalArgumentException(_LOG.getMessage(
> "NO_NODE_SPECIFIED"));
>
> // get the fragement, imported into the target document
> DocumentFragment targetFragment =
> getImportedComponentFragment(componentNode);
>
> Element facetElement = ChangeUtils.__getFacetElement(componentNode,
> _facetName);
>
> if (facetElement != null)
> {
> // remove any current children
> ChangeUtils.__removeAllChildren(facetElement);
> }
> else
> {
> Document targetDocument = componentNode.getOwnerDocument();
>
> facetElement = targetDocument.createElementNS(_JSF_CORE_NAMESPACE,
> "f:facet"); // ISSUE IS THAT THIS FACET ELEMENT DOES NOT HAVE 'name'
> ATTRIBUTE ON IT
>
> // set the xmlns for the prefix to make sure that "f:" is the
> // prefix for faces
> // =-= bts TODO In theory, this could cause problems if the
> // added component used the prefix "f:" for something other than
> // the JSF core
> facetElement.setAttributeNS(_XMLNS_NAMESPACE, "xmlns:f",
> _JSF_CORE_NAMESPACE);
>
> componentNode.appendChild(facetElement);
> }
>
> // add our new facet content
> facetElement.appendChild(targetFragment);
> }
> When a new SetFacetChildDocumentChange is created and added to the change
> manager, and in case the target component did not have a facet already, a new
> facet element is created wrapping the supplied document fragment, and added.
> The problem, is that the 'name' attribute is added on the element, as
> indicated by comments in the code above. This results in parse exceptions by
> JSP engines.
> Fix is to add the 'name' attribute. I'll provide a patch soon.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.