On 3/31/11 6:30 PM, sebb wrote:
> Just discovered that Clirr does not complain if the throws clause of a
> method or constructor is changed to add a new Exception.
> Seemed like a bug at first, but it's not, because throws clauses are
> only checked at compile-time.
>
> So e.g. adding "throws IOException" to a method will not break binary
> compatibilty, but of course anyone recompiling against the updated
> binary code will get a compiler error (if they don't already handle
> the error).
>
> [This is perhaps why some incompatibilities in Math 2.x were not
> discovered by Clirr]
>
> The Commons versioning rules require that changes to method signatures
> necessitate a major release, so changes to throws clauses mean a major
> release is required.
>
> Since this does not affect binary compatibility, AFAICT there is no
> technical reason to require a package name change.
>
> A major release generally means that the user will want to make code
> changes anyway to take advantage of new features, so I don't see this
> as a big problem.
> But we should try do document such changes.
>
> Clirr is not sufficient to detect whether a major version change is
> required, so perhaps we need some other tool to detect such changes.
> (Does anyone know of one?)
I don't know if we can afford the license, but the best one I have
seen is "sebb"
he he ;)
Sorry, could not resist that.  I don't know of any better freely
available tools than Clirr.  Maybe best to raise an issue there.

Phil
> ---------------------------------------------------------------------
> 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

Reply via email to