diff -Nru java-allocation-instrumenter-3.0.1/debian/changelog java-allocation-instrumenter-3.1.0/debian/changelog --- java-allocation-instrumenter-3.0.1/debian/changelog 2016-08-11 07:00:28.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/debian/changelog 2018-11-12 21:40:59.000000000 +0000 @@ -1,3 +1,24 @@ +java-allocation-instrumenter (3.1.0-2) unstable; urgency=medium + + * Team upload. + * Ignore the unused dependency on asm-xml (Closes: #913577) + * Fixed the build failure with Java 11 + * Fixed the Vcs-Git URL + + -- Emmanuel Bourg Mon, 12 Nov 2018 22:40:59 +0100 + +java-allocation-instrumenter (3.1.0-1) unstable; urgency=medium + + * Team upload. + * New upstream release + - Updated the build dependencies + * Standards-Version updated to 4.2.1 + * Switch to debhelper level 11 + * Removed the no longer used debian/orig-tar.sh script + * Use salsa.debian.org Vcs-* URLs + + -- Emmanuel Bourg Tue, 23 Oct 2018 16:38:18 +0200 + java-allocation-instrumenter (3.0.1-1) unstable; urgency=medium * New upstream release diff -Nru java-allocation-instrumenter-3.0.1/debian/compat java-allocation-instrumenter-3.1.0/debian/compat --- java-allocation-instrumenter-3.0.1/debian/compat 2016-08-11 07:00:28.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/debian/compat 2018-10-23 14:23:25.000000000 +0000 @@ -1 +1 @@ -9 +11 diff -Nru java-allocation-instrumenter-3.0.1/debian/control java-allocation-instrumenter-3.1.0/debian/control --- java-allocation-instrumenter-3.0.1/debian/control 2016-08-11 07:00:28.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/debian/control 2018-11-12 21:40:19.000000000 +0000 @@ -2,23 +2,28 @@ Section: java Priority: optional Maintainer: Debian Java maintainers -Uploaders: Tim Potter , - Kai-Chung Yan -Build-Depends: debhelper (>= 9), - default-jdk-doc, - default-jdk-headless | default-jdk, - javahelper, - junit, - libasm-java, - libguava-java, - libjarjar-maven-plugin-java, - libmaven-javadoc-plugin-java, - libmaven-source-plugin-java, - maven-debian-helper -Standards-Version: 3.9.8 +Uploaders: + Tim Potter , + Kai-Chung Yan +Build-Depends: + debhelper (>= 11), + default-jdk-doc, + default-jdk-headless | default-jdk, + javahelper, + junit, + libasm-java, + libbuild-helper-maven-plugin-java, + libguava-java, + libjarjar-maven-plugin-java, + libmaven-javadoc-plugin-java, + libmaven-source-plugin-java, + libmaven-shade-plugin-java, + libreplacer-java, + maven-debian-helper +Standards-Version: 4.2.1 +Vcs-Git: https://salsa.debian.org/java-team/java-allocation-instrumenter.git +Vcs-Browser: https://salsa.debian.org/java-team/java-allocation-instrumenter Homepage: https://github.com/google/allocation-instrumenter -Vcs-Git: https://://anonscm.debian.org/git/pkg-java/java-allocation-instrumenter.git -Vcs-Browser: https://anonscm.debian.org/cgit/pkg-java/java-allocation-instrumenter.git Package: libjava-allocation-instrumenter-java Architecture: all diff -Nru java-allocation-instrumenter-3.0.1/debian/libjava-allocation-instrumenter-java-doc.install java-allocation-instrumenter-3.1.0/debian/libjava-allocation-instrumenter-java-doc.install --- java-allocation-instrumenter-3.0.1/debian/libjava-allocation-instrumenter-java-doc.install 2016-08-11 07:00:28.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/debian/libjava-allocation-instrumenter-java-doc.install 2018-10-23 14:22:43.000000000 +0000 @@ -1 +1 @@ -README.md usr/share/doc/libjava-allocation-instrumenter-java \ No newline at end of file +README.md usr/share/doc/libjava-allocation-instrumenter-java diff -Nru java-allocation-instrumenter-3.0.1/debian/maven.ignoreRules java-allocation-instrumenter-3.1.0/debian/maven.ignoreRules --- java-allocation-instrumenter-3.0.1/debian/maven.ignoreRules 2016-08-11 07:00:28.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/debian/maven.ignoreRules 2018-11-12 20:15:40.000000000 +0000 @@ -1 +1,2 @@ -junit junit * * * * \ No newline at end of file +junit junit * * * * +org.ow2.asm asm-xml * * * * diff -Nru java-allocation-instrumenter-3.0.1/debian/patches/01-remove-generated-annotation.patch java-allocation-instrumenter-3.1.0/debian/patches/01-remove-generated-annotation.patch --- java-allocation-instrumenter-3.0.1/debian/patches/01-remove-generated-annotation.patch 1970-01-01 00:00:00.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/debian/patches/01-remove-generated-annotation.patch 2018-11-12 18:18:35.000000000 +0000 @@ -0,0 +1,21 @@ +Description: No longer use the @Generated annotation to build with Java 11 +Author: Emmanuel Bourg +Forwarded: no +--- a/src/main/java/com/google/monitoring/runtime/instrumentation/Bootstrap.java.in ++++ b/src/main/java/com/google/monitoring/runtime/instrumentation/Bootstrap.java.in +@@ -4,7 +4,6 @@ + import java.lang.reflect.Method; + import java.net.JarURLConnection; + import java.util.jar.JarFile; +-import javax.annotation.Generated; + + /** + * Add the agent to the bootclasspath before invoking premain(). +@@ -30,7 +29,6 @@ + *

This file is pre-processed to include the correct name of the class being used as a premain + * before being compiled and integrated into the agent. + */ +-@Generated(value = "GENERATOR") + public class CLASS_NAMEBootstrap { + public static void premain(String agentArgs, Instrumentation inst) { + try { diff -Nru java-allocation-instrumenter-3.0.1/debian/patches/series java-allocation-instrumenter-3.1.0/debian/patches/series --- java-allocation-instrumenter-3.0.1/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/debian/patches/series 2018-11-12 16:25:01.000000000 +0000 @@ -0,0 +1 @@ +01-remove-generated-annotation.patch diff -Nru java-allocation-instrumenter-3.0.1/debian/rules java-allocation-instrumenter-3.1.0/debian/rules --- java-allocation-instrumenter-3.0.1/debian/rules 2016-08-11 07:00:28.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/debian/rules 2018-10-23 14:23:25.000000000 +0000 @@ -4,11 +4,8 @@ export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8 %: - dh $@ --buildsystem=maven --with javahelper + dh $@ --with javahelper override_dh_auto_clean: dh_auto_clean $(RM) debian/maven.rules debian/maven.publishedRules debian/maven.cleanIgnoreRules - -get-orig-source: - uscan --download-current-version --force-download --rename diff -Nru java-allocation-instrumenter-3.0.1/pom.xml java-allocation-instrumenter-3.1.0/pom.xml --- java-allocation-instrumenter-3.0.1/pom.xml 2016-05-16 18:51:13.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/pom.xml 2017-11-27 20:45:56.000000000 +0000 @@ -28,7 +28,7 @@ com.google.code.java-allocation-instrumenter java-allocation-instrumenter jar - 3.0.1 + 3.1.0 java-allocation-instrumenter @@ -72,7 +72,7 @@ UTF-8 - 5.0.3 + 6.0 true @@ -110,7 +110,7 @@ com.google.guava guava - 18.0 + 23.5-android junit @@ -123,11 +123,11 @@ package - + org.apache.maven.plugins maven-compiler-plugin - 3.2 + 3.6.1 1.6 1.6 @@ -137,7 +137,7 @@ org.apache.maven.plugins maven-eclipse-plugin - 2.9 + 2.10 true true @@ -148,7 +148,7 @@ org.apache.maven.plugins maven-release-plugin - 2.5.1 + 2.5.3 -DenableCiProfile=true @@ -157,7 +157,7 @@ org.apache.maven.plugins maven-source-plugin - 2.4 + 3.0.1 attach-sources @@ -171,7 +171,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 2.10.1 + 2.10.4 attach-javadocs @@ -188,7 +188,109 @@ public - + + + com.google.code.maven-replacer-plugin + replacer + 1.5.3 + + + generate-sources + + replace + + + + + ${project.basedir}/src/main/java/com/google/monitoring/runtime/instrumentation/Bootstrap.java.in + ${project.build.directory}/generated-sources/java/com/google/monitoring/runtime/instrumentation/AllocationInstrumenterBootstrap.java + + + CLASS_NAME + AllocationInstrumenter + + + PACKAGE + com.google.monitoring.runtime.instrumentation + + + PATH_TO_CLASS + com/google/monitoring/runtime/instrumentation + + + PREMAIN_CLASS + com.google.monitoring.runtime.instrumentation.AllocationInstrumenter + + + GENERATOR + https://github.com/google/allocation-instrumenter/blob/master/pom.xml + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.0.0 + + + add-source + generate-sources + + add-source + + + + ${project.build.directory}/generated-sources/java/ + + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.1.0 + + + package + shade + + + + false + + + org.ow2.asm:asm + org.ow2.asm:asm-analysis + org.ow2.asm:asm-commons + org.ow2.asm:asm-tree + org.ow2.asm:asm-util + org.ow2.asm:asm-xml + com.google.guava:guava + + + + + *:* + + META-INF/module-info.class + + + + + + com.google.common. + com.google.monitoring.runtime.instrumentation.common. + + + org.objectweb.asm. + com.google.monitoring.runtime.instrumentation.asm. + + + + org.sonatype.plugins jarjar-maven-plugin @@ -201,24 +303,7 @@ jarjar - - org.ow2.asm:asm - org.ow2.asm:asm-analysis - org.ow2.asm:asm-commons - org.ow2.asm:asm-tree - org.ow2.asm:asm-util - org.ow2.asm:asm-xml - com.google.guava:guava - - - org.objectweb.asm.** - com.google.monitoring.runtime.instrumentation.asm.@1 - - - com.google.common.** - com.google.monitoring.runtime.instrumentation.common.@0 - com.google.monitoring.runtime.instrumentation.common.collect.ComputingCache com.google.monitoring.runtime.instrumentation.common.collect.ComputingConcurrentHashMap @@ -241,12 +326,11 @@ org.apache.maven.plugins maven-jar-plugin - 2.5 + 3.0.2 - ./${project.artifactId}-${project.version}.${project.packaging} - com.google.monitoring.runtime.instrumentation.AllocationInstrumenter + com.google.monitoring.runtime.instrumentation.AllocationInstrumenterBootstrap true true NotSuitableAsMain @@ -257,7 +341,7 @@ org.apache.maven.plugins maven-gpg-plugin - 1.4 + 1.6 sign-artifacts diff -Nru java-allocation-instrumenter-3.0.1/README.md java-allocation-instrumenter-3.1.0/README.md --- java-allocation-instrumenter-3.0.1/README.md 2016-05-16 18:51:13.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/README.md 2017-11-27 20:45:56.000000000 +0000 @@ -10,7 +10,7 @@ com.google.code.java-allocation-instrumenter java-allocation-instrumenter - 3.0 + 3.0.1 ``` @@ -50,6 +50,6 @@ [java.lang.instrument]: http://java.sun.com/javase/6/docs/api/java/lang/instrument/package-summary.html [ASM]: http://asm.ow2.org/ -[latest release]: https://github.com/google/allocation-instrumenter/releases/tag/java-allocation-instrumenter-3.0 -[Maven Central]: http://search.maven.org/#artifactdetails%7Ccom.google.code.java-allocation-instrumenter%7Cjava-allocation-instrumenter%7C3.0%7Cjar +[latest release]: https://github.com/google/allocation-instrumenter/releases/tag/java-allocation-instrumenter-3.0.1 +[Maven Central]: http://search.maven.org/#artifactdetails%7Ccom.google.code.java-allocation-instrumenter%7Cjava-allocation-instrumenter%7C3.0.1%7Cjar [Getting Started]: https://github.com/google/allocation-instrumenter/wiki diff -Nru java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/AllocationClassAdapter.java java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/AllocationClassAdapter.java --- java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/AllocationClassAdapter.java 2016-05-16 18:51:13.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/AllocationClassAdapter.java 2017-11-27 20:45:56.000000000 +0000 @@ -27,8 +27,6 @@ * A ClassVisitor that processes methods with a * AllocationMethodAdapter to instrument heap allocations. * - * @author jeremymanson@google.com (Jeremy Manson) - * @author fischman@google.com (Ami Fischman) (Original Author) */ class AllocationClassAdapter extends ClassVisitor { private final String recorderClass; @@ -36,7 +34,7 @@ public AllocationClassAdapter(ClassVisitor cv, String recorderClass, String recorderMethod) { - super(Opcodes.ASM5, cv); + super(Opcodes.ASM6, cv); this.recorderClass = recorderClass; this.recorderMethod = recorderMethod; } diff -Nru java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/AllocationInstrumenter.java java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/AllocationInstrumenter.java --- java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/AllocationInstrumenter.java 2016-05-16 18:51:13.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/AllocationInstrumenter.java 2017-11-27 20:45:56.000000000 +0000 @@ -36,8 +36,6 @@ * looks like it will be allocating heap memory allowing users to implement heap * profiling schemes. * - * @author Ami Fischman - * @author Jeremy Manson */ public class AllocationInstrumenter implements ClassFileTransformer { static final Logger logger = @@ -161,7 +159,7 @@ /** * Given the bytes representing a class, go through all the bytecode in it and - * instrument any occurences of new/newarray/anewarray/multianewarray with + * instrument any occurrences of new/newarray/anewarray/multianewarray with * pre- and post-allocation hooks. Even more fun, intercept calls to the * reflection API's Array.newInstance() and instrument those too. * diff -Nru java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/AllocationMethodAdapter.java java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/AllocationMethodAdapter.java --- java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/AllocationMethodAdapter.java 2016-05-16 18:51:13.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/AllocationMethodAdapter.java 2017-11-27 20:45:56.000000000 +0000 @@ -32,7 +32,6 @@ * to record the allocation being done for profiling. * Instruments bytecodes that allocate heap memory to call a recording hook. * - * @author Ami Fischman */ class AllocationMethodAdapter extends MethodVisitor { /** @@ -148,13 +147,6 @@ super.visitMethodInsn(Opcodes.INVOKEVIRTUAL, "java/lang/Class", "getName", "()Ljava/lang/String;", false); // -> stack: ... class classNameDotted - super.visitLdcInsn('.'); - // -> stack: ... class classNameDotted '.' - super.visitLdcInsn('/'); - // -> stack: ... class classNameDotted '.' '/' - super.visitMethodInsn(Opcodes.INVOKEVIRTUAL, "java/lang/String", - "replace", "(CC)Ljava/lang/String;", false); - // -> stack: ... class className } // Helper method to compute the product of an integer array and push it on @@ -551,14 +543,37 @@ // below we note the partial product of dimensions 1 to X-1 as productToX // (so productTo1 == 1 == no dimensions yet). We denote by aref0 the // array reference at the current nesting level (the containing aref's [0] - // element). If we hit a level whose arraylength is 0 there's no point - // continuing so we shortcut out. + // element). If we hit a level whose arraylength is 0 or whose + // reference is null, there's no point continuing, so we shortcut + // out. + + // This approach works pretty well when you create a new array with the + // newarray bytecodes. You can also create a new array by cloning an + // existing array; an existing multidimensional array might have had some + // of its [0] elements nulled out. We currently deal with this by bailing + // out, but arguably we should do something more principled (like calculate + // the size of the multidimensional array from scratch if you are using + // clone()). + // TODO(java-platform-team): Do something about modified multidimensional + // arrays and clone(). Label zeroDimension = new Label(); super.visitInsn(Opcodes.DUP); // -> stack: ... origaref aref0 super.visitLdcInsn(1); // -> stack: ... origaref aref0 productTo1 for (int i = 0; i < dimCount; ++i) { // pre: stack: ... origaref aref0 productToI super.visitInsn(Opcodes.SWAP); // -> stack: ... origaref productToI aref + super.visitInsn(Opcodes.DUP); + + Label nonNullDimension = new Label(); + // -> stack: ... origaref productToI aref aref + super.visitJumpInsn(Opcodes.IFNONNULL, nonNullDimension); + // -> stack: ... origaref productToI aref + super.visitInsn(Opcodes.SWAP); + // -> stack: ... origaref aref productToI + super.visitJumpInsn(Opcodes.GOTO, zeroDimension); + super.visitLabel(nonNullDimension); + + // -> stack: ... origaref productToI aref super.visitInsn(Opcodes.DUP_X1); // -> stack: ... origaref aref0 productToI aref super.visitInsn(Opcodes.ARRAYLENGTH); diff -Nru java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/AllocationRecorder.java java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/AllocationRecorder.java --- java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/AllocationRecorder.java 2016-05-16 18:51:13.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/AllocationRecorder.java 2017-11-27 20:45:56.000000000 +0000 @@ -30,8 +30,6 @@ * The logic for recording allocations, called from bytecode rewritten by * {@link AllocationInstrumenter}. * - * @author jeremymanson@google.com (Jeremy Manson) - * @author fischman@google.com (Ami Fischman) */ public class AllocationRecorder { static { @@ -233,6 +231,10 @@ // optional samplers. However, you don't need the optional samplers in // the common case, so I thought I'd save some space. + if (count >= 0) { + desc = desc.replace('.', '/'); + } + // Copy value into local variable to prevent NPE that occurs when // instrumentation field is set to null by this class's shutdown hook // after another thread passed the null check but has yet to call diff -Nru java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/Bootstrap.java.in java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/Bootstrap.java.in --- java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/Bootstrap.java.in 1970-01-01 00:00:00.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/Bootstrap.java.in 2017-11-27 20:45:56.000000000 +0000 @@ -0,0 +1,53 @@ +package PACKAGE; + +import java.lang.instrument.Instrumentation; +import java.lang.reflect.Method; +import java.net.JarURLConnection; +import java.util.jar.JarFile; +import javax.annotation.Generated; + +/** + * Add the agent to the bootclasspath before invoking premain(). + * + *

In order to rewrite classes that are loaded by the bootstrap class loader to point to + * agent-provided instrumentation, the agent needs to be loaded by the bootstrap class loader. + * + *

There are three ways of doing this. The first requires that we add "Boot-Class-Path: <JAR file + * name>" to the agent's manifest. That only works when we know the exact name of the output JAR. + * That's not the case in various environments. For example, Maven-released JARs often bake a + * version number into their JAR names. The second is to add the JAR to the bootclasspath on the + * command line, but that's awful, as well as unsupported in Java 9. + * + *

The third is to use Instrumentation#appendToBootstrapClassLoaderSearch, which works as + * advertised. We can dynamically determine the name of the JAR containing this class (i.e., the + * agent), and then add that JAR to the bootstrap class path. The problem with this approach is that + * the agent's premain class is loaded prior to our ability to call that function, so it can't do + * the things we need the agent to be in the bootstrap class path to do. One workaround for this is + * to create a class that does nothing but call appendToBootstrapClassLoaderSearch on the agent's + * JAR file, and then calls into the real premain function (like the one below). Rather than + * replicating this class for every agent we might write, we use generated code. + * + *

This file is pre-processed to include the correct name of the class being used as a premain + * before being compiled and integrated into the agent. + */ +@Generated(value = "GENERATOR") +public class CLASS_NAMEBootstrap { + public static void premain(String agentArgs, Instrumentation inst) { + try { + // First, find the JAR file containing the agent and append it to the bootclasspath. + String resourceName = "PATH_TO_CLASS"; + java.net.URL url = ClassLoader.getSystemResource(resourceName); + JarFile jarfile = ((JarURLConnection) url.openConnection()).getJarFile(); + inst.appendToBootstrapClassLoaderSearch(jarfile); + + // Now invoke the real premain. We do not require that the premain class be available at + // compile time. Some agents bake it into the main JAR file. We use reflection to + // invoke it. + Class premainClass = Class.forName("PREMAIN_CLASS"); + Method pm = premainClass.getDeclaredMethod("premain", String.class, Instrumentation.class); + pm.invoke(null, agentArgs, inst); + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} diff -Nru java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/ConstructorCallback.java java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/ConstructorCallback.java --- java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/ConstructorCallback.java 2016-05-16 18:51:13.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/ConstructorCallback.java 2017-11-27 20:45:56.000000000 +0000 @@ -27,7 +27,6 @@ * * @param The class that will be sampled with this ConstructorCallback * - * @author Jeremy Manson */ public interface ConstructorCallback { /** diff -Nru java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/ConstructorInstrumenter.java java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/ConstructorInstrumenter.java --- java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/ConstructorInstrumenter.java 2016-05-16 18:51:13.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/ConstructorInstrumenter.java 2017-11-27 20:45:56.000000000 +0000 @@ -39,7 +39,6 @@ * by a javaagent; end-users will want to add {@link ConstructorCallback}s by * invoking {@link #instrumentClass(Class, ConstructorCallback)}. * - * @author Jeremy Manson */ public class ConstructorInstrumenter implements ClassFileTransformer { // Implementation details: uses the java.lang.instrument API to @@ -161,7 +160,7 @@ public LocalVariablesSorter lvs = null; Class cl; ConstructorMethodAdapter(MethodVisitor mv, Class cl) { - super(Opcodes.ASM5, mv); + super(Opcodes.ASM6, mv); this.cl = cl; } @@ -227,7 +226,7 @@ static class ConstructorClassAdapter extends ClassVisitor { Class cl; public ConstructorClassAdapter(ClassVisitor cv, Class cl) { - super(Opcodes.ASM5, cv); + super(Opcodes.ASM6, cv); this.cl = cl; } diff -Nru java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/Sampler.java java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/Sampler.java --- java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/Sampler.java 2016-05-16 18:51:13.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/Sampler.java 2017-11-27 20:45:56.000000000 +0000 @@ -19,7 +19,6 @@ /** * This interface describes a function that is used to sample an allocation. * - * @author jeremymanson@google.com (Jeremy Manson) */ public interface Sampler { /** diff -Nru java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/StaticClassWriter.java java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/StaticClassWriter.java --- java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/StaticClassWriter.java 2016-05-16 18:51:13.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/StaticClassWriter.java 2017-11-27 20:45:56.000000000 +0000 @@ -63,7 +63,6 @@ * the same logic in a subclass. The code here has been slightly * cleaned up for readability. * - * @author jeremymanson@google.com (Jeremy Manson) */ class StaticClassWriter extends ClassWriter { diff -Nru java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/VerifyingClassAdapter.java java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/VerifyingClassAdapter.java --- java-allocation-instrumenter-3.0.1/src/main/java/com/google/monitoring/runtime/instrumentation/VerifyingClassAdapter.java 2016-05-16 18:51:13.000000000 +0000 +++ java-allocation-instrumenter-3.1.0/src/main/java/com/google/monitoring/runtime/instrumentation/VerifyingClassAdapter.java 2017-11-27 20:45:56.000000000 +0000 @@ -33,7 +33,6 @@ * Currently, it only checks to see if the methods are of the correct length * for Java methods (<64K). * - * @author jeremymanson@google.com (Jeremy Manson) */ public class VerifyingClassAdapter extends ClassVisitor { private static final Logger logger = @@ -59,7 +58,7 @@ */ public VerifyingClassAdapter(ClassWriter cw, byte [] original, String className) { - super(Opcodes.ASM5, cw); + super(Opcodes.ASM6, cw); state = State.UNKNOWN; message = "The class has not finished being examined"; this.cw = cw;