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
Activity
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
Ken Fyten
made changes -
Fix Version/s | 2.1-Beta [ 10291 ] |
Deryk Sinotte
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #25118 | Wed Jul 27 14:27:34 MDT 2011 | deryk.sinotte | |
Files Changed | ||||
MODIFY
/icefaces2/trunk/icefaces/core/src/main/java/org/icefaces/impl/context/DOMResponseWriter.java
|
Ken Fyten
made changes -
Salesforce Case | [] | |
Assignee Priority | P3 |
Deryk Sinotte
made changes -
Ted Goddard
made changes -
Salesforce Case | [] | |
Component/s | Framework [ 10013 ] | |
Fix Version/s | 2.1 [ 10241 ] | |
Affects Version/s | 2.0.1 [ 10255 ] |
Ted Goddard
made changes -
Assignee | Deryk Sinotte [ deryk.sinotte ] |
Matt Benson
made changes -
Field | Original Value | New Value |
---|---|---|
Attachment | icefacesNPE.tar.gz [ 13223 ] |
Matt Benson
created issue -
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.