diff --git a/src/main/java/com/profiler/interceptor/bci/JavaAssistClass.java b/src/main/java/com/profiler/interceptor/bci/JavaAssistClass.java index c4ba4d5c5..241d6fe8c 100644 --- a/src/main/java/com/profiler/interceptor/bci/JavaAssistClass.java +++ b/src/main/java/com/profiler/interceptor/bci/JavaAssistClass.java @@ -428,7 +428,9 @@ public class JavaAssistClass implements InstrumentClass { @Override public byte[] toBytecode() { try { - return ctClass.toBytecode(); + byte[] bytes = ctClass.toBytecode(); + ctClass.detach(); + return bytes; } catch (IOException e) { logger.log(Level.INFO, "IoException class:" + ctClass.getName() + " " + e.getMessage(), e); } catch (CannotCompileException e) { diff --git a/src/main/java/com/profiler/modifier/db/dbcp/DBCPBasicDataSourceModifier.java b/src/main/java/com/profiler/modifier/db/dbcp/DBCPBasicDataSourceModifier.java index 603010a0d..a2e8d7268 100644 --- a/src/main/java/com/profiler/modifier/db/dbcp/DBCPBasicDataSourceModifier.java +++ b/src/main/java/com/profiler/modifier/db/dbcp/DBCPBasicDataSourceModifier.java @@ -39,8 +39,9 @@ public class DBCPBasicDataSourceModifier extends AbstractModifier { updateGetConnectionMethod(cc); printClassConvertComplete(javassistClassName); - - return cc.toBytecode(); + byte[] bytes = cc.toBytecode(); + cc.detach(); + return bytes; } catch (Exception e) { if (logger.isLoggable(Level.WARNING)) { logger.log(Level.WARNING, e.getMessage(), e);