Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.0.RC1
-
Component/s: ACE-Components
-
Labels:None
-
Environment:HideIcefaces3 rev 26775
Browser: Firefox 3.6, Firefox 6
Server: Tomcat6
Test application location: http://server.ice:8888/svn/repo/qa/trunk/Regression-Icefaces2/Sparkle/Nightly/linkBttn
ShowIcefaces3 rev 26775 Browser: Firefox 3.6, Firefox 6 Server: Tomcat6 Test application location: http://server.ice:8888/svn/repo/qa/trunk/Regression-Icefaces2/Sparkle/Nightly/linkBttn
-
Assignee Priority:P2
Description
When clicking on a ace:linkButton component in any of the test pages, there is a Network Connection Interrupted message appearing for a very short time.
There is also a server error visible in Tomcat log:
8-Dec-2011 12:56:54 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
SEVERE: Error Rendering View[/linkBttnAttribute.xhtml]
java.lang.NullPointerException
at org.icefaces.impl.event.WindowAndViewIDSetup$1.encode(WindowAndViewIDSetup.java:72)
at org.icefaces.impl.event.UIOutputWriter.encodeBegin(UIOutputWriter.java:32)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1755)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at org.icefaces.impl.renderkit.RendererWrapper.encodeChildren(RendererWrapper.java:54)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
Steps:
- load the page: http://localhost:8080/linkBttn/linkBttnAttribute.jsf
- click ckeckbox 'rendered' to render the component on page.
- click on the ace:linkButton component.
There is also a server error visible in Tomcat log:
8-Dec-2011 12:56:54 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
SEVERE: Error Rendering View[/linkBttnAttribute.xhtml]
java.lang.NullPointerException
at org.icefaces.impl.event.WindowAndViewIDSetup$1.encode(WindowAndViewIDSetup.java:72)
at org.icefaces.impl.event.UIOutputWriter.encodeBegin(UIOutputWriter.java:32)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1755)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at org.icefaces.impl.renderkit.RendererWrapper.encodeChildren(RendererWrapper.java:54)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
Steps:
- load the page: http://localhost:8080/linkBttn/linkBttnAttribute.jsf
- click ckeckbox 'rendered' to render the component on page.
- click on the ace:linkButton component.
The markup for the button in question is:
<ice:linkButton id="LBAtt"
{linkBean.rendered}value="Test Attributes"
href="http://www.icefaces.org/main/home/"
rendered="#
"
{linkBean.disabled}disabled="#
"
{linkBean.tabindex}tabindex="#
"
{linkBean.style}style="#
"
{linkBean.styleClass}singleSubmit="true"
styelClass="#
"
{linkBean.hrefLang}hrefLang="#
"
{linkBean.target}target="#
"
{linkBean.immediate}immediate="#
"
/>
Which generates the following rendered output:
<a href="http://www.icefaces.org/main/home/"
hreflang="en"
onclick="return ice.ace.linkButton.clickHandler(event, 'frm5:LBAtt' );"
style="background-color:lightgreen"
tabindex="10" target="_self"
id="frm5:LBAtt_span-button"
class="">Test Attributes</a>
This results in both a full submit and an Ajax call and leads to the following error from the server (generated by JSF):
"The Http Transport returned a 0 status code. This is usually the result of mixing ajax and full requests. This is usually undesired, for both performance and data integrity reasons."
We handle the error as a generic network issue and the Network Interrupted dialog is shown just before the actual navigation to the href occurs. Googling for "mixing ajax and full requests" returns a number of results generally indicating that we shouldn't do this:
http://weblogs.java.net/blog/driscoll/archive/2009/10/01/mixing-ajax-and-full-requests-jsf-20
https://forums.oracle.com/forums/thread.jspa?threadID=2148500
Perhaps the test as it currently stands is invalid?
Or we need to check to see if there is an href before also rendering out our click handler?
Or handle the special errors differently?