|
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;
|
@@ -598,8 +599,15 @@ public void serialize(final NodeValue n, final Writer writer, final boolean prep
|
598 | 599 | applyXSLHandler(writer);
|
599 | 600 | prettyPrinter = null;
|
600 | 601 | } else {
|
601 |
| - prettyPrinter = setPrettyPrinter(writer, "no".equals(outputProperties.getProperty(OutputKeys.OMIT_XML_DECLARATION, "yes")), |
602 |
| - n.getImplementationType() == NodeValue.PERSISTENT_NODE ? (NodeProxy) n : null, false); |
| 602 | + final NodeProxy root; |
| 603 | + if (n.getImplementationType() == NodeValue.PERSISTENT_NODE) { |
| 604 | + root = (NodeProxy) n; |
| 605 | + } else if (n instanceof AbstractReferenceNodeImpl<?, ?>) { |
| 606 | + root = ((AbstractReferenceNodeImpl<?, ?>) n).getNodeProxy(); |
| 607 | + } else { |
| 608 | + root = null; |
| 609 | + } |
| 610 | + prettyPrinter = setPrettyPrinter(writer, "no".equals(outputProperties.getProperty(OutputKeys.OMIT_XML_DECLARATION, "yes")), root, false); |
603 | 611 | }
|
604 | 612 |
|
605 | 613 | try {
|
@@ -1228,6 +1236,8 @@ protected void serializeToReceiver(final NodeValue v, final boolean generateDocE
|
1228 | 1236 | throws SAXException {
|
1229 | 1237 | if (v.getImplementationType() == NodeValue.PERSISTENT_NODE) {
|
1230 | 1238 | serializeToReceiver((NodeProxy) v, generateDocEvents, true);
|
| 1239 | + } else if (v instanceof AbstractReferenceNodeImpl<?, ?>) { |
| 1240 | + serializeToReceiver(((AbstractReferenceNodeImpl<?, ?>) v).getNodeProxy(), generateDocEvents, true); |
1231 | 1241 | } else {
|
1232 | 1242 | serializeToReceiver((org.exist.dom.memtree.NodeImpl) v, generateDocEvents);
|
1233 | 1243 | }
|
|
0 commit comments