[ 
https://issues.apache.org/jira/browse/JCR-1952?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting resolved JCR-1952.
--------------------------------

    Resolution: Fixed

I resolved this by replacing the JAXP serialization code with a custom XML 
serializer over whose behaviour we have full control. The custom serializer and 
related classes were added in revision 746602 and in revision 746603 I modified 
the JCR XML exports to use this new serializer.

Note that to keep things simple the new serializer is designed to only work 
with a fairly constrained stream of SAX events. This is OK for the XML exports 
we generate, but not necessarily for things like the DOM to SAX conversions 
used by the webdav component. Thus I've only modified the JCR XML exports to 
use the new serializer and kept other XML serializations based on the existing 
SerializingContentHandler class. 

Merged to the 1.5 branch in revision 746604.

> DOMException: NAMESPACE_ERR thrown when exporting document view
> ---------------------------------------------------------------
>
>                 Key: JCR-1952
>                 URL: https://issues.apache.org/jira/browse/JCR-1952
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-jcr-commons, xml
>    Affects Versions: 1.5.2
>            Reporter: Lóránt Pintér
>            Assignee: Jukka Zitting
>             Fix For: 1.5.3
>
>         Attachments: MANIFEST.MF
>
>
> When I try to export some nodes with ExportDocumentView I get a DOMException 
> with Jackrabbit 1.5.2. Version 1.4.6 works fine. Xerces version was 2.8.1.
> Code:
> Document document = documentBuilder.newDocument();
> Element exportElement = (Element) 
> document.appendChild(document.createElement("Export"));
> Result result = new DOMResult(exportElement);
> TransformerHandler transformerHandler = 
> saxTransformerFactory.newTransformerHandler();
> transformerHandler.setResult(result);
> session.exportDocumentView(workflowNode.getPath(), transformerHandler, true, 
> false);
> Exception:
> org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or 
> change an object in a way which is incorrect with regard to namespaces.
>       at org.apache.xerces.dom.CoreDocumentImpl.checkDOMNSErr(Unknown Source)
>       at org.apache.xerces.dom.AttrNSImpl.setName(Unknown Source)
>       at org.apache.xerces.dom.AttrNSImpl.<init>(Unknown Source)
>       at org.apache.xerces.dom.CoreDocumentImpl.createAttributeNS(Unknown 
> Source)
>       at org.apache.xerces.dom.ElementImpl.setAttributeNS(Unknown Source)
>       at 
> com.sun.org.apache.xalan.internal.xsltc.trax.SAX2DOM.startElement(SAX2DOM.java:194)
>       at 
> com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:204)
>       at 
> com.sun.org.apache.xml.internal.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:277)
>       at 
> com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.startElement(ToXMLSAXHandler.java:646)
>       at 
> com.sun.org.apache.xalan.internal.xsltc.trax.TransformerHandlerImpl.startElement(TransformerHandlerImpl.java:263)
>       at 
> org.apache.jackrabbit.commons.xml.Exporter.startElement(Exporter.java:438)
>       at 
> org.apache.jackrabbit.commons.xml.DocumentViewExporter.exportNode(DocumentViewExporter.java:76)
>       at 
> org.apache.jackrabbit.commons.xml.Exporter.exportNode(Exporter.java:298)
>       at 
> org.apache.jackrabbit.commons.xml.Exporter.exportNodes(Exporter.java:214)
>       at 
> org.apache.jackrabbit.commons.xml.DocumentViewExporter.exportNode(DocumentViewExporter.java:77)
>       at 
> org.apache.jackrabbit.commons.xml.Exporter.exportNode(Exporter.java:295)
>       at org.apache.jackrabbit.commons.xml.Exporter.export(Exporter.java:144)
>       at 
> org.apache.jackrabbit.commons.AbstractSession.export(AbstractSession.java:461)
>       at 
> org.apache.jackrabbit.commons.AbstractSession.exportDocumentView(AbstractSession.java:241)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to