I meant re-visit the decision to make sure we took everything into consideration when choosing which way to go in this case. I say we leave [lang] alone at this point.
On Mon, Sep 2, 2013 at 11:41 AM, Matt Benson <gudnabr...@gmail.com> wrote: > How do you mean, "revisit?" I think changing [lang] at this late date would > be more trouble than it's worth. > > Matt > On Sep 1, 2013 1:31 PM, "James Carman" <ja...@carmanconsulting.com> wrote: > >> I favor IAE, but I want to make sure we re-visit the decision made for >> [lang] when it chose to use NPE instead. >> >> On Sun, Sep 1, 2013 at 1:37 PM, Gary Gregory <garydgreg...@gmail.com> >> wrote: >> > It feels to me that this misrepresents the ideas expressed here, or at >> > least mine ;) I am neither indifferent or favor NPE. I favor IAE, so >> > does that mean I am nor "most people". If a person make these kinds of >> > statement, we might as well VOTE or argue-discuss some more...! >> > >> > Gary >> > >> > On Sep 1, 2013, at 10:46, Benedikt Ritter <brit...@apache.org> wrote: >> > >> >> Look's like most people are either indifferent or favor NPE. So, do we >> >> change this for [CSV]? The important thing is to give users an >> expressive >> >> message. >> >> >> >> Benedikt >> >> >> >> >> >> >> >> 2013/8/30 Gary Gregory <garydgreg...@gmail.com> >> >> >> >>> Surprisingly, a lot. At work, we have a lot of frameworky/plugin-type >> of >> >>> code where we run operations on collections of things and we do not >> want >> >>> "expected" errors to torpedo the whole processing flow, so we do catch >> >>> things like IAE and ISE. We do try to avoid catching Exception if we >> can >> >>> help it. >> >>> >> >>> Gary >> >>> >> >>> >> >>> On Fri, Aug 30, 2013 at 2:32 PM, Matt Benson <gudnabr...@gmail.com> >> wrote: >> >>> >> >>>> How often do you really want to catch these? >> >>>> >> >>>> Matt >> >>>> >> >>>> >> >>>> On Fri, Aug 30, 2013 at 1:20 PM, Gary Gregory <garydgreg...@gmail.com >> >>>>> wrote: >> >>>> >> >>>>> Another perspective to think about is whether you want to write code >> >>>> like: >> >>>>> >> >>>>> try { >> >>>>> // la-di-da >> >>>>> } catch (NullPointerException e) { >> >>>>> // garbage in! >> >>>>> } >> >>>>> >> >>>>> or: >> >>>>> >> >>>>> try { >> >>>>> // doo-wap-doo-wap >> >>>>> } catch (IllegalArugumentException e) { >> >>>>> // garbage in! >> >>>>> } >> >>>>> >> >>>>> Catching NPE just smells funny to me. >> >>>>> >> >>>>> Gary >> >>>>> >> >>>>> >> >>>>> >> >>>>> On Fri, Aug 30, 2013 at 1:06 PM, sebb <seb...@gmail.com> wrote: >> >>>>> >> >>>>>> The fact that NPE is documented in Bloch is quite important. >> >>>>>> >> >>>>>> Whatever we do choose, we should make sure to document all th >> reasons >> >>>>>> (pros and cons) somewhere other than just the mailing list! >> >>>>>> >> >>>>>> On 30 August 2013 17:30, Matt Benson <gudnabr...@gmail.com> wrote: >> >>>>>>> The discussion for [lang], none of whose participants have weighed >> >>> in >> >>>>>> here, >> >>>>>>> took place in late 2009 (so perhaps a little longer ago than I >> >>>> thought) >> >>>>>> and >> >>>>>>> is archived at [1]. IMO Paul B. makes some pretty compelling >> >>>> arguments >> >>>>>> in >> >>>>>>> [2]. >> >>>>>>> >> >>>>>>> Matt >> >>>>>>> >> >>>>>>> [1] http://markmail.org/thread/7gw7xzrc3c3ul74c >> >>>>>>> [2] http://markmail.org/message/wmc4jh4pmhjjtxdf >> >>>>>>> >> >>>>>>> >> >>>>>>> On Fri, Aug 30, 2013 at 11:13 AM, sebb <seb...@gmail.com> wrote: >> >>>>>>> >> >>>>>>>> The JDK Javadoc says of NPE: >> >>>>>>>> >> >>>>>>>> * Applications should throw instances of this class to indicate >> >>>>>>>> * other illegal uses of the <code>null</code> object. >> >>>>>>>> >> >>>>>>>> and of IAE: >> >>>>>>>> >> >>>>>>>> * Thrown to indicate that a method has been passed an illegal or >> >>>>>>>> * inappropriate argument. >> >>>>>>>> >> >>>>>>>> That says to me that we should throw IAE here. >> >>>>>>>> >> >>>>>>>> The JDK does use NPE for parameter checks, but it also uses IAE, >> >>> for >> >>>>>>>> example: >> >>>>>>>> >> >>>>>>>> javax.management.monitor.Monitor.addObservedObject >> >>>>>>>> java.rmi.activation.ActivationDesc.ActivationDesc >> >>>>>>>> javax.management.relation.RoleList.add >> >>>>>>>> javax.imageio.metadata.IIOMetadataFormatImpl.addAttribute >> >>>>>>>> >> >>>>>>>> On 30 August 2013 16:50, Adrian Crum < >> >>>>>> adrian.c...@sandglass-software.com> >> >>>>>>>> wrote: >> >>>>>>>>> I've seen a lot of discussions on NPE versus IAE, and in the end >> >>>>> they >> >>>>>> all >> >>>>>>>>> condense down to what Matt stated here: Those who favor NPE cite >> >>>> the >> >>>>>> JDK >> >>>>>>>>> classes as a pattern to follow, and those who favor IAE say it >> >>> is >> >>>> a >> >>>>>>>> better >> >>>>>>>>> description of the problem. From my perspective, both are valid >> >>>>>>>> viewpoints, >> >>>>>>>>> and a project simply needs to choose one. In the end, the choice >> >>>> is >> >>>>>>>> neither >> >>>>>>>>> "right" nor "wrong" - it is just a choice. >> >>>>>>>>> >> >>>>>>>>> -Adrian >> >>>>>>>>> >> >>>>>>>>> >> >>>>>>>>> >> >>>>>>>>> On 8/30/2013 8:07 AM, Matt Benson wrote: >> >>>>>>>>>> >> >>>>>>>>>> Let me stir the pot: >> >>>>>>>>>> At a fundamental level I agree that a required *argument* >> >>>> should >> >>>>>>>> throw >> >>>>>>>>>> an >> >>>>>>>>>> IllegalArgumentException when null is supplied. However, ISTR >> >>>> the >> >>>>>>>>>> decision >> >>>>>>>>>> to do otherwise in [lang] having been discussed on-list in the >> >>>>>>>>>> not-so-distant past, and the result of that discussion being >> >>> that >> >>>>>> NPE is >> >>>>>>>>>> usually the result in the core JDK classes. So I wouldn't >> >>>>>> characterize >> >>>>>>>>>> the >> >>>>>>>>>> situation as "[lang] *just happens* to throw NPE." Now, [lang] >> >>>> is >> >>>>>> in a >> >>>>>>>>>> slightly unique situation as its stated mission is to >> >>> complement >> >>>>> Java >> >>>>>>>> SE, >> >>>>>>>>>> so it could be argued that [lang] is under greater pressure to >> >>>>>> conform >> >>>>>>>> for >> >>>>>>>>>> that reason. But my personal preference, in light of the >> >>>> standing >> >>>>>>>>>> decision >> >>>>>>>>>> with [lang], would be for consistency throughout Commons >> >>>> components >> >>>>>>>>>> *despite* the fact that at a purely semantic level I agree with >> >>>> the >> >>>>>>>>>> arguments in favor of IllegalArgumentException. >> >>>>>>>>>> >> >>>>>>>>>> To summarize, +1 for NullPointerException from me. >> >>>>>>>>>> >> >>>>>>>>>> Matt >> >>>>>>>>>> >> >>>>>>>>>> >> >>>>>>>>>> On Fri, Aug 30, 2013 at 9:36 AM, Benedikt Ritter < >> >>>>> brit...@apache.org >> >>>>>>> >> >>>>>>>>>> wrote: >> >>>>>>>>>> >> >>>>>>>>>>> 2013/8/30 sebb <seb...@gmail.com> >> >>>>>>>>>>> >> >>>>>>>>>>>> On 30 August 2013 15:19, Benedikt Ritter <brit...@apache.org >> >>>> >> >>>>>> wrote: >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> I've removed the generics in r1518974, thanks for spotting >> >>>> that >> >>>>>> sebb. >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> Regarding the exception to throw I'm indifferent. The >> >>>> important >> >>>>>> thing >> >>>>>>>>>>> >> >>>>>>>>>>> is >> >>>>>>>>>>>> >> >>>>>>>>>>>> to >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> fail early. >> >>>>>>>>>>>> ... and with a helpful message. >> >>>>>>>>>>>> >> >>>>>>>>>>>>> I personally thing that NPE should be reserved for signaling >> >>>>> that >> >>>>>>>> some >> >>>>>>>>>>>> >> >>>>>>>>>>>> code >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> tried to invoke a method on a null reference. >> >>>>>>>>>>>> >> >>>>>>>>>>>> +1 >> >>>>>>>>>>>> >> >>>>>>>>>>>>> In our case null is illegal because we know that some code >> >>>> later >> >>>>>> on >> >>>>>>>>>>> >> >>>>>>>>>>> would >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> break if we accept a null reference. So >> >>> IllegalStateException >> >>>>>> makes >> >>>>>>>>>>>> >> >>>>>>>>>>>> sense. >> >>>>>>>>>>>> >> >>>>>>>>>>>> s/IllegalStateException /IllegalArgumentException/ >> >>>>>>>>>>>> >> >>>>>>>>>>>> +1 >> >>>>>>>>>>> Sorry, I meant IAE of corse. >> >>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>>>>>> Imaging having a method that accepts an int and only >> >>> positive >> >>>>> ints >> >>>>>>>> are >> >>>>>>>>>>>>> valid. You would throw an IllegalArgumentException if a >> >>>> negative >> >>>>>> int >> >>>>>>>> is >> >>>>>>>>>>>>> passed to that method and not a NegativeIntegerException (or >> >>>>> what >> >>>>>>>>>>> >> >>>>>>>>>>> ever). >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> But James has a point. If [LANG] uses NPE maybe we should >> >>>> stick >> >>>>> to >> >>>>>>>>>>> >> >>>>>>>>>>> this. >> >>>>>>>>>>>> >> >>>>>>>>>>>> I don't think we have to do the same as LANG, so long as the >> >>>>>> Javadoc >> >>>>>>>> is >> >>>>>>>>>>>> clear. >> >>>>>>>>>>>> >> >>>>>>>>>>>>> Feel free to change it. I'll leave it for now since there >> >>>>> doesn't >> >>>>>>>> seem >> >>>>>>>>>>> >> >>>>>>>>>>> to >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> be consensus?! >> >>>>>>>>>>>> >> >>>>>>>>>>>> Unless there are other reasons than "LANG happens to use >> >>> NPE" I >> >>>>>> think >> >>>>>>>>>>>> we should stick with IAE, as it more clearly indicates the >> >>> the >> >>>>>> problem >> >>>>>>>>>>>> is not within the method throwing it. >> >>>>>>>>>>>> >> >>>>>>>>>>>> The problem with using NPE to flag parameter errors is that >> >>> it >> >>>>>>>>>>>> confuses the user as to the likely cause. >> >>>>>>>>>>>> >> >>>>>>>>>>>> Leave NPEs to the runtime system. >> >>>>>>>>>>> agreed. >> >>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>>>>>> Benedikt >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> 2013/8/30 James Carman <ja...@carmanconsulting.com> >> >>>>>>>>>>>>> >> >>>>>>>>>>>>>> Well, the problem with using NPE is that we as Java >> >>>> developers >> >>>>>> have >> >>>>>>>>>>>>>> learned through the years that NPE typically is an "oh >> >>> crap" >> >>>>>>>>>>>>>> situation, where something is terribly wrong (we hate >> >>> seeing >> >>>>>> those). >> >>>>>>>>>>>>>> Thus, our users may have knee-jerk reactions and not even >> >>>> know >> >>>>> to >> >>>>>>>>>>>>>> inspect the message for the real cause. IAE is less >> >>>> alarming, >> >>>>>> IMHO. >> >>>>>>>>>>>>>> Just my $0.02, but we've been doing it that way for a long >> >>>> time >> >>>>>> in >> >>>>>>>>>>>>>> [lang], so be it. >> >>>>>>>>>>>>>> >> >>>>>>>>>>>>>> >> >>>>>>>>>>>>>> On Fri, Aug 30, 2013 at 9:01 AM, sebb <seb...@gmail.com> >> >>>>> wrote: >> >>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> AFAIK "accidental" NPEs don't have a message associated >> >>> with >> >>>>>> them. >> >>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> So provided that the assertion generates the NPE with a >> >>>>> suitable >> >>>>>>>>>>>>>>> message (e.g.as currently done for the IAE) then it >> >>>> *should* >> >>>>> be >> >>>>>>>>>>>>>>> possible for the end user to distinguish the two cases. >> >>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> I am slightly in favour of retaining IAE as the cause is >> >>>>> obvious >> >>>>>>>>>>> >> >>>>>>>>>>> with >> >>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> needing to look at the NPE message. >> >>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> == >> >>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> Horrible hack: - if you want to use NPE, you could wrap an >> >>>> IAE >> >>>>>> in >> >>>>>>>>>>> >> >>>>>>>>>>> the >> >>>>>>>>>>>>>> >> >>>>>>>>>>>>>> NPE: >> >>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> npe = new NPE(msg); >> >>>>>>>>>>>>>>> npe.initCause(new IAE(msg)); >> >>>>>>>>>>>>>>> throw npe; >> >>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> Or vice-vera, of course! >> >>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> Not sure that gains anything, but it does make the stack >> >>>> trace >> >>>>>> look >> >>>>>>>>>>>>>>> more impressive! >> >>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> On 30 August 2013 13:42, James Carman < >> >>>>>> ja...@carmanconsulting.com> >> >>>>>>>>>>>>>> >> >>>>>>>>>>>>>> wrote: >> >>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>> Commons Lang's Validate.notNull() throws NPEs. I don't >> >>>> know >> >>>>>> that >> >>>>>>>>>>>> >> >>>>>>>>>>>> I've >> >>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>> necessarily agreed with that, but at some point a >> >>> decision >> >>>>> was >> >>>>>>>> made >> >>>>>>>>>>>>>>>> that null constraint violations should throw NPEs. Food >> >>>> for >> >>>>>>>>>>> >> >>>>>>>>>>> thought. >> >>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>> On Fri, Aug 30, 2013 at 8:32 AM, Gary Gregory < >> >>>>>>>>>>>> >> >>>>>>>>>>>> garydgreg...@gmail.com> >> >>>>>>>>>>>>>> >> >>>>>>>>>>>>>> wrote: >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> On Fri, Aug 30, 2013 at 8:25 AM, Emmanuel Bourg < >> >>>>>>>>>>> >> >>>>>>>>>>> ebo...@apache.org> >> >>>>>>>>>>>>>> >> >>>>>>>>>>>>>> wrote: >> >>>>>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>>>>> + if (parameter == null) { >> >>>>>>>>>>>>>>>>>>>> + throw new >> >>>>> IllegalArgumentException("Parameter >> >>>>>> '" >> >>>>>>>>>>> >> >>>>>>>>>>> + >> >>>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>>> parameterName + "' must not be null!"); >> >>>>>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>>>>> + } >> >>>>>>>>>>>>>>>>>>>> + } >> >>>>>>>>>>>>>>>>>>>> +} >> >>>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>>> Isn't a null value supposed to throw a NPE ? >> >>>>>>>>>>>>>>>>> Not always IMO. When I see an NPE I assume something is >> >>>> very >> >>>>>>>> wrong >> >>>>>>>>>>>> >> >>>>>>>>>>>> and >> >>>>>>>>>>>>>> >> >>>>>>>>>>>>>> that >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> it could be a bug in the impl OR a call site, somewhere >> >>> on >> >>>>> the >> >>>>>>>>>>> >> >>>>>>>>>>> code >> >>>>>>>>>>>>>> >> >>>>>>>>>>>>>> path. >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> With an IAE, I know for sure it's a problem in the call >> >>>> site >> >>>>>>>>>>> >> >>>>>>>>>>> (which >> >>>>>>>>>>>>>> >> >>>>>>>>>>>>>> could >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> be a bug of course). >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> I does not help that the JRE/JDK is inconsistent, so >> >>> it's >> >>>>>> hard to >> >>>>>>>>>>>> >> >>>>>>>>>>>> find >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> examples. >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> Gary >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>>> Emmanuel Bourg >> >>>>>> >> --------------------------------------------------------------------- >> >>>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>>> To unsubscribe, e-mail: >> >>>> dev-unsubscr...@commons.apache.org >> >>>>>>>>>>>>>>>>>> For additional commands, e-mail: >> >>>>> dev-h...@commons.apache.org >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> -- >> >>>>>>>>>>>>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >> >>>>>>>>>>>>>>>>> Java Persistence with Hibernate, Second Edition< >> >>>>>>>>>>>>>> >> >>>>>>>>>>>>>> http://www.manning.com/bauer3/> >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> JUnit in Action, Second Edition < >> >>>>>>>> http://www.manning.com/tahchiev/ >> >>>>>>>>>>>>>>>>> Spring Batch in Action < >> >>> http://www.manning.com/templier/> >> >>>>>>>>>>>>>>>>> Blog: http://garygregory.wordpress.com >> >>>>>>>>>>>>>>>>> Home: http://garygregory.com/ >> >>>>>>>>>>>>>>>>> Tweet! http://twitter.com/GaryGregory >> >>>>>> >> --------------------------------------------------------------------- >> >>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>> To unsubscribe, e-mail: >> >>> dev-unsubscr...@commons.apache.org >> >>>>>>>>>>>>>>>> For additional commands, e-mail: >> >>>> dev-h...@commons.apache.org >> >>>>>> >> --------------------------------------------------------------------- >> >>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> To unsubscribe, e-mail: >> >>> dev-unsubscr...@commons.apache.org >> >>>>>>>>>>>>>>> For additional commands, e-mail: >> >>>> dev-h...@commons.apache.org >> >>>> --------------------------------------------------------------------- >> >>>>>>>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> >>>>>>>>>>>>>> For additional commands, e-mail: >> >>> dev-h...@commons.apache.org >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> -- >> >>>>>>>>>>>>> http://people.apache.org/~britter/ >> >>>>>>>>>>>>> http://www.systemoutprintln.de/ >> >>>>>>>>>>>>> http://twitter.com/BenediktRitter >> >>>>>>>>>>>>> http://github.com/britter >> >>>>>> >> --------------------------------------------------------------------- >> >>>>>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> >>>>>>>>>>>> For additional commands, e-mail: dev-h...@commons.apache.org >> >>>>>>>>>>> >> >>>>>>>>>>> -- >> >>>>>>>>>>> http://people.apache.org/~britter/ >> >>>>>>>>>>> http://www.systemoutprintln.de/ >> >>>>>>>>>>> http://twitter.com/BenediktRitter >> >>>>>>>>>>> http://github.com/britter >> >>>>> --------------------------------------------------------------------- >> >>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> >>>>>>>>> For additional commands, e-mail: dev-h...@commons.apache.org >> >>>> --------------------------------------------------------------------- >> >>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> >>>>>>>> For additional commands, e-mail: dev-h...@commons.apache.org >> >>>>>> >> >>>>>> >> --------------------------------------------------------------------- >> >>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> >>>>>> For additional commands, e-mail: dev-h...@commons.apache.org >> >>>>> >> >>>>> >> >>>>> -- >> >>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >> >>>>> Java Persistence with Hibernate, Second Edition< >> >>>>> http://www.manning.com/bauer3/> >> >>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >> >>>>> Spring Batch in Action <http://www.manning.com/templier/> >> >>>>> Blog: http://garygregory.wordpress.com >> >>>>> Home: http://garygregory.com/ >> >>>>> Tweet! http://twitter.com/GaryGregory >> >>> >> >>> >> >>> >> >>> -- >> >>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >> >>> Java Persistence with Hibernate, Second Edition< >> >>> http://www.manning.com/bauer3/> >> >>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >> >>> Spring Batch in Action <http://www.manning.com/templier/> >> >>> Blog: http://garygregory.wordpress.com >> >>> Home: http://garygregory.com/ >> >>> Tweet! http://twitter.com/GaryGregory >> >> >> >> >> >> >> >> -- >> >> http://people.apache.org/~britter/ >> >> http://www.systemoutprintln.de/ >> >> http://twitter.com/BenediktRitter >> >> http://github.com/britter >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> > For additional commands, e-mail: dev-h...@commons.apache.org >> > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> For additional commands, e-mail: dev-h...@commons.apache.org >> >> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org