Is someone able to confirm that the METHOD_NO_LONGER_THROWS_CHECKED_EXCEPTION japicmp compatibility change is something we're ok with between releases? Note that this is a binary compatible change but not a source compatible one.
Regards, Matt J On Sun, Jun 19, 2022 at 10:50 AM Matt Juntunen <matt.a.juntu...@gmail.com> wrote: > > Hello, > > The throw clauses in question are on protected methods. If a user had > overridden these and then thrown an exception, they may have to modify > their source in order to compile against 2.8. Is this ok from the > point of view of our backwards compatibility guarantees? > > Regards, > Matt J > > On Sun, Jun 19, 2022 at 2:26 AM Gary Gregory <garydgreg...@gmail.com> wrote: > > > > This change is incorrect, binary compatibility was NOT broken as the JLS > > specifies that: > > > > "Changes to the throws clause of methods or constructors do not break > > compatibility with pre-existing binaries; these clauses are checked only at > > compile time." > > > > See > > https://docs.oracle.com/javase/specs/jls/se8/html/jls-13.html#jls-13.4.21 > > > > The Maven default goal runs JApiCmp which checks this. > > > > This free us to clean up our code. > > > > If a user is actually reconciling sources, then, yes, they may have to > > adjust call sites, which ok. Binary compatibility is maintained. > > > > Gary > > > > On Sat, Jun 18, 2022, 23:59 <mattjuntu...@apache.org> wrote: > > > > > This is an automated email from the ASF dual-hosted git repository. > > > > > > mattjuntunen pushed a commit to branch master > > > in repository > > > https://gitbox.apache.org/repos/asf/commons-configuration.git > > > > > > > > > The following commit(s) were added to refs/heads/master by this push: > > > new 2e39ef6b fixing binary incompatibilities with v2.7 > > > 2e39ef6b is described below > > > > > > commit 2e39ef6b3909425db1ccf6c1bb58d76f953b5f9a > > > Author: Matt Juntunen <mattjuntu...@apache.org> > > > AuthorDate: Sat Jun 18 23:59:17 2022 -0400 > > > > > > fixing binary incompatibilities with v2.7 > > > --- > > > .../apache/commons/configuration2/YAMLConfiguration.java | 15 > > > ++++++++------- > > > .../configuration2/builder/ConfigurationBuilderEvent.java | 2 +- > > > .../org/apache/commons/configuration2/event/Event.java | 2 +- > > > .../commons/configuration2/interpol/ConstantLookup.java | 4 ++-- > > > 4 files changed, 12 insertions(+), 11 deletions(-) > > > > > > diff --git > > > a/src/main/java/org/apache/commons/configuration2/YAMLConfiguration.java > > > b/src/main/java/org/apache/commons/configuration2/YAMLConfiguration.java > > > index 705c2a21..4732e3f3 100644 > > > --- > > > a/src/main/java/org/apache/commons/configuration2/YAMLConfiguration.java > > > +++ > > > b/src/main/java/org/apache/commons/configuration2/YAMLConfiguration.java > > > @@ -17,6 +17,12 @@ > > > > > > package org.apache.commons.configuration2; > > > > > > +import java.io.IOException; > > > +import java.io.InputStream; > > > +import java.io.Reader; > > > +import java.io.Writer; > > > +import java.util.Map; > > > + > > > import org.apache.commons.configuration2.ex.ConfigurationException; > > > import > > > org.apache.commons.configuration2.ex.ConfigurationRuntimeException; > > > import org.apache.commons.configuration2.io.InputStreamSupport; > > > @@ -27,12 +33,6 @@ import org.yaml.snakeyaml.Yaml; > > > import org.yaml.snakeyaml.constructor.Constructor; > > > import org.yaml.snakeyaml.representer.Representer; > > > > > > -import java.io.IOException; > > > -import java.io.InputStream; > > > -import java.io.Reader; > > > -import java.io.Writer; > > > -import java.util.Map; > > > - > > > /** > > > * <p> > > > * A specialized hierarchical configuration class that is able to parse > > > YAML documents. > > > @@ -84,7 +84,8 @@ public class YAMLConfiguration extends > > > AbstractYAMLBasedConfiguration implements > > > dump(out, options); > > > } > > > > > > - public void dump(final Writer out, final DumperOptions options) { > > > + public void dump(final Writer out, final DumperOptions options) > > > + throws ConfigurationException, IOException { > > > final Yaml yaml = new Yaml(options); > > > > > > yaml.dump(constructMap(getNodeModel().getNodeHandler().getRootNode()), > > > out); > > > } > > > diff --git > > > a/src/main/java/org/apache/commons/configuration2/builder/ConfigurationBuilderEvent.java > > > b/src/main/java/org/apache/commons/configuration2/builder/ConfigurationBuilderEvent.java > > > index 9f944b44..f4aa7f77 100644 > > > --- > > > a/src/main/java/org/apache/commons/configuration2/builder/ConfigurationBuilderEvent.java > > > +++ > > > b/src/main/java/org/apache/commons/configuration2/builder/ConfigurationBuilderEvent.java > > > @@ -33,7 +33,7 @@ import > > > org.apache.commons.configuration2.event.EventType; > > > */ > > > public class ConfigurationBuilderEvent extends Event { > > > > > > - private static final long serialVersionUID = 1L; > > > + private static final long serialVersionUID = -7488811456039315104L; > > > > > > /** The common super type for all events related to configuration > > > builders. */ > > > public static final EventType<ConfigurationBuilderEvent> ANY = new > > > EventType<>(Event.ANY, "BUILDER"); > > > diff --git > > > a/src/main/java/org/apache/commons/configuration2/event/Event.java > > > b/src/main/java/org/apache/commons/configuration2/event/Event.java > > > index 11f1bce7..8845c4fe 100644 > > > --- a/src/main/java/org/apache/commons/configuration2/event/Event.java > > > +++ b/src/main/java/org/apache/commons/configuration2/event/Event.java > > > @@ -39,7 +39,7 @@ public class Event extends EventObject { > > > */ > > > public static final EventType<Event> ANY = new EventType<>(null, > > > "ANY"); > > > > > > - private static final long serialVersionUID = 1L; > > > + private static final long serialVersionUID = -8168310049858198944L; > > > > > > /** > > > * Constant for the format used in toString() for a property > > > representation. > > > diff --git > > > a/src/main/java/org/apache/commons/configuration2/interpol/ConstantLookup.java > > > b/src/main/java/org/apache/commons/configuration2/interpol/ConstantLookup.java > > > index 89ecbe13..7351d289 100644 > > > --- > > > a/src/main/java/org/apache/commons/configuration2/interpol/ConstantLookup.java > > > +++ > > > b/src/main/java/org/apache/commons/configuration2/interpol/ConstantLookup.java > > > @@ -92,9 +92,9 @@ public class ConstantLookup implements Lookup { > > > * @param className the name of the class > > > * @param fieldName the name of the member field of that class to > > > read > > > * @return the field's value > > > - * @throws ReflectiveOperationException if an error occurs > > > + * @throws Exception if an error occurs > > > */ > > > - protected Object resolveField(final String className, final String > > > fieldName) throws ReflectiveOperationException { > > > + protected Object resolveField(final String className, final String > > > fieldName) throws Exception { > > > return fetchClass(className).getField(fieldName).get(null); > > > } > > > > > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org