2013/7/11 Konstantin Kolinko wrote:
>
> 2013/7/11 Violeta Georgieva <miles...@gmail.com>:
> > Hi,
> >
> > I have the following question about:
> >
> > 1. Method setValue
> > There is some mismatch in the javadoc. In the method description there
is
> > the following statement:
> >
> > "If the property exists but does not have a setter, then a
> > PropertyNotFoundException is thrown."
> >
> > But the throws clause states:
> >
> > "PropertyNotWritableException - if this resolver was constructed in
> > read-only mode, or if there is no setter for the property."
> >
> > Our implementation currently throws PropertyNotFoundException.
> > I'm going to change it to throw PropertyNotWritableException.
> > What do you think?
> >
> > Also I'm going to report a bug for this against the spec.
> >
>
> The javadoc at
http://docs.oracle.com/javaee/7/api/javax/el/BeanELResolver.html
>  says:
>
> "If this resolver was constructed in read-only mode, this method will
> always throw PropertyNotWritableException."
>
> I think it is what should actually happen. It is also easier to check
> a boolean property either than use reflection to lookup whether a
> property exists. I see no specification bug here.

There is no bug in the specification, but in the javadoc.
I meant to open a bug to ask for a consistent javadoc.

> > 2. Method isReadOnly
> > There is not explicit statement what should be returned in case
> > base/property are null.
> > However there is statement that:
> >
> > "If this resolver was constructed in read-only mode, this method will
> > always return true."
> >
>
> The same as for ResourceBundleELResolver. (That resolver is inherently
> read-only but you recently changed it to return false in a similar
> method).
>
> The return value does not matter if the property has not been marked
> as resolved. The docs require the caller to ignore the return value in
> such a case.

I agree.

Reply via email to