There are many instances of NullPointerException found in tomcat log - see below.
ICEfaces3/trunk revision# 36609
Server: tomcat6
Browser: FF3.6, IE8, GoogleChrome27
New failures: Many new failures, see attached Summary file.
NullPointerExceptions are visible in tomcat log when interacting with some of the test pages; as example, ace:accordion in h:dataTable - the error occurs when changing tab panes.
There are also errors in JS console (all browsers):
Chrome:
GET http://localhost:8080/accordion/RES_NOT_FOUND
404 (Not Found) accordionDataTbl.jsf:12
[window] Error [status: emptyResponse code:
200]: An empty response was received from the server.
Check server error logs. bridge-support.js.jsf:1805
[window] Error
[status: emptyResponse code: 200]: An empty response
was received from the server. Check server error logs.
bridge-support.js.jsf:1805
IE8:
[window] Error [status: malformedXML code: 200]: XML Parsing Error: Invalid xml declaration.
Location:
Line Number 2, Column 21:
<partial-response><?xml version='1.0' encoding='UTF-8'?>
---------------------^
Server error:
Jul 9, 2013 3:32:39 AM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
SEVERE: Error Rendering View[/panelDynAttribute.xhtml]
java.lang.NullPointerException
at java.util.Hashtable.get(Hashtable.java:334)
at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.getIdentifier(CoreDocumentImpl.java:2005)
at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.getElementById(CoreDocumentImpl.java:1949)
at org.icefaces.impl.context.DOMPartialViewContext.generateElementUpdateNotifications(DOMPartialViewContext.java:285)
at org.icefaces.impl.context.DOMPartialViewContext.processPartial(DOMPartialViewContext.java:254)
at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:973)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1779)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:413)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:124)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
at java.lang.Thread.run(Thread.java:619)
The one good thing about the multiple TEXT nodes was that the memory usage before serialisation was minimised, since the Strings that were constants were preserved and isolated from the Strings that were dynamically generated (viewId, clientIds). By concatenating the TEXT nodes together, operations may be simpler and faster, but they're not interned or even internable.