commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Luc Maisonobe <>
Subject Re: [math] deciding about 2.2
Date Fri, 04 Feb 2011 08:17:54 GMT
Le 04/02/2011 01:18, Gilles Sadowski a écrit :
> On Thu, Feb 03, 2011 at 06:11:19PM -0500, Phil Steitz wrote:
>> On 2/3/11 5:02 PM, Gilles Sadowski wrote:
>>>>>> [...]
>>>>> It seems the thread asking for help on the exception API design is going
>>>>> to be fruitful, and it starts well with interesting ideas. I guess some
>>>>> of these ideas will change again our view and we will converge
>>>>> (hopefully not throwing an exception ourselves ...) to a stable design
>>>>> for 3.0. It seems to me that the switch to unchecked exceptions is
>>>>> supported by almost all participants to this thread, so this part is
>>>>> probably already stabilized.
>>>>> I doubt we can do anything about it for 2.2 and waiting first for the
>>>>> rest of the discussion to stabilize (no hierarchy/small hierarchy/large
>>>>> hierarchy, specific getters/general context map ...) would push 2.2 too
>>>>> I would like to freeze 2.2 as it is now in the repository and get it
>>>>> What do you think ?
>>>> +1 for getting the release out.  Given that we are not sure how things
>>>> are going to end up in 3.0, we should remove the deprecations.
>>> Which things? Which deprecations?
>> The exceptions classes:  DimensionMismatchException,
>> FunctionEvaluationException,
>> MathException, MathRuntimeException,
>> MaxIterationsExceededException.  Since we are still not sure what
>> exactly we are going to do in 3.0, we should not tell users
>> something in 2.2 and then change, so if we want to release now, we
>> should remove these deprecations.
> -1 for removing those deprecations.
> Nobody gave any new argument in favour of CM having checked exceptions.
> What exceptions we have in "trunk" cannot be qualified with the phrase
> "large hierarchy". Nobody within CM active developers expressed a preference
> for a "no hierarchy". We agreed on a singly rooted hierarchy (having
> preferred it over reusing several Java standard exceptions as multiple
> roots).
> Nobody among the new parties to the discussion expressed anything concerning
> the specific problem of "FunctionEvaluationException".[1]
> The (new) issue of adding the "map" feature to the exceptions can be dealt
> with as I proposed in a previous post.
> Thus, unless I missed some points, I don't see anything that will  change
> with respect to what should be removed from 2.2.

In addition to what have already been said, the deprecations are
basically a way to help smooth transition (if I remember well you were
against attempts of smooth transitions) so they basically imply we know
the direction we are heading to. Now we are not sure anymore about some

> Regards,
> Gilles
> [1] The consensus about this exception was to replace it with the
>     "MathUserException" class. In my view, such a class is not more
>     meaningful than a "FunctionEvaluationException" but since some have
>     expressed that they would feel more comfortable with it, it was
>     mentioned in the Javadoc (and "throws" clauses) in place of the old,
>     checked, "FunctionEvaluationException". Now if you'd prefer to have
>     this exception place-holder be renamed "FunctionEvaluationException",
>     I don't oppose it, as long as it is unchecked. [Discussing this further
>     doesn't make any sense, given that nobody can come up with a practical
>     example showing the necessity for such an exception.
>     I thought that the last post by Luc on this subject had reconciled the
>     viewpoints, but either you or I must have misunderstood it.]

The parts for which we seem to have reached consensus is the choice of
unchecked exception, so I guess this will remain. From the paragraph
above, it seems to me FunctionEvaluationException will finally also be
kept (it's not certain yet, will depend on hierarchy depth), only
changed to unchecked exception. So it's deprecation should really been
removed and in 3.0 its base class will be changed. For now, we don't
know what base class will be chosen.

We have already delayed 2.2 too much. I know at least three projects
that are really waiting for its release. Let's do it knowing what we
have achieved in this version (bugs fixes, many evolutions) and what we
have failed to do (stabilizing our exceptions). We cannot trick our
users to think we have already chosen something when we are still
searching for the right direction.

So +1 to remove these deprecations.


> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message