Details
Description
noted in the forum: http://www.icefaces.org/JForum/posts/list/3071.page
using debug.seam in the demo app produces the enhanceAndFixDocument NPE when
html Element is null.
java.lang.NullPointerException
com.icesoft.faces.context.DOMResponseWriter.enhanceAndFixDocument(DOMResponseWriter.java:394)
com.icesoft.faces.context.DOMResponseWriter.writeDOM(DOMResponseWriter.java:312)
com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:161)
...
using debug.seam in the demo app produces the enhanceAndFixDocument NPE when
html Element is null.
java.lang.NullPointerException
com.icesoft.faces.context.DOMResponseWriter.enhanceAndFixDocument(DOMResponseWriter.java:394)
com.icesoft.faces.context.DOMResponseWriter.writeDOM(DOMResponseWriter.java:312)
com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:161)
...
Issue Links
- blocks
-
ICE-1810 Support Integration with JBoss Seam
- Closed
Activity
Philip Breau
created issue -
Icefaces Administrator
made changes -
Field | Original Value | New Value |
---|---|---|
issue.field.bugzillaimportkey | 1110 | 12353 |
Ken Fyten
made changes -
Summary | sample seam app produces an NPE when using debug.seam | Seam: sample seam app produces an NPE when using debug.seam |
Ken Fyten
made changes -
Estimated Complexity | Medium | |
Fix Version/s | 1.6DR#2 [ 10040 ] | |
Fix Version/s | 1.6 [ 10031 ] | |
Assignee Priority | P1 | |
Assignee | Mark Collette [ mark.collette ] | Greg Dick [ greg.dick ] |
Ken Fyten
made changes -
Fix Version/s | 1.6 [ 10031 ] | |
Fix Version/s | 1.6DR#2 [ 10040 ] |
Ken Fyten
made changes -
Assignee | Greg Dick [ greg.dick ] | Mark Collette [ mark.collette ] |
Ken Fyten
made changes -
Fix Version/s | 1.6DR#3 [ 10050 ] | |
Fix Version/s | 1.6 [ 10031 ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #13434 | Wed Mar 28 17:28:47 MDT 2007 | mark.collette | |
Files Changed | ||||
MODIFY
/icefaces/trunk/icefaces/core/src/com/icesoft/util/SeamUtilities.java
MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/http/core/PageServer.java MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/facelets/D2DSeamFaceletViewHandler.java MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/http/core/ReceiveSendUpdates.java ADD /icefaces/trunk/icefaces/core/src/com/icesoft/faces/facelets/SeamDebugResourceResolver.java MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/facelets/D2DFaceletViewHandler.java |
Mark Collette
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Ken Fyten
made changes -
Fix Version/s | 1.6 [ 10031 ] |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
Assignee Priority | P1 | |
Assignee | Mark Collette [ mark.collette ] |
I have yet to try this with the 1.5.x branch, but with the HEAD code and newest
Seam release, we get a totally different situation. Basically, the debug.seam
or debug.jsf page will show, but the output is garbled.
Comparing the dvdstore app (with ICEfaces) with the hibernate app (without
ICEfaces) shows that the stock JSF components, like h:outputText and
h:dataTable, are not being rendered. I found that
org.jboss.seam.debug.jsf.SeamDebugPhaseListener is responsible for serving out
the applications\jboss-seam-1.1.0.BETA2\src\debug\META-INF\debug.xhtml file
using Facelets directly, instead of using the ViewHandler mechanism. This
PhaseListener is auto-wired by
applications\jboss-seam-1.1.0.BETA2\src\debug\META-INF\faces-config.xml
I think that the easiest approach will be to make a Seam
com.sun.facelets.impl.ResourceResolver that knows how to get at this
debug.xhtml file, and just use the existing facelets.RESOURCE_RESOLVER
parameter to access it.
Some sort of chaining of ResourceResolvers should be done, so that apps with an
existing ResourceResolver will work. My preference would be for Facelets core
to alter its use of the facelets.RESOURCE_RESOLVER parameter, to treat it as
an ordered list of ResourceResolvers, much like how the facelets.LIBRARIES and
facelets.DECORATORS parameters work.
In the immediate term, to simplify my proof of concept code, I will add a second
parameter called seam.RESOURCE_RESOLVER which
org.jboss.seam.debug.jsf.SeamDebugResourceResolver will delegate to.
So, to recap, here are some configuration examples:
Current way, with a custom ResourceResolver:
web.xml
<context-param>
<param-name>facelets.RESOURCE_RESOLVER</param-name>
<param-value>com.mycompany.CustomResourceResolver</param-value>
</context-param>
Short-term solution, with Seam debug ResourceResolver, and no other custom
ResourceResolver:
web.xml
<context-param>
<param-name>facelets.RESOURCE_RESOLVER</param-name>
<param-value>org.jboss.seam.debug.jsf.SeamDebugResourceResolver</param-value>
</context-param>
Short-term solution, with Seam debug ResourceResolver, and a custom
ResourceResolver:
web.xml
<context-param>
<param-name>facelets.RESOURCE_RESOLVER</param-name>
<param-value>org.jboss.seam.debug.jsf.SeamDebugResourceResolver</param-value>
</context-param>
<context-param>
<param-name>seam.RESOURCE_RESOLVER</param-name>
<param-value>com.mycompany.CustomResourceResolver</param-value>
</context-param>
Long-term solution, with Seam debug ResourceResolver, and a custom
ResourceResolver, chained:
web.xml
<context-param>
<param-name>facelets.RESOURCE_RESOLVER</param-name>
<param-value>org.jboss.seam.debug.jsf.SeamDebugResourceResolver;com.mycompany.CustomResourceResolver</param-value>
</context-param>