Hello. Le lun. 20 juin 2022 à 04:25, Matt Juntunen <matt.a.juntu...@gmail.com> a écrit : > > 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.
Is there any advantage in distinguishing between source and binary compatibility? IOW, what do we gain by changing this now, rather than in the next major release? Is the general rule (for any "Commons" release) that if a developer recompiles his application, he should always expect to make changes in his code? If so, shouldn't we always mention both kinds of compatibility in the release notes? Regards, Gilles > > 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 > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org