From 5a2ee4e7ec7ba796ade52c87e2f6c5c0bf3b3bd8 Mon Sep 17 00:00:00 2001 From: Sander Hautvast Date: Thu, 19 Dec 2019 16:16:50 +0100 Subject: [PATCH] Bugfix for illegal field in interface: added extra check that instrumented jdbc impl class is not an interface --- src/main/java/perfix/instrument/JdbcInstrumentor.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/perfix/instrument/JdbcInstrumentor.java b/src/main/java/perfix/instrument/JdbcInstrumentor.java index f7eae88..fd3d6f3 100644 --- a/src/main/java/perfix/instrument/JdbcInstrumentor.java +++ b/src/main/java/perfix/instrument/JdbcInstrumentor.java @@ -189,7 +189,7 @@ public class JdbcInstrumentor extends Instrumentor { } boolean isJdbcPreparedStatementImpl(String resource, CtClass ctClass) throws NotFoundException { - if (!resource.startsWith("java/sql")) { + if (!ctClass.isInterface() && !resource.startsWith("java/sql")) { return stream(ctClass.getInterfaces()) .anyMatch(i -> i.getName().equals("java.sql.PreparedStatement")); } @@ -197,7 +197,7 @@ public class JdbcInstrumentor extends Instrumentor { } boolean isJdbcConnectionImpl(String resource, CtClass ctClass) throws NotFoundException { - if (!resource.startsWith("java/sql")) { + if (!ctClass.isInterface() && !resource.startsWith("java/sql")) { return stream(ctClass.getInterfaces()) .anyMatch(i -> i.getName().equals("java.sql.Connection")); }