Thanks to my unusual use of view identifiers carrying path-extra-info information, I've discovered a bit of a limitation with DefaultViewControllerMapper: if the result of applying the mapping algorithm isn't legal as a value binding expression, you get an ugly stack trace. I triggered this because I have view identifiers which may include spaces or other 'special' characters which, to be fair, the Javadoc explicitly states you shouldn't do :-)

Looking at the bigger picture, any mapper implementation that's not well-behaved (in terms of returning a value that can be turned into a value binding) is going to cause this behavior.

I thought it'd be a simple case of catching the exception when the value binding expression is created (ReferenceSyntaxException from createValueBinding() or EvaluationException from getValue()), but it looks like the EL implementation I'm using (from Facelets) is throwing an implementation exception rather than the correct, documented exception -- I'm getting a com.sun.faces.el.impl.ElException from createValueBinding() (using the RI).

Is there any clean way to deal with this, since catching com.sun.faces.el.impl.ElException in Shale isn't really appropriate...

L.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to