Details
Description
MyFaces calls #cloneWithWriter using its StateWriter, which goes through some acrobatics, the upshot of which is that DOMResponseWriter#startElement is called sometime after DOMResponseWriter#endDocument. #startElement appropriately creates a new Document if its document reference is null, then calls #appendToCursor which, finding that the cursor instance variable is null, assigns that to document.getDocumentElement(). Unfortunately the Document, having just been instantiated, has no document element. What seems like the obvious way to address this issue is to re-check the cursor, i.e.:
if (cursor == null) {
cursor = document.getDocumentElement();
+ if (cursor == null) {
+ cursor = document;
+ }
}
This may be naively missing something; WDYT?
if (cursor == null) {
cursor = document.getDocumentElement();
+ if (cursor == null) {
+ cursor = document;
+ }
}
This may be naively missing something; WDYT?
Issue Links
- depends on
-
ICE-5868 MyFaces 2 compatibility
-
- Closed
-
I did see this issue a couple of times but wasn't able to produce it reliably. I've added the additional null check as precaution.