Fixes ByteBuddy AbstractMethodError which could occur when running tests from IDE #3327
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We have now had for a time the strange behaviour that certain tests would fail when run from the IDE with the following error:
I've been able to find the root cause of the issue and fix it with this PR.
Our
MinimumClassFileVersionValidator
implementsAsmVisitorWrapper
frombyte-buddy-dep
, which means it uses the unshadedorg.objectweb.asm.ClassVisitor
as parameter type.The error message shows that at runtime the
AsmVisitorWrapper
interface is picked up frombyte-buddy
instead, which expects the shadednet.bytebuddy.jar.asm.ClassVisitor
.I assume that when the tests are run from maven the classpath order is slightly different, so that
byte-buddy-dep
wins overbyte-buddy
. In the IDE the order seems to be the other way around, causing the failure.I've fixed it by excluding
byte-buddy
from the dependencies which pull it in transitively:assertJ
andmockito
.What does this PR do?
Checklist
I have updated CHANGELOG.asciidoc