As you may already know icefaces since it’s wrapping faces wrapping jsp wrapping html there is some loss of information, especially when things don’t go well.

In my case I was chasing down why a button click would sometimes work and other times do nothing at all.

After looking at various logging spam you can generate, I started looking into debugging tools in faces.  Desperation sometimes works!  Turns out there is a tag, h:messages, in faces that allows you to dump whatever faces exceptions are currently in the queue.  You just plunk the tag in the same div as the suspected culprit and voila, you get a nice message dump right next to the component.  For example,


<ice:panelGroup>
<ice:panelGroup styleClass="x">
<ice:commandButton id="okButton" type="submit" value="OK"
actionListener="#{z.popupOkButtonAction}" />
</ice:panelGroup>
<h:messages layout="table" showDetail="true" />
</ice:panelGroup>

BTW, in my case I got a list of class cast exception errors.  I had the getter/setter of the selected value of a selectOneItem typed as a SelectItem instead of a String.  Once I saw the errors the fixes were very clear.