|
72 | 72 | import org.apache.logging.log4j.LogManager;
|
73 | 73 | import org.apache.logging.log4j.Logger;
|
74 | 74 | import org.exist.Namespaces;
|
| 75 | +import org.exist.dom.memtree.reference.AbstractReferenceNodeImpl; |
75 | 76 | import org.exist.dom.persistent.DocumentImpl;
|
76 | 77 | import org.exist.dom.persistent.NodeProxy;
|
77 | 78 | import org.exist.dom.QName;
|
@@ -602,8 +603,15 @@ public void serialize(final NodeValue n, final Writer writer, final boolean prep
|
602 | 603 | applyXSLHandler(writer);
|
603 | 604 | prettyPrinter = null;
|
604 | 605 | } else {
|
605 |
| - prettyPrinter = setPrettyPrinter(writer, "no".equals(outputProperties.getProperty(OutputKeys.OMIT_XML_DECLARATION, "yes")), |
606 |
| - n.getImplementationType() == NodeValue.PERSISTENT_NODE ? (NodeProxy) n : null, false); |
| 606 | + final NodeProxy root; |
| 607 | + if (n.getImplementationType() == NodeValue.PERSISTENT_NODE) { |
| 608 | + root = (NodeProxy) n; |
| 609 | + } else if (n instanceof AbstractReferenceNodeImpl<?, ?>) { |
| 610 | + root = ((AbstractReferenceNodeImpl<?, ?>) n).getNodeProxy(); |
| 611 | + } else { |
| 612 | + root = null; |
| 613 | + } |
| 614 | + prettyPrinter = setPrettyPrinter(writer, "no".equals(outputProperties.getProperty(OutputKeys.OMIT_XML_DECLARATION, "yes")), root, false); |
607 | 615 | }
|
608 | 616 |
|
609 | 617 | try {
|
@@ -1232,6 +1240,8 @@ protected void serializeToReceiver(final NodeValue v, final boolean generateDocE
|
1232 | 1240 | throws SAXException {
|
1233 | 1241 | if (v.getImplementationType() == NodeValue.PERSISTENT_NODE) {
|
1234 | 1242 | serializeToReceiver((NodeProxy) v, generateDocEvents, true);
|
| 1243 | + } else if (v instanceof AbstractReferenceNodeImpl<?, ?>) { |
| 1244 | + serializeToReceiver(((AbstractReferenceNodeImpl<?, ?>) v).getNodeProxy(), generateDocEvents, true); |
1235 | 1245 | } else {
|
1236 | 1246 | serializeToReceiver((org.exist.dom.memtree.NodeImpl) v, generateDocEvents);
|
1237 | 1247 | }
|
|
0 commit comments