aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc R. Hoffmann <hoffmann@mountainminds.com>2014-07-07 22:31:00 +0200
committerMarc R. Hoffmann <hoffmann@mountainminds.com>2014-07-07 22:31:00 +0200
commitd488b0a4ac03db5b8f6611d7aaf395de7660fe54 (patch)
tree1c71238c33633b616a3595f6640e95ecf495e24d
parente7528a5ad032bd8e062e983ff4cefac705c672ea (diff)
parent74a79501bb14df8b92ed373b88c638f2b20e86d3 (diff)
downloadjacoco-d488b0a4ac03db5b8f6611d7aaf395de7660fe54.tar.gz
Merge pull request #225 from jacoco/issue-225
The class dumped by jacocoagent with same name will be replaced
-rw-r--r--org.jacoco.agent.rt.test/src/org/jacoco/agent/rt/internal/ClassFileDumperTest.java6
-rw-r--r--org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/ClassFileDumper.java6
-rw-r--r--org.jacoco.doc/docroot/doc/changes.html2
3 files changed, 10 insertions, 4 deletions
diff --git a/org.jacoco.agent.rt.test/src/org/jacoco/agent/rt/internal/ClassFileDumperTest.java b/org.jacoco.agent.rt.test/src/org/jacoco/agent/rt/internal/ClassFileDumperTest.java
index 50b68e10..0ce3c7e3 100644
--- a/org.jacoco.agent.rt.test/src/org/jacoco/agent/rt/internal/ClassFileDumperTest.java
+++ b/org.jacoco.agent.rt.test/src/org/jacoco/agent/rt/internal/ClassFileDumperTest.java
@@ -19,7 +19,6 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
-import org.jacoco.agent.rt.internal.ClassFileDumper;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -45,7 +44,8 @@ public class ClassFileDumperTest {
final File location = new File(folder.getRoot(), "classes");
final ClassFileDumper dumper = new ClassFileDumper(location.toString());
dumper.dump("org/jacoco/examples/Foo$Inner", contents);
- assertContents(location, "org/jacoco/examples/Foo$Inner.class");
+ assertContents(location,
+ "org/jacoco/examples/Foo$Inner.aff06045a340cd62.class");
}
@Test
@@ -53,7 +53,7 @@ public class ClassFileDumperTest {
final File location = new File(folder.getRoot(), "classes");
final ClassFileDumper dumper = new ClassFileDumper(location.toString());
dumper.dump("Main", contents);
- assertContents(location, "Main.class");
+ assertContents(location, "Main.aff06045a340cd62.class");
}
@Test
diff --git a/org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/ClassFileDumper.java b/org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/ClassFileDumper.java
index 84ac5d4c..4da99b7e 100644
--- a/org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/ClassFileDumper.java
+++ b/org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/ClassFileDumper.java
@@ -16,6 +16,8 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
+import org.jacoco.core.internal.data.CRC64;
+
/**
* Internal dumper for class files.
*/
@@ -62,7 +64,9 @@ class ClassFileDumper {
localname = name;
}
outputdir.mkdirs();
- final File file = new File(outputdir, localname + ".class");
+ final Long id = Long.valueOf(CRC64.checksum(contents));
+ final File file = new File(outputdir, String.format(
+ "%s.%016x.class", localname, id));
final OutputStream out = new FileOutputStream(file);
out.write(contents);
out.close();
diff --git a/org.jacoco.doc/docroot/doc/changes.html b/org.jacoco.doc/docroot/doc/changes.html
index 8a93d2d9..79e2521c 100644
--- a/org.jacoco.doc/docroot/doc/changes.html
+++ b/org.jacoco.doc/docroot/doc/changes.html
@@ -26,6 +26,8 @@
<code>inclbootstrapclasses</code> to also instrument classes from the
bootstrap class loader.
(GitHub <a href="https://github.com/jacoco/jacoco/issues/49">#49</a>).</li>
+ <li>Agent uses unique file names to dump class files.
+ (GitHub <a href="https://github.com/jacoco/jacoco/issues/225">#225</a>).</li>
</ul>
<h2>Release 0.7.1 (2014/05/08)</h2>