diff options
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> |