aboutsummaryrefslogtreecommitdiff
path: root/org.jacoco.agent.rt
diff options
context:
space:
mode:
authorMarc R. Hoffmann <hoffmann@mountainminds.com>2014-03-23 17:03:43 +0100
committerMarc R. Hoffmann <hoffmann@mountainminds.com>2014-03-23 17:04:32 +0100
commit82b13485562ca4a212b7499920f85f22cf9f294b (patch)
treee2c63952fea873ce3032c8685fa80d4cc98b2522 /org.jacoco.agent.rt
parentd65d20d8af92dcf1fbd1728ab2999813aef5e906 (diff)
downloadjacoco-82b13485562ca4a212b7499920f85f22cf9f294b.tar.gz
GitHub #35: Better interoperability with JMockit.
Diffstat (limited to 'org.jacoco.agent.rt')
-rw-r--r--org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/CoverageTransformer.java13
1 files changed, 5 insertions, 8 deletions
diff --git a/org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/CoverageTransformer.java b/org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/CoverageTransformer.java
index b5ed7e18..78d7b5e5 100644
--- a/org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/CoverageTransformer.java
+++ b/org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/CoverageTransformer.java
@@ -32,8 +32,6 @@ public class CoverageTransformer implements ClassFileTransformer {
AGENT_PREFIX = toVMName(name.substring(0, name.lastIndexOf('.')));
}
- private final IRuntime runtime;
-
private final Instrumenter instrumenter;
private final IExceptionLogger logger;
@@ -58,7 +56,6 @@ public class CoverageTransformer implements ClassFileTransformer {
*/
public CoverageTransformer(final IRuntime runtime,
final AgentOptions options, final IExceptionLogger logger) {
- this.runtime = runtime;
this.instrumenter = new Instrumenter(runtime);
this.logger = logger;
// Class names will be reported in VM notation:
@@ -73,17 +70,17 @@ public class CoverageTransformer implements ClassFileTransformer {
final ProtectionDomain protectionDomain,
final byte[] classfileBuffer) throws IllegalClassFormatException {
+ if (classBeingRedefined != null) {
+ // We do not support class retransformation.
+ return null;
+ }
+
if (!filter(loader, classname)) {
return null;
}
try {
classFileDumper.dump(classname, classfileBuffer);
- if (classBeingRedefined != null) {
- // For redefined classes we must clear the execution data
- // reference as probes might have changed.
- runtime.disconnect(classBeingRedefined);
- }
return instrumenter.instrument(classfileBuffer, classname);
} catch (final Exception ex) {
final IllegalClassFormatException wrapper = new IllegalClassFormatException(