Merge pull request #1240 from DataDog/tyler/executor-matcher-reorder

Reorder java-concurrent matchers
This commit is contained in:
Tyler Benson 2020-02-20 17:54:39 -08:00 committed by GitHub
commit 5e37ca02f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 27 deletions

View File

@ -102,12 +102,10 @@ public abstract class AbstractExecutorInstrumentation extends Instrumenter.Defau
@Override @Override
public ElementMatcher<TypeDescription> typeMatcher() { public ElementMatcher<TypeDescription> typeMatcher() {
final ElementMatcher.Junction<TypeDescription> matcher = ElementMatcher.Junction<TypeDescription> matcher = not(isInterface());
not(isInterface()).and(safeHasInterface(named(Executor.class.getName()))); if (!TRACE_ALL_EXECUTORS) {
if (TRACE_ALL_EXECUTORS) { matcher =
return matcher; matcher.and(
}
return matcher.and(
new ElementMatcher<TypeDescription>() { new ElementMatcher<TypeDescription>() {
@Override @Override
public boolean matches(final TypeDescription target) { public boolean matches(final TypeDescription target) {
@ -130,6 +128,9 @@ public abstract class AbstractExecutorInstrumentation extends Instrumenter.Defau
} }
}); });
} }
return matcher.and(
safeHasInterface(named(Executor.class.getName()))); // Apply expensive matcher last.
}
@Override @Override
public String[] helperClassNames() { public String[] helperClassNames() {

View File

@ -79,7 +79,6 @@ public final class FutureInstrumentation extends Instrumenter.Default {
@Override @Override
public ElementMatcher<TypeDescription> typeMatcher() { public ElementMatcher<TypeDescription> typeMatcher() {
return not(isInterface()) return not(isInterface())
.and(safeHasInterface(named(Future.class.getName())))
.and( .and(
new ElementMatcher<TypeDescription>() { new ElementMatcher<TypeDescription>() {
@Override @Override
@ -90,7 +89,8 @@ public final class FutureInstrumentation extends Instrumenter.Default {
} }
return whitelisted; return whitelisted;
} }
}); })
.and(safeHasInterface(named(Future.class.getName()))); // Apply expensive matcher last.
} }
@Override @Override