You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
The following method signature public void delete(InteressentenNr interessentenNr) throws InteressentException
yields the following ABI dump:
public class de/foo/builder/TestBuilder {
public fun delete (Lde/foo/type/InteressentenNr;)V
}
If the "buildHealth" task is run the following advice is created:
"dependency": {
"identifier": ":interessent.module", --> module containing the exception type 'InteressentException'
"configurationName": "compile"
},
"usedTransitiveDependencies": [],
"fromConfiguration": "compile",
"toConfiguration": "implementation" --> expect this to be "api" instead
}
To Reproduce
Steps to reproduce the behavior:
create method in "moduleX" which throws exception type from a different module e.g. "moduleY"
verify moduleX has advice set to "implementation" for moduleY instead of "api"
Expected behavior
Exceptions thrown in method signatures should be considered in the ABI. If a method refers to an exception type from a different module, this module should be advised to have "api" configuration.
Context
Classes compiled using ECJ on Java 1.8
The text was updated successfully, but these errors were encountered:
I'm not an expert on the Java specification. I just did some cursory searching online and found this, which doesn't list exceptions as part of the definition of method signatures. Can you point me to anything discussing the relationship between exceptions and ABI?
I do understand what you're saying here, but I want to make sure we come to the right resolution here, not just the one that feels right.
Nevertheless, I think that dependencies from "throws"-clauses should be regarded in the dependency analysis plugin, since following the advice in the current output of the "buildHealth" task will result in code that won't compile.
Plugin version
0.71.0
Gradle version
6.5.1
Describe the bug
The following method signature
public void delete(InteressentenNr interessentenNr) throws InteressentException
yields the following ABI dump:
If the "buildHealth" task is run the following advice is created:
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Exceptions thrown in method signatures should be considered in the ABI. If a method refers to an exception type from a different module, this module should be advised to have "api" configuration.
Context
Classes compiled using ECJ on Java 1.8
The text was updated successfully, but these errors were encountered: