We recently dealt with this kind of compatibility issue in Log4j 2 and we
decided to subclass the interface in question. I suggest we do the same
here. Not pretty but it is type safe and bullet-proof.

Gary

On Tue, Aug 29, 2017 at 5:17 AM, sebb <seb...@gmail.com> wrote:

> On 28 August 2017 at 20:07, Gary Gregory <garydgreg...@gmail.com> wrote:
> > The question is whether this breaks binary compatibility. If it does,
> this
> > needs fixing. Unless there are other important changes that warrant a
> major
> > version, I would go the sub-interface route; ugly, but workable within
> the
> > same major release.
>
> According to [1], it seems it does not.
>
> However it will break source compatibility if a 3rd party implements
> the interface.
>
> Also I seem to remember there were some concerns about the downstream
> effect for 3rd party visitor implementations.
>
> IIRC it was that BCEL will expect to be able to invoke the new
> methods; this will fail.
> There may be ways around this by catching the exception.
>
> The dev list should have the details.
>
> [1] https://docs.oracle.com/javase/specs/jls/se8/html/jls-13.html
>
> > Gary
> >
> > On Mon, Aug 28, 2017 at 12:58 PM, Benedikt Ritter <brit...@apache.org>
> > wrote:
> >
> >> Hi,
> >>
> >> Rev. 1782852 [1] has introduced two breaking changes by adding the
> methods:
> >>
> >> public void visitAnnotation(org.apache.bcel.classfile.Annotations)
> >> public void visitAnnotationDefault(org.apache.bcel.classfile.
> >> AnnotationDefault)
> >>
> >> to the interface org.apache.bcel.classfile.Visitor. The commit comment
> >> indicates that these changes are needed by the Tomcat project. How do we
> >> want to deal with this for the upcoming 6.1 release? I see several
> options:
> >>
> >> - accept these changes and make it explicit in release notes
> >> - add a new interface which extends from the Visitor interface and add
> the
> >> new methods to that interface
> >> - major version bump (probably not the best idea…)
> >>
> >> Thoughts?
> >> Benedikt
> >>
> >> [1] http://svn.apache.org/viewvc?view=revision&revision=1782852 <
> >> http://svn.apache.org/viewvc?view=revision&revision=1782852>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>

Reply via email to