[ 
https://issues.apache.org/jira/browse/JCR-1767?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12636905#action_12636905
 ] 

Jukka Zitting commented on JCR-1767:
------------------------------------

Yep, you're right. I have a draft patch that looks at the namespaces used in 
the element name and attributes passed to startElement and automatically calls 
startPrefixMapping for any namespaces that have not yet been declared. This 
workaround seems to work on 1.4, but I'm getting increasingly worried about the 
extra stuff we're layering on XML serialization. On the other hand, I guess 
it's still better than having the explicit Xerces dependency.

> WebDAV XML serialization in JDK 1.4 broken
> ------------------------------------------
>
>                 Key: JCR-1767
>                 URL: https://issues.apache.org/jira/browse/JCR-1767
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: jackrabbit-webdav
>            Reporter: Julian Reschke
>            Priority: Minor
>
> WebDAV uses XmlRequestEntity for serializing XML, which in turn uses 
> org.apache.jackrabbit.commons.xml.SerializingContentHandler to work around 
> the JDK 1.4 problem (serializing in absence of explicit namespace 
> declarations).
> The following test fails under JDK 1.4, but passed with newer JDKs:
>     public void testXmlSerialization() throws ParserConfigurationException, 
> IOException, SAXException {
>         
>         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
>         dbf.setNamespaceAware(true);
>         DocumentBuilder db = dbf.newDocumentBuilder();
>         
>         Document doc = db.newDocument();
>         doc.appendChild(doc.createElementNS("DAV:", "propfind"));
>         
>         XmlRequestEntity xmlent = new XmlRequestEntity(doc);
>         ByteArrayOutputStream bos = new ByteArrayOutputStream();
>         xmlent.writeRequest(bos);
>         
>         Document doc2 = db.parse(new ByteArrayInputStream(bos.toByteArray()));
>         Element docelem = doc2.getDocumentElement();
>         assertEquals("DAV:", docelem.getNamespaceURI());
>     }

-- 
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