Yeah, looks like a good fix.  I doubt the optimization of caching
here is buying us much of anything.

-- Adam


On 5/17/07, Martin Koci <[EMAIL PROTECTED]> wrote:

Hi,

I probably found a problem  with BindingFacesMessage class. If calling
getMessage() it resolves value binding only once and then cache it. I
think values should be resolved every time as normal ValueBinding or
ValueExpressing does - calling getValue(context) creates a new value
every time; but BindingFacesMessage returns still same value (which can
be pretty old and unactual).

How did I find the problem:

- in my converter I added logger - its logging converter message in
place where it occurs

- calling message.getSummary() resolves label of component to null,
because loadBundle is not loaded in process validation phase

- in message renderer: it call message.getSummary() too but it return
message with cached, null label. But there - in render response  phase -
label is null no more, because bundles loaded with f:loadBundle already
exist!


I fixed it locally with:
private void _resolveBindings()
    {
      //if (_resolvedParameters == null)
      //{
        _resolvedParameters = _getProcessedBindings(null, _parameters);
      //}
    }

What do you think?


Regards,

Martin Koci








Reply via email to