commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jörg Schaible <>
Subject Re: [lang] Time for RC3?
Date Mon, 04 Jul 2011 22:13:51 GMT
Hi Stephen,

Stephen Colebourne wrote:

> On 2 July 2011 15:28, Jörg Schaible <> wrote:
>> Can somebody else give the ContextedException stuff a review? I used in
>> the meanwhile a copy of it in a project, but a method name is bugging me.
> The structure looks reasonable to me.
> While you could rename replaceValue() to setValue(), I don't see that
> change as essential. replaceValue() is utterly clear about what it
> will do, whereas setValue() is slightly more vague. So, I think I'd
> just leave it as is.

Sorry, why is setValue more vague - isn't it the other way round?

See, if I am in a recursion, I don't want to keep track whether I am 
catching the CtxEx the first time or not. With the current API I have to 

try {
} catch(ContextException ex) {
 // the next call might be simply ignored when called the 2nd time 
 ex.addValue("Current Handler", handler.class.getName());
 // replace might silently ignore the call if the label is not yet present
 if (ex.getLables().contains("Current Line")) {
  ex.replaceValue("Current Line", line);
 } else {
  ex.addValue("Current Line", line);
 throw ex;

In contrast "setValue" means "set the value and replace any existing" while 
"addValue" actually means "add the value":

try {
} catch(ContextException ex) {
 throw ex.addValue("Current Handler", handler.class.getName())
  .setValue("Current Line", line);

Sorry, but the first version does simply not make sense to me.

- Jörg

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

View raw message