[btrace~hg:436] #BTRACE-83: Updating ASM to ver. 4.0

  • From: j.bachorik@kenai.com
  • To: commits@btrace.kenai.com
  • Subject: [btrace~hg:436] #BTRACE-83: Updating ASM to ver. 4.0
  • Date: Sun, 15 Jan 2012 19:57:17 +0000

Project:    btrace
Repository: hg
Revision:   436
Author:     j.bachorik
Date:       2012-01-15 19:55:06 UTC
Link:       

Log Message:
------------
#BTRACE-83: Updating ASM to ver. 4.0


Revisions:
----------
436


Modified Paths:
---------------
lib/README.txt
make/build.properties
make/build.xml
nbproject/ide-file-targets.xml
nbproject/project.xml
src/share/classes/com/sun/btrace/agent/Client.java
src/share/classes/com/sun/btrace/client/Client.java
src/share/classes/com/sun/btrace/compiler/Postprocessor.java
src/share/classes/com/sun/btrace/runtime/ArrayAccessInstrumentor.java
src/share/classes/com/sun/btrace/runtime/ArrayAllocInstrumentor.java
src/share/classes/com/sun/btrace/runtime/CatchInstrumentor.java
src/share/classes/com/sun/btrace/runtime/ClassFilter.java
src/share/classes/com/sun/btrace/runtime/ClassRenamer.java
src/share/classes/com/sun/btrace/runtime/ClinitInjector.java
src/share/classes/com/sun/btrace/runtime/ErrorReturnInstrumentor.java
src/share/classes/com/sun/btrace/runtime/FieldAccessInstrumentor.java
src/share/classes/com/sun/btrace/runtime/Instrumentor.java
src/share/classes/com/sun/btrace/runtime/LineNumberInstrumentor.java
src/share/classes/com/sun/btrace/runtime/MethodCallInstrumentor.java
src/share/classes/com/sun/btrace/runtime/MethodCopier.java
src/share/classes/com/sun/btrace/runtime/MethodEntryExitInstrumentor.java
src/share/classes/com/sun/btrace/runtime/MethodEntryInstrumentor.java
src/share/classes/com/sun/btrace/runtime/MethodInstrumentor.java
src/share/classes/com/sun/btrace/runtime/MethodRemover.java
src/share/classes/com/sun/btrace/runtime/MethodReturnInstrumentor.java
src/share/classes/com/sun/btrace/runtime/MethodVerifier.java
src/share/classes/com/sun/btrace/runtime/ObjectAllocInstrumentor.java
src/share/classes/com/sun/btrace/runtime/Preprocessor.java
src/share/classes/com/sun/btrace/runtime/SynchronizedInstrumentor.java
src/share/classes/com/sun/btrace/runtime/ThrowInstrumentor.java
src/share/classes/com/sun/btrace/runtime/TypeCheckInstrumentor.java
src/share/classes/com/sun/btrace/runtime/Verifier.java
src/share/classes/com/sun/btrace/util/LocalVariablesSorter.java
src/share/classes/com/sun/btrace/util/TimeStampGenerator.java


Added Paths:
------------
lib/btrace-asm-4.0.jar
test-lib/asm-4.0.jar
test-lib/asm-util-4.0.jar


Diffs:
------
diff -r b3a776b45df6 -r d31d25ebd48b lib/README.txt
--- a/lib/README.txt    Tue Oct 18 13:29:31 2011 +0200
+++ b/lib/README.txt    Sun Jan 15 20:55:06 2012 +0100
@@ -1,5 +1,5 @@
-This directory contains btrace-asm-3.3.jar. This file was
-generated from "asm-3.3.jar" using the "JarJar" tool (please
+This directory contains btrace-asm-4.0.jar. This file was
+generated from "asm-4.0.jar" using the "JarJar" tool (please
 see http://code.google.com/p/jarjar/) using the following rule:
 
 

diff -r b3a776b45df6 -r d31d25ebd48b lib/btrace-asm-3.3.jar
Binary file lib/btrace-asm-3.3.jar has changed

diff -r b3a776b45df6 -r d31d25ebd48b lib/btrace-asm-4.0.jar
Binary file lib/btrace-asm-4.0.jar has changed

diff -r b3a776b45df6 -r d31d25ebd48b make/build.properties
--- a/make/build.properties     Tue Oct 18 13:29:31 2011 +0200
+++ b/make/build.properties     Sun Jan 15 20:55:06 2012 +0100
@@ -22,5 +22,5 @@
 dist.dir=${basedir}/../dist
 junit.jar=${basedir}/../test-lib/junit-4.6.jar
 release.version=1.2.1
-asm.version=3.3
+asm.version=4.0
 maven.repo.local=../build/maven

diff -r b3a776b45df6 -r d31d25ebd48b make/build.xml
--- a/make/build.xml    Tue Oct 18 13:29:31 2011 +0200
+++ b/make/build.xml    Sun Jan 15 20:55:06 2012 +0100
@@ -11,7 +11,7 @@
         classpath="/usr/share/lib/java/dtrace.jar"
         property="libdtrace.jni.available"/>
         <path id="javac.classpath">
-            <pathelement path="${lib.dir}/btrace-asm-3.3.jar" />
+            <pathelement path="${lib.dir}/btrace-asm-4.0.jar" />
             <pathelement path="${java.home}/../lib/tools.jar" />
             <pathelement path="/usr/share/lib/java/dtrace.jar" />
         </path>
@@ -181,7 +181,7 @@
         </javac>
     </target>
     <target name="jar" depends="compile" description="Creates deployment 
bundles">
-        <unjar src="${lib.dir}/btrace-asm-3.3.jar" dest="${classes.dir}"/>
+        <unjar src="${lib.dir}/btrace-asm-4.0.jar" dest="${classes.dir}"/>
         <jar jarfile="${agent.jar}"         
          basedir="${classes.dir}"
          manifest="${share.src.dir}/META-INF/agent-manifest.mf"

diff -r b3a776b45df6 -r d31d25ebd48b nbproject/ide-file-targets.xml
--- a/nbproject/ide-file-targets.xml    Tue Oct 18 13:29:31 2011 +0200
+++ b/nbproject/ide-file-targets.xml    Sun Jan 15 20:55:06 2012 +0100
@@ -8,7 +8,7 @@
         <fail unless="files">Must set property 'files'</fail>
         <mkdir dir="build/test"/>
         <javac destdir="build/test" includes="${files}" source="1.5" 
srcdir="src/test" debug="true" debuglevel="lines,vars,source">
-            <classpath 
path="test-lib/junit-4.6.jar;test-lib/asm-3.3.jar;test-lib/asm-util-3.3.jar;test-lib/ant-junit.jar;build/classes;build/test"/>
+            <classpath 
path="test-lib/junit-4.6.jar;test-lib/asm-4.0.jar;test-lib/asm-util-4.0.jar;test-lib/ant-junit.jar;build/classes;build/test"/>
         </javac>
     </target>
     <target name="compile-selected-btrace-files">
@@ -25,14 +25,14 @@
         <fail unless="files">Must set property 'files'</fail>
         <mkdir dir="build/classes"/>
         <javac destdir="build/classes" includes="${files}" source="1.5" 
srcdir="src/share/classes" debug="true" debuglevel="lines,vars,source">
-            <classpath 
path="lib/btrace-asm-3.3.jar:/opt/java/default/lib/tools.jar"/>
+            <classpath 
path="lib/btrace-asm-4.0.jar:/opt/java/default/lib/tools.jar"/>
         </javac>
     </target>
 
     <target name="run-selected-file-in-classes" description="Run Single 
File">
       <fail unless="run.class">Must set property 'classname'</fail>
       <java classname="${run.class}">
-         <classpath path="build/classes:lib/btrace-asm-3.3.jar"/>
+         <classpath path="build/classes:lib/btrace-asm-4.0.jar"/>
       </java>
    </target>
 
@@ -40,7 +40,7 @@
         <fail unless="run.class">Must set property 'run.class'</fail>
         <path id="cp">
             <pathelement
-path="test-lib/junit-4.6.jar;test-lib/asm-3.3.jar;test-lib/asm-util-3.3.jar;test-lib/ant-junit.jar;"/>
+path="test-lib/junit-4.6.jar;test-lib/asm-4.0.jar;test-lib/asm-util-4.0.jar;test-lib/ant-junit.jar;"/>
             <pathelement path="build/test"/>
             <pathelement path="build/classes"/>
         </path>
@@ -61,7 +61,7 @@
         <fail unless="debug.class">Must set property 'run.class'</fail>
         <path id="cp">
             <pathelement
-path="test-lib/junit-4.6.jar;test-lib/asm-3.3.jar;test-lib/asm-util-3.3.jar;test-lib/ant-junit.jar;"/>
+path="test-lib/junit-4.6.jar;test-lib/asm-4.0.jar;test-lib/asm-util-4.0.jar;test-lib/ant-junit.jar;"/>
             <pathelement path="build/test"/>
             <pathelement path="build/classes"/>
         </path>

diff -r b3a776b45df6 -r d31d25ebd48b nbproject/project.xml
--- a/nbproject/project.xml     Tue Oct 18 13:29:31 2011 +0200
+++ b/nbproject/project.xml     Sun Jan 15 20:55:06 2012 +0100
@@ -213,19 +213,19 @@
         <java-data 
xmlns="http://www.netbeans.org/ns/freeform-project-java/2";>
             <compilation-unit>
                 <package-root>src/share/classes</package-root>
-                <classpath 
mode="compile">lib/btrace-asm-3.3.jar:/opt/java/default/lib/tools.jar</classpath>
+                <classpath 
mode="compile">lib/btrace-asm-4.0.jar:/opt/java/default/lib/tools.jar</classpath>
                 <built-to>build/classes</built-to>
                 <source-level>1.5</source-level>
             </compilation-unit>
             <compilation-unit>
                 <package-root>src/solaris/classes</package-root>
-                <classpath 
mode="compile">lib/btrace-asm-3.3.jar:/opt/java/default/lib/tools.jar</classpath>
+                <classpath 
mode="compile">lib/btrace-asm-4.0.jar:/opt/java/default/lib/tools.jar</classpath>
                 <source-level>1.5</source-level>
             </compilation-unit>
             <compilation-unit>
                 <package-root>src/test</package-root>
                 <unit-tests/>
-                <classpath 
mode="compile">build/classes:test-lib/asm-3.3.jar:lib/btrace-asm-3.3.jar:test-lib/asm-util-3.1.jar:/opt/junit4.8.2/junit-4.8.2.jar</classpath>
+                <classpath 
mode="compile">build/classes:test-lib/asm-4.0.jar:lib/btrace-asm-4.0.jar:test-lib/asm-util-4.0.jar:/opt/junit4.8.2/junit-4.8.2.jar</classpath>
                 <built-to>build/test</built-to>
                 <source-level>1.5</source-level>
             </compilation-unit>

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/agent/Client.java
--- a/src/share/classes/com/sun/btrace/agent/Client.java        Tue Oct 18 
13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/agent/Client.java        Sun Jan 15 
20:55:06 2012 +0100
@@ -41,6 +41,7 @@
 import com.sun.btrace.PerfReader;
 import com.sun.btrace.comm.RetransformClassNotification;
 import com.sun.btrace.comm.RetransformationStartNotification;
+import com.sun.btrace.org.objectweb.asm.Opcodes;
 import com.sun.btrace.runtime.ClassFilter;
 import com.sun.btrace.runtime.ClassRenamer;
 import com.sun.btrace.runtime.ClinitInjector;
@@ -53,7 +54,6 @@
 import com.sun.btrace.runtime.OnMethod;
 import com.sun.btrace.runtime.OnProbe;
 import com.sun.btrace.runtime.RunnableGeneratorImpl;
-import com.sun.btrace.util.NullVisitor;
 import java.lang.instrument.ClassFileTransformer;
 import java.lang.instrument.IllegalClassFormatException;
 import java.lang.instrument.Instrumentation;
@@ -386,7 +386,7 @@
 
     private void verify(byte[] buf) {
         ClassReader reader = new ClassReader(buf);
-        Verifier verifier = new Verifier(new NullVisitor(), Main.isUnsafe());
+        Verifier verifier = new Verifier(new ClassVisitor(Opcodes.ASM4) {}, 
Main.isUnsafe());
         if (debug) Main.debugPrint("verifying BTrace class");
         InstrumentUtils.accept(reader, verifier);
         className = verifier.getClassName().replace('/', '.');

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/client/Client.java
--- a/src/share/classes/com/sun/btrace/client/Client.java       Tue Oct 18 
13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/client/Client.java       Sun Jan 15 
20:55:06 2012 +0100
@@ -46,11 +46,8 @@
 import com.sun.btrace.comm.InstrumentCommand;
 import com.sun.btrace.comm.MessageCommand;
 import com.sun.btrace.comm.WireIO;
-import com.sun.btrace.util.NullVisitor;
+import com.sun.btrace.org.objectweb.asm.*;
 import com.sun.tools.attach.VirtualMachine;
-import com.sun.btrace.org.objectweb.asm.ClassReader;
-import com.sun.btrace.org.objectweb.asm.AnnotationVisitor;
-import com.sun.btrace.org.objectweb.asm.Type;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
@@ -508,12 +505,12 @@
     private Object getDTraceSource(final String fileName, byte[] code) {
         ClassReader reader = new ClassReader(code);
         final Object[] result = new Object[1];
-        reader.accept(new NullVisitor() {
+        reader.accept(new ClassVisitor(Opcodes.ASM4) {
 
             @Override
             public AnnotationVisitor visitAnnotation(String desc, boolean 
vis) {
                 if (desc.equals(DTRACE_DESC)) {
-                    return new NullVisitor() {
+                    return new AnnotationVisitor(Opcodes.ASM4) {
 
                         @Override
                         public void visit(String name, Object value) {
@@ -523,7 +520,7 @@
                         }
                     };
                 } else if (desc.equals(DTRACE_REF_DESC)) {
-                    return new NullVisitor() {
+                    return new AnnotationVisitor(Opcodes.ASM4) {
 
                         @Override
                         public void visit(String name, Object value) {

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/compiler/Postprocessor.java
--- a/src/share/classes/com/sun/btrace/compiler/Postprocessor.java      Tue 
Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/compiler/Postprocessor.java      Sun 
Jan 15 20:55:06 2012 +0100
@@ -27,16 +27,12 @@
 
 import com.sun.btrace.org.objectweb.asm.AnnotationVisitor;
 import com.sun.btrace.org.objectweb.asm.Attribute;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
 import com.sun.btrace.org.objectweb.asm.ClassVisitor;
 import com.sun.btrace.org.objectweb.asm.FieldVisitor;
 import com.sun.btrace.org.objectweb.asm.Label;
-import com.sun.btrace.org.objectweb.asm.MethodAdapter;
 import com.sun.btrace.org.objectweb.asm.MethodVisitor;
 import com.sun.btrace.org.objectweb.asm.Opcodes;
 import com.sun.btrace.org.objectweb.asm.Type;
-import com.sun.btrace.util.NullVisitor;
-import com.sun.org.apache.bcel.internal.generic.BASTORE;
 import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -48,13 +44,13 @@
  *
  * @author Jaroslav Bachorik
  */
-public class Postprocessor extends ClassAdapter {
+public class Postprocessor extends ClassVisitor {
     private List<FieldDescriptor> fields = new ArrayList<FieldDescriptor>();
     private boolean shortSyntax = false;
     private String className = "";
 
     public Postprocessor(ClassVisitor cv) {
-        super(cv);
+        super(Opcodes.ASM4, cv);
     }
 
     @Override
@@ -96,10 +92,11 @@
         if (!shortSyntax) return super.visitField(access, name, desc, 
signature, value);
         
         final List<Attribute> attrs = new ArrayList<Attribute>();
-        return new FieldVisitor() {
+        return new FieldVisitor(Opcodes.ASM4) {
 
             public AnnotationVisitor visitAnnotation(String string, boolean 
bln) {
-                return new NullVisitor();
+                return new AnnotationVisitor(Opcodes.ASM4){
+                };
             }
 
             public void visitAttribute(Attribute atrbt) {
@@ -145,14 +142,14 @@
         }
     }
 
-    private class MethodConvertor extends MethodAdapter {
+    private class MethodConvertor extends MethodVisitor {
         private Deque<Boolean> simulatedStack = new ArrayDeque<Boolean>();
         private int localVarOffset = 0;
         private boolean isConstructor;
         private boolean copyEnabled = false;
 
         public MethodConvertor(int localVarOffset, boolean isConstructor, 
MethodVisitor mv) {
-            super(mv);
+            super(Opcodes.ASM4, mv);
             this.localVarOffset = localVarOffset;
             this.isConstructor = isConstructor;
             this.copyEnabled = !isConstructor; // copy is enabled by default 
for all methods except constructor
@@ -604,12 +601,12 @@
 
         @Override
         public AnnotationVisitor visitAnnotation(String string, boolean bln) 
{
-            return copyEnabled ? super.visitAnnotation(string, bln) : new 
NullVisitor();
+            return copyEnabled ? super.visitAnnotation(string, bln) : new 
AnnotationVisitor(Opcodes.ASM4){};
         }
 
         @Override
         public AnnotationVisitor visitAnnotationDefault() {
-            return copyEnabled ? super.visitAnnotationDefault() : new 
NullVisitor();
+            return copyEnabled ? super.visitAnnotationDefault() : new 
AnnotationVisitor(Opcodes.ASM4){};
         }
 
         @Override
@@ -632,7 +629,7 @@
 
         @Override
         public AnnotationVisitor visitParameterAnnotation(int i, String 
string, boolean bln) {
-            return copyEnabled ? super.visitParameterAnnotation(i, string, 
bln) : new NullVisitor();
+            return copyEnabled ? super.visitParameterAnnotation(i, string, 
bln) : new AnnotationVisitor(Opcodes.ASM4){};
         }
 
         @Override

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/ArrayAccessInstrumentor.java
--- a/src/share/classes/com/sun/btrace/runtime/ArrayAccessInstrumentor.java   
  Tue Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/ArrayAccessInstrumentor.java   
  Sun Jan 15 20:55:06 2012 +0100
@@ -28,10 +28,11 @@
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
 import com.sun.btrace.org.objectweb.asm.ClassReader;
+import com.sun.btrace.org.objectweb.asm.ClassVisitor;
 import com.sun.btrace.org.objectweb.asm.ClassWriter;
 import com.sun.btrace.org.objectweb.asm.MethodVisitor;
+import com.sun.btrace.org.objectweb.asm.Opcodes;
 import static com.sun.btrace.org.objectweb.asm.Opcodes.*;
 
 /**
@@ -99,7 +100,7 @@
         FileOutputStream fos = new FileOutputStream(args[0] + ".class");
         ClassWriter writer = InstrumentUtils.newClassWriter();
         InstrumentUtils.accept(reader, 
-            new ClassAdapter(writer) {
+            new ClassVisitor(Opcodes.ASM4, writer) {
                  public MethodVisitor visitMethod(int access, String name, 
String desc, 
                      String signature, String[] exceptions) {
                      MethodVisitor mv = super.visitMethod(access, name, 
desc, 

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/ArrayAllocInstrumentor.java
--- a/src/share/classes/com/sun/btrace/runtime/ArrayAllocInstrumentor.java    
  Tue Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/ArrayAllocInstrumentor.java    
  Sun Jan 15 20:55:06 2012 +0100
@@ -28,10 +28,11 @@
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
 import com.sun.btrace.org.objectweb.asm.ClassReader;
+import com.sun.btrace.org.objectweb.asm.ClassVisitor;
 import com.sun.btrace.org.objectweb.asm.ClassWriter;
 import com.sun.btrace.org.objectweb.asm.MethodVisitor;
+import com.sun.btrace.org.objectweb.asm.Opcodes;
 import static com.sun.btrace.org.objectweb.asm.Opcodes.*;
 
 /**
@@ -106,7 +107,7 @@
         FileOutputStream fos = new FileOutputStream(args[0] + ".class");
         ClassWriter writer = InstrumentUtils.newClassWriter();
         InstrumentUtils.accept(reader,
-            new ClassAdapter(writer) {
+            new ClassVisitor(Opcodes.ASM4, writer) {
                  public MethodVisitor visitMethod(int access, String name, 
String desc, 
                      String signature, String[] exceptions) {
                      MethodVisitor mv = super.visitMethod(access, name, 
desc, 

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/CatchInstrumentor.java
--- a/src/share/classes/com/sun/btrace/runtime/CatchInstrumentor.java   Tue 
Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/CatchInstrumentor.java   Sun 
Jan 15 20:55:06 2012 +0100
@@ -30,11 +30,12 @@
 import java.io.FileOutputStream;
 import java.util.Map;
 import java.util.HashMap;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
 import com.sun.btrace.org.objectweb.asm.ClassReader;
+import com.sun.btrace.org.objectweb.asm.ClassVisitor;
 import com.sun.btrace.org.objectweb.asm.ClassWriter;
 import com.sun.btrace.org.objectweb.asm.Label;
 import com.sun.btrace.org.objectweb.asm.MethodVisitor;
+import com.sun.btrace.org.objectweb.asm.Opcodes;
 
 /**
  * This visitor helps in inserting code whenever an exception 
@@ -84,7 +85,7 @@
         FileOutputStream fos = new FileOutputStream(args[0] + ".class");
         ClassWriter writer = InstrumentUtils.newClassWriter();
         InstrumentUtils.accept(reader, 
-            new ClassAdapter(writer) {
+            new ClassVisitor(Opcodes.ASM4, writer) {
                  public MethodVisitor visitMethod(int access, String name, 
String desc, 
                      String signature, String[] exceptions) {
                      MethodVisitor mv = super.visitMethod(access, name, 
desc, 

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/ClassFilter.java
--- a/src/share/classes/com/sun/btrace/runtime/ClassFilter.java Tue Oct 18 
13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/ClassFilter.java Sun Jan 15 
20:55:06 2012 +0100
@@ -30,7 +30,6 @@
 import java.util.regex.Pattern;
 import static com.sun.btrace.org.objectweb.asm.Opcodes.ACC_INTERFACE;
 import static com.sun.btrace.runtime.Constants.*;
-import com.sun.btrace.util.NullVisitor;
 import com.sun.btrace.org.objectweb.asm.AnnotationVisitor;
 import com.sun.btrace.org.objectweb.asm.Attribute;
 import com.sun.btrace.org.objectweb.asm.ClassReader;
@@ -39,6 +38,7 @@
 import com.sun.btrace.org.objectweb.asm.MethodVisitor;
 import com.sun.btrace.org.objectweb.asm.Type;
 import com.sun.btrace.annotations.BTrace;
+import com.sun.btrace.org.objectweb.asm.Opcodes;
 import java.util.regex.PatternSyntaxException;
 
 /**
@@ -62,7 +62,6 @@
     static {
         CheckingVisitor.class.getClass();
         ClassReader.class.getClass();
-        NullVisitor.class.getClass();
         AnnotationVisitor.class.getClass();
         FieldVisitor.class.getClass();
         MethodVisitor.class.getClass();
@@ -158,11 +157,15 @@
         }
     }
 
-    private class CheckingVisitor implements ClassVisitor {
+    private class CheckingVisitor extends ClassVisitor {
 
         private boolean isInterface;
         private boolean isCandidate;
-        private NullVisitor nullVisitor = new NullVisitor();
+        private AnnotationVisitor nullAnnotationVisitor = new 
AnnotationVisitor(Opcodes.ASM4) {};
+
+        public CheckingVisitor() {
+            super(Opcodes.ASM4);
+        }
 
         boolean isCandidate() {
             return isCandidate;
@@ -206,14 +209,14 @@
 
         public AnnotationVisitor visitAnnotation(String desc, boolean 
visible) {
             if (isInterface) {
-                return nullVisitor;
+                return nullAnnotationVisitor;
             }
 
             if (BTRACE_DESC.equals(desc)) {
                 // ignore classes annotated with @BTrace -
                 // we don't want to instrument tracing classes!
                 isCandidate = false;
-                return nullVisitor;
+                return nullAnnotationVisitor;
             }
 
             if (!isCandidate) {
@@ -221,18 +224,18 @@
                 for (String name : annotationClasses) {
                     if (annoName.equals(name)) {
                         isCandidate = true;
-                        return nullVisitor;
+                        return nullAnnotationVisitor;
                     }
                 }
                 for (Pattern pat : annotationClassPatterns) {
                     if (pat.matcher(annoName).matches()) {
                         isCandidate = true;
-                        return nullVisitor;
+                        return nullAnnotationVisitor;
                     }
                 }
             }
 
-            return nullVisitor;
+            return nullAnnotationVisitor;
         }
 
         public void visitAttribute(Attribute attr) {

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/ClassRenamer.java
--- a/src/share/classes/com/sun/btrace/runtime/ClassRenamer.java        Tue 
Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/ClassRenamer.java        Sun 
Jan 15 20:55:06 2012 +0100
@@ -28,13 +28,11 @@
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
 import com.sun.btrace.org.objectweb.asm.ClassReader;
 import com.sun.btrace.org.objectweb.asm.ClassVisitor;
 import com.sun.btrace.org.objectweb.asm.ClassWriter;
 import com.sun.btrace.org.objectweb.asm.FieldVisitor;
 import com.sun.btrace.org.objectweb.asm.Label;
-import com.sun.btrace.org.objectweb.asm.MethodAdapter;
 import com.sun.btrace.org.objectweb.asm.MethodVisitor;
 import com.sun.btrace.org.objectweb.asm.Type;
 import static com.sun.btrace.org.objectweb.asm.Opcodes.*;
@@ -48,14 +46,14 @@
  *
  * @author A. Sundararajan
  */
-public class ClassRenamer extends ClassAdapter {
+public class ClassRenamer extends ClassVisitor {
     private String oldName;
     private String newName;
     private String oldNameDesc;
     private String newNameDesc;
 
     public ClassRenamer(String newName, ClassVisitor visitor) {  
-        super(visitor);
+        super(ASM4, visitor);
         newName = newName.replace('.', '/');
         this.newName = newName;
         this.newNameDesc = "L" + newName + ";";
@@ -89,7 +87,7 @@
         desc = desc.replace(oldNameDesc, newNameDesc);
         MethodVisitor adaptee = super.visitMethod(access, name, 
                                    desc, signature, exceptions);
-        return new MethodAdapter(adaptee) {
+        return new MethodVisitor(ASM4, adaptee) {
             public void visitFieldInsn(int opcode,
                           String owner,
                           String name,

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/ClinitInjector.java
--- a/src/share/classes/com/sun/btrace/runtime/ClinitInjector.java      Tue 
Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/ClinitInjector.java      Sun 
Jan 15 20:55:06 2012 +0100
@@ -25,9 +25,7 @@
 
 package com.sun.btrace.runtime;
 
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
 import com.sun.btrace.org.objectweb.asm.ClassVisitor;
-import com.sun.btrace.org.objectweb.asm.MethodAdapter;
 import com.sun.btrace.org.objectweb.asm.MethodVisitor;
 import com.sun.btrace.org.objectweb.asm.Opcodes;
 import com.sun.btrace.org.objectweb.asm.Type;
@@ -37,7 +35,7 @@
  * BTrace class retransformation upon invoking its static initializer.
  * @author Jaroslav Bachorik
  */
-public class ClinitInjector extends ClassAdapter {
+public class ClinitInjector extends ClassVisitor {
     private static String CLINIT = "<clinit>";
     
     private boolean clinitFound = false;
@@ -46,7 +44,7 @@
     private final String cname;
     
     public ClinitInjector(ClassVisitor cv, String runtime, String cname) {
-        super(cv);
+        super(Opcodes.ASM4, cv);
         this.runtime = runtime;
         this.cname = cname;
     }
@@ -70,7 +68,7 @@
     public MethodVisitor visitMethod(int access, String name, String desc, 
String signature, String[] exceptions) {
         MethodVisitor visitor = super.visitMethod(access, name, desc, 
signature, exceptions);
         if (CLINIT.equals(name)) {
-            visitor = new MethodAdapter(visitor) {
+            visitor = new MethodVisitor(Opcodes.ASM4, visitor) {
                 private boolean exitFound = false;
                 private int requiredStack = 0;
                 @Override

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/ErrorReturnInstrumentor.java
--- a/src/share/classes/com/sun/btrace/runtime/ErrorReturnInstrumentor.java   
  Tue Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/ErrorReturnInstrumentor.java   
  Sun Jan 15 20:55:06 2012 +0100
@@ -28,11 +28,12 @@
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
 import com.sun.btrace.org.objectweb.asm.ClassReader;
+import com.sun.btrace.org.objectweb.asm.ClassVisitor;
 import com.sun.btrace.org.objectweb.asm.ClassWriter;
 import com.sun.btrace.org.objectweb.asm.Label;
 import com.sun.btrace.org.objectweb.asm.MethodVisitor;
+import com.sun.btrace.org.objectweb.asm.Opcodes;
 import static com.sun.btrace.org.objectweb.asm.Opcodes.*;
 import static com.sun.btrace.runtime.Constants.*;
 
@@ -84,7 +85,7 @@
         FileOutputStream fos = new FileOutputStream(args[0] + ".class");
         ClassWriter writer = InstrumentUtils.newClassWriter();
         InstrumentUtils.accept(reader,
-            new ClassAdapter(writer) {
+            new ClassVisitor(Opcodes.ASM4, writer) {
                  public MethodVisitor visitMethod(int access, String name, 
String desc, 
                      String signature, String[] exceptions) {
                      MethodVisitor mv = super.visitMethod(access, name, 
desc, 

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/FieldAccessInstrumentor.java
--- a/src/share/classes/com/sun/btrace/runtime/FieldAccessInstrumentor.java   
  Tue Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/FieldAccessInstrumentor.java   
  Sun Jan 15 20:55:06 2012 +0100
@@ -28,10 +28,11 @@
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
 import com.sun.btrace.org.objectweb.asm.ClassReader;
+import com.sun.btrace.org.objectweb.asm.ClassVisitor;
 import com.sun.btrace.org.objectweb.asm.ClassWriter;
 import com.sun.btrace.org.objectweb.asm.MethodVisitor;
+import com.sun.btrace.org.objectweb.asm.Opcodes;
 import static com.sun.btrace.org.objectweb.asm.Opcodes.*;
 
 /**
@@ -97,7 +98,7 @@
         FileOutputStream fos = new FileOutputStream(args[0] + ".class");
         ClassWriter writer = InstrumentUtils.newClassWriter();
         InstrumentUtils.accept(reader,
-            new ClassAdapter(writer) {
+            new ClassVisitor(Opcodes.ASM4, writer) {
                  public MethodVisitor visitMethod(int access, String name, 
String desc, 
                      String signature, String[] exceptions) {
                      MethodVisitor mv = super.visitMethod(access, name, 
desc, 

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/Instrumentor.java
--- a/src/share/classes/com/sun/btrace/runtime/Instrumentor.java        Tue 
Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/Instrumentor.java        Sun 
Jan 15 20:55:06 2012 +0100
@@ -36,11 +36,9 @@
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import com.sun.btrace.org.objectweb.asm.AnnotationVisitor;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
 import com.sun.btrace.org.objectweb.asm.ClassReader;
 import com.sun.btrace.org.objectweb.asm.ClassVisitor;
 import com.sun.btrace.org.objectweb.asm.ClassWriter;
-import com.sun.btrace.org.objectweb.asm.MethodAdapter;
 import com.sun.btrace.org.objectweb.asm.MethodVisitor;
 import com.sun.btrace.org.objectweb.asm.Opcodes;
 import com.sun.btrace.org.objectweb.asm.Type;
@@ -56,7 +54,7 @@
  *
  * @author A. Sundararajan
  */
-public class Instrumentor extends ClassAdapter {
+public class Instrumentor extends ClassVisitor {
     private String btraceClassName;
     private ClassReader btraceClass;
     private List<OnMethod> onMethods;
@@ -72,7 +70,7 @@
     public Instrumentor(Class clazz, 
             String btraceClassName, ClassReader btraceClass, 
             List<OnMethod> onMethods, ClassVisitor cv) {
-        super(cv);
+        super(ASM4, cv);
         this.clazz = clazz;
         this.btraceClassName = btraceClassName.replace('.', '/');
         this.btraceClass = btraceClass;
@@ -220,7 +218,8 @@
             }
         }
 
-        return new MethodAdapter(methodVisitor) {
+        return new MethodVisitor(ASM4, 
+                    methodVisitor) {
             public AnnotationVisitor visitAnnotation(String annoDesc,
                                   boolean visible) { 
                 for (OnMethod om : applicableOnMethods) {

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/LineNumberInstrumentor.java
--- a/src/share/classes/com/sun/btrace/runtime/LineNumberInstrumentor.java    
  Tue Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/LineNumberInstrumentor.java    
  Sun Jan 15 20:55:06 2012 +0100
@@ -25,14 +25,10 @@
 
 package com.sun.btrace.runtime;
 
+import com.sun.btrace.org.objectweb.asm.*;
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
-import com.sun.btrace.org.objectweb.asm.ClassReader;
-import com.sun.btrace.org.objectweb.asm.ClassWriter;
-import com.sun.btrace.org.objectweb.asm.Label;
-import com.sun.btrace.org.objectweb.asm.MethodVisitor;
 
 
 /**
@@ -80,7 +76,7 @@
         FileOutputStream fos = new FileOutputStream(args[0] + ".class");
         ClassWriter writer = InstrumentUtils.newClassWriter();
         InstrumentUtils.accept(reader, 
-            new ClassAdapter(writer) {
+            new ClassVisitor(Opcodes.ASM4, writer) {
                  public MethodVisitor visitMethod(int access, String name, 
String desc, 
                      String signature, String[] exceptions) {
                      MethodVisitor mv = super.visitMethod(access, name, 
desc, 

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/MethodCallInstrumentor.java
--- a/src/share/classes/com/sun/btrace/runtime/MethodCallInstrumentor.java    
  Tue Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/MethodCallInstrumentor.java    
  Sun Jan 15 20:55:06 2012 +0100
@@ -28,11 +28,11 @@
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
 import com.sun.btrace.org.objectweb.asm.ClassReader;
+import com.sun.btrace.org.objectweb.asm.ClassVisitor;
 import com.sun.btrace.org.objectweb.asm.ClassWriter;
 import com.sun.btrace.org.objectweb.asm.MethodVisitor;
-import static com.sun.btrace.org.objectweb.asm.Opcodes.*;
+import com.sun.btrace.org.objectweb.asm.Opcodes;
 
 /**
  * This visitor helps in inserting code whenever a method call 
@@ -82,7 +82,7 @@
         FileOutputStream fos = new FileOutputStream(args[0] + ".class");
         ClassWriter writer = InstrumentUtils.newClassWriter();
         InstrumentUtils.accept(reader, 
-            new ClassAdapter(writer) {
+            new ClassVisitor(Opcodes.ASM4, writer) {
                  public MethodVisitor visitMethod(int access, String name, 
String desc, 
                      String signature, String[] exceptions) {
                      MethodVisitor mv = super.visitMethod(access, name, 
desc, 

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/MethodCopier.java
--- a/src/share/classes/com/sun/btrace/runtime/MethodCopier.java        Tue 
Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/MethodCopier.java        Sun 
Jan 15 20:55:06 2012 +0100
@@ -25,7 +25,7 @@
 
 package com.sun.btrace.runtime;
 
-import com.sun.btrace.util.NullVisitor;
+import com.sun.btrace.org.objectweb.asm.*;
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
@@ -33,15 +33,6 @@
 import java.util.List;
 import java.util.ArrayList;
 import java.lang.reflect.Method;
-import com.sun.btrace.org.objectweb.asm.AnnotationVisitor;
-import com.sun.btrace.org.objectweb.asm.Attribute;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
-import com.sun.btrace.org.objectweb.asm.ClassReader;
-import com.sun.btrace.org.objectweb.asm.ClassVisitor;
-import com.sun.btrace.org.objectweb.asm.ClassWriter;
-import com.sun.btrace.org.objectweb.asm.FieldVisitor;
-import com.sun.btrace.org.objectweb.asm.MethodVisitor;
-import com.sun.btrace.org.objectweb.asm.Type;
 import static com.sun.btrace.runtime.Constants.CLASS_INITIALIZER;
 
 /**
@@ -53,7 +44,7 @@
  * 
  * @author A. Sundararajan
  */
-public class MethodCopier extends ClassAdapter {
+public class MethodCopier extends ClassVisitor {
     private ClassReader fromClass;
     private Iterable<MethodInfo> methods;
 
@@ -74,7 +65,7 @@
  
     public MethodCopier(ClassReader fromClass, ClassVisitor toClass, 
                        Iterable<MethodInfo> methods) {  
-        super(toClass);
+        super(Opcodes.ASM4, toClass);
         this.fromClass = fromClass;
         this.methods = methods;
     }
@@ -99,13 +90,13 @@
     }
                 
     public void visitEnd() {
-        fromClass.accept(new ClassVisitor() {
+        fromClass.accept(new ClassVisitor(Opcodes.ASM4) {
             public void visit(int version, int access, String name, 
                 String signature, String superName, String[] interfaces) {
             }
 
             public AnnotationVisitor visitAnnotation(String desc, boolean 
visible) {
-                return new NullVisitor();
+                return new AnnotationVisitor(Opcodes.ASM4) {};
             }
 
             public void visitAttribute(Attribute attr) {

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/MethodEntryExitInstrumentor.java
--- 
a/src/share/classes/com/sun/btrace/runtime/MethodEntryExitInstrumentor.java 
Tue Oct 18 13:29:31 2011 +0200
+++ 
b/src/share/classes/com/sun/btrace/runtime/MethodEntryExitInstrumentor.java 
Sun Jan 15 20:55:06 2012 +0100
@@ -28,10 +28,11 @@
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
 import com.sun.btrace.org.objectweb.asm.ClassReader;
+import com.sun.btrace.org.objectweb.asm.ClassVisitor;
 import com.sun.btrace.org.objectweb.asm.ClassWriter;
 import com.sun.btrace.org.objectweb.asm.MethodVisitor;
+import com.sun.btrace.org.objectweb.asm.Opcodes;
 import static com.sun.btrace.org.objectweb.asm.Opcodes.*;
 import static com.sun.btrace.runtime.Constants.CONSTRUCTOR;
 
@@ -117,7 +118,7 @@
         FileOutputStream fos = new FileOutputStream(args[0] + ".class");
         ClassWriter writer = InstrumentUtils.newClassWriter();
         InstrumentUtils.accept(reader,
-            new ClassAdapter(writer) {
+            new ClassVisitor(Opcodes.ASM4, writer) {
                  public MethodVisitor visitMethod(int access, String name, 
String desc, 
                      String signature, String[] exceptions) {
                      MethodVisitor mv = super.visitMethod(access, name, 
desc, 

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/MethodEntryInstrumentor.java
--- a/src/share/classes/com/sun/btrace/runtime/MethodEntryInstrumentor.java   
  Tue Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/MethodEntryInstrumentor.java   
  Sun Jan 15 20:55:06 2012 +0100
@@ -28,10 +28,11 @@
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
 import com.sun.btrace.org.objectweb.asm.ClassReader;
+import com.sun.btrace.org.objectweb.asm.ClassVisitor;
 import com.sun.btrace.org.objectweb.asm.ClassWriter;
 import com.sun.btrace.org.objectweb.asm.MethodVisitor;
+import com.sun.btrace.org.objectweb.asm.Opcodes;
 import static com.sun.btrace.org.objectweb.asm.Opcodes.*;
 import static com.sun.btrace.runtime.Constants.CONSTRUCTOR;
 
@@ -108,7 +109,7 @@
         FileOutputStream fos = new FileOutputStream(args[0] + ".class");
         ClassWriter writer = InstrumentUtils.newClassWriter();
         InstrumentUtils.accept(reader, 
-            new ClassAdapter(writer) {
+            new ClassVisitor(Opcodes.ASM4, writer) {
                  public MethodVisitor visitMethod(int access, String name, 
String desc, 
                      String signature, String[] exceptions) {
                      MethodVisitor mv = super.visitMethod(access, name, 
desc, 

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/MethodInstrumentor.java
--- a/src/share/classes/com/sun/btrace/runtime/MethodInstrumentor.java  Tue 
Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/MethodInstrumentor.java  Sun 
Jan 15 20:55:06 2012 +0100
@@ -25,7 +25,6 @@
 
 package com.sun.btrace.runtime;
 
-import com.sun.btrace.org.objectweb.asm.MethodAdapter;
 import com.sun.btrace.org.objectweb.asm.MethodVisitor;
 import com.sun.btrace.org.objectweb.asm.Type;
 import com.sun.btrace.util.LocalVariablesSorter;
@@ -41,7 +40,7 @@
  *
  * @author A. Sundararajan
  */
-public class MethodInstrumentor extends MethodAdapter {
+public class MethodInstrumentor extends MethodVisitor {
     public static final String JAVA_LANG_THREAD_LOCAL =
         Type.getInternalName(ThreadLocal.class);
     public static final String JAVA_LANG_THREAD_LOCAL_GET = "get";
@@ -255,7 +254,7 @@
 
     public MethodInstrumentor(MethodVisitor mv, String parentClz, String 
superClz,
         int access, String name, String desc) {
-        super(mv);
+        super(ASM4, mv);
         this.parentClz = parentClz;
         this.superClz = superClz;
         this.access = access;

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/MethodRemover.java
--- a/src/share/classes/com/sun/btrace/runtime/MethodRemover.java       Tue 
Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/MethodRemover.java       Sun 
Jan 15 20:55:06 2012 +0100
@@ -25,16 +25,13 @@
 
 package com.sun.btrace.runtime;
 
-import static com.sun.btrace.org.objectweb.asm.Opcodes.*;
 import static com.sun.btrace.runtime.Constants.*;
-import com.sun.btrace.util.NullVisitor;
 import com.sun.btrace.org.objectweb.asm.AnnotationVisitor;
 import com.sun.btrace.org.objectweb.asm.Attribute;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
 import com.sun.btrace.org.objectweb.asm.ClassVisitor;
 import com.sun.btrace.org.objectweb.asm.Label;
-import com.sun.btrace.org.objectweb.asm.MethodAdapter;
 import com.sun.btrace.org.objectweb.asm.MethodVisitor;
+import com.sun.btrace.org.objectweb.asm.Opcodes;
 
 /**
  * This adapter removes the methods that are
@@ -43,9 +40,9 @@
  *
  * @author A. Sundararajan
  */
-public class MethodRemover extends ClassAdapter {
+public class MethodRemover extends ClassVisitor {
     public MethodRemover(ClassVisitor visitor) {  
-        super(visitor);
+        super(Opcodes.ASM4, visitor);
     }
 
     private MethodVisitor addMethod(int access, String name, 
@@ -61,7 +58,7 @@
             return super.visitMethod(access, name, 
                               desc, signature, exceptions);
         } else {
-            return new MethodAdapter(new NullVisitor()) {
+            return new MethodVisitor(Opcodes.ASM4) {
                 private boolean include = true;
                 private MethodVisitor adaptee = null;
 
@@ -76,10 +73,10 @@
                                   boolean visible) {
                     if (annoDesc.equals(ONMETHOD_DESC)) {
                         include = false;
-                        return new NullVisitor();
+                        return new AnnotationVisitor(Opcodes.ASM4) {};
                     } else if (annoDesc.equals(ONPROBE_DESC)) {
                         include = false;
-                        return new NullVisitor();
+                        return new AnnotationVisitor(Opcodes.ASM4) {};
                     } else {
                         return getAdaptee().visitAnnotation(annoDesc, 
visible);
                     }

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/MethodReturnInstrumentor.java
--- a/src/share/classes/com/sun/btrace/runtime/MethodReturnInstrumentor.java  
  Tue Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/MethodReturnInstrumentor.java  
  Sun Jan 15 20:55:06 2012 +0100
@@ -29,10 +29,11 @@
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
 import com.sun.btrace.org.objectweb.asm.ClassReader;
+import com.sun.btrace.org.objectweb.asm.ClassVisitor;
 import com.sun.btrace.org.objectweb.asm.ClassWriter;
 import com.sun.btrace.org.objectweb.asm.MethodVisitor;
+import com.sun.btrace.org.objectweb.asm.Opcodes;
 import static com.sun.btrace.org.objectweb.asm.Opcodes.*;
 
 /**
@@ -86,7 +87,7 @@
         FileOutputStream fos = new FileOutputStream(args[0] + ".class");
         ClassWriter writer = InstrumentUtils.newClassWriter();
         InstrumentUtils.accept(reader, 
-            new ClassAdapter(writer) {
+            new ClassVisitor(Opcodes.ASM4, writer) {
                  public MethodVisitor visitMethod(int access, String name, 
String desc, 
                      String signature, String[] exceptions) {
                      MethodVisitor mv = super.visitMethod(access, name, 
desc, 

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/MethodVerifier.java
--- a/src/share/classes/com/sun/btrace/runtime/MethodVerifier.java      Tue 
Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/MethodVerifier.java      Sun 
Jan 15 20:55:06 2012 +0100
@@ -24,14 +24,13 @@
  */
 package com.sun.btrace.runtime;
 
-import com.sun.btrace.org.objectweb.asm.AnnotationVisitor;
 import java.util.Map;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Set;
 import com.sun.btrace.org.objectweb.asm.Label;
-import com.sun.btrace.org.objectweb.asm.MethodAdapter;
 import com.sun.btrace.org.objectweb.asm.MethodVisitor;
+import com.sun.btrace.org.objectweb.asm.Opcodes;
 import com.sun.btrace.org.objectweb.asm.Type;
 import static com.sun.btrace.org.objectweb.asm.Opcodes.*;
 import static com.sun.btrace.runtime.Constants.*;
@@ -43,7 +42,7 @@
  *
  * @author A. Sundararajan
  */
-public class MethodVerifier extends MethodAdapter {
+public class MethodVerifier extends MethodVisitor {
 
     final private static Set<String> primitiveWrapperTypes;
     final private static Set<String> unboxMethods;
@@ -77,7 +76,7 @@
     private Map<Label, Label> labels;
 
     public MethodVerifier(Verifier v, MethodVisitor mv, String className, 
CycleDetector graph, String methodName) {
-        super(mv);
+        super(Opcodes.ASM4, mv);
         this.verifier = v;
         this.className = className;
         this.enclosingMethodName = methodName;

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/ObjectAllocInstrumentor.java
--- a/src/share/classes/com/sun/btrace/runtime/ObjectAllocInstrumentor.java   
  Tue Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/ObjectAllocInstrumentor.java   
  Sun Jan 15 20:55:06 2012 +0100
@@ -25,13 +25,10 @@
 
 package com.sun.btrace.runtime;
 
+import com.sun.btrace.org.objectweb.asm.*;
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
-import com.sun.btrace.org.objectweb.asm.ClassReader;
-import com.sun.btrace.org.objectweb.asm.ClassWriter;
-import com.sun.btrace.org.objectweb.asm.MethodVisitor;
 import static com.sun.btrace.org.objectweb.asm.Opcodes.*;
 
 /**
@@ -74,7 +71,7 @@
         FileOutputStream fos = new FileOutputStream(args[0] + ".class");
         ClassWriter writer = InstrumentUtils.newClassWriter();
         InstrumentUtils.accept(reader,
-            new ClassAdapter(writer) {
+            new ClassVisitor(Opcodes.ASM4, writer) {
                  public MethodVisitor visitMethod(int access, String name, 
String desc, 
                      String signature, String[] exceptions) {
                      MethodVisitor mv = super.visitMethod(access, name, 
desc, 

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/Preprocessor.java
--- a/src/share/classes/com/sun/btrace/runtime/Preprocessor.java        Tue 
Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/Preprocessor.java        Sun 
Jan 15 20:55:06 2012 +0100
@@ -36,13 +36,11 @@
 import com.sun.btrace.annotations.Export;
 import com.sun.btrace.annotations.TLS;
 import com.sun.btrace.annotations.Property;
-import com.sun.btrace.util.NullVisitor;
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import com.sun.btrace.org.objectweb.asm.AnnotationVisitor;
 import com.sun.btrace.org.objectweb.asm.Attribute;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
 import com.sun.btrace.org.objectweb.asm.ClassReader;
 import com.sun.btrace.org.objectweb.asm.ClassVisitor;
 import com.sun.btrace.org.objectweb.asm.ClassWriter;
@@ -77,7 +75,7 @@
  * 
  * @author A. Sundararajan
  */
-public class Preprocessor extends ClassAdapter {
+public class Preprocessor extends ClassVisitor {
     public static final String JAVA_LANG_THREAD_LOCAL_DESC = 
"Ljava/lang/ThreadLocal;";
     // btrace specific stuff
     public static final String BTRACE_EXPORT_DESC =
@@ -280,7 +278,7 @@
     private boolean classInitializerFound;
 
     public Preprocessor(ClassVisitor cv) {
-        super(cv);
+        super(Opcodes.ASM4, cv);
         fields = new ArrayList<FieldDescriptor>();
         threadLocalFields = new HashMap<String, FieldDescriptor>();
         exportFields = new HashMap<String, FieldDescriptor>();
@@ -303,7 +301,7 @@
     public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
         final AnnotationVisitor zupr = super.visitAnnotation(desc, visible);
         if ("Lcom/sun/btrace/annotations/BTrace;".equals(desc)) {
-            return new AnnotationVisitor() {
+            return new AnnotationVisitor(Opcodes.ASM4) {
 
                 public void visit(String string, Object o) {
                     if ("name".equals(string)) {
@@ -384,7 +382,7 @@
     public FieldVisitor visitField(final int access, final String name, 
             final String desc, final String signature, final Object value) { 
       
         final List<Attribute> attrs = new ArrayList<Attribute>();
-        return new FieldVisitor() {
+        return new FieldVisitor(Opcodes.ASM4) {
             boolean isExport;
             boolean isThreadLocal;
             boolean isProperty;
@@ -398,7 +396,7 @@
                     isExport = true;                    
                 } else if (desc.equals(BTRACE_PROPERTY_DESC)) {
                     isProperty = true;
-                    return new NullVisitor() {
+                    return new AnnotationVisitor(Opcodes.ASM4) {
                         @Override
                         public void visit(String name, Object value) {
                             if (name.equals(BTRACE_PROPERTY_NAME)) {
@@ -409,7 +407,7 @@
                         }
                     };
                 }
-                return new NullVisitor();
+                return new AnnotationVisitor(Opcodes.ASM4){};
             }
 
             public void visitAttribute(Attribute attr) {

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/SynchronizedInstrumentor.java
--- a/src/share/classes/com/sun/btrace/runtime/SynchronizedInstrumentor.java  
  Tue Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/SynchronizedInstrumentor.java  
  Sun Jan 15 20:55:06 2012 +0100
@@ -25,14 +25,10 @@
 
 package com.sun.btrace.runtime;
 
+import com.sun.btrace.org.objectweb.asm.*;
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
-import com.sun.btrace.org.objectweb.asm.ClassReader;
-import com.sun.btrace.org.objectweb.asm.ClassWriter;
-import com.sun.btrace.org.objectweb.asm.MethodVisitor;
-import com.sun.btrace.org.objectweb.asm.Type;
 import static com.sun.btrace.org.objectweb.asm.Opcodes.*;
 
 /**
@@ -133,7 +129,7 @@
         FileOutputStream fos = new FileOutputStream(args[0] + ".class");
         ClassWriter writer = InstrumentUtils.newClassWriter();
         InstrumentUtils.accept(reader,
-            new ClassAdapter(writer) {
+            new ClassVisitor(Opcodes.ASM4, writer) {
                  private String className;
                  public void visit(int version, int access, String name, 
                      String signature, String superName, String[] 
interfaces) {

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/ThrowInstrumentor.java
--- a/src/share/classes/com/sun/btrace/runtime/ThrowInstrumentor.java   Tue 
Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/ThrowInstrumentor.java   Sun 
Jan 15 20:55:06 2012 +0100
@@ -25,13 +25,10 @@
 
 package com.sun.btrace.runtime;
 
+import com.sun.btrace.org.objectweb.asm.*;
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
-import com.sun.btrace.org.objectweb.asm.ClassReader;
-import com.sun.btrace.org.objectweb.asm.ClassWriter;
-import com.sun.btrace.org.objectweb.asm.MethodVisitor;
 import static com.sun.btrace.org.objectweb.asm.Opcodes.*;
 
 /**
@@ -76,7 +73,7 @@
         FileOutputStream fos = new FileOutputStream(args[0] + ".class");
         ClassWriter writer = InstrumentUtils.newClassWriter();
         InstrumentUtils.accept(reader,
-            new ClassAdapter(writer) {
+            new ClassVisitor(Opcodes.ASM4, writer) {
                  public MethodVisitor visitMethod(int access, String name, 
String desc, 
                      String signature, String[] exceptions) {
                      MethodVisitor mv = super.visitMethod(access, name, 
desc, 

diff -r b3a776b45df6 -r d31d25ebd48b 
src/share/classes/com/sun/btrace/runtime/TypeCheckInstrumentor.java
--- a/src/share/classes/com/sun/btrace/runtime/TypeCheckInstrumentor.java     
  Tue Oct 18 13:29:31 2011 +0200
+++ b/src/share/classes/com/sun/btrace/runtime/TypeCheckInstrumentor.java     
  Sun Jan 15 20:55:06 2012 +0100
@@ -28,10 +28,11 @@
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import com.sun.btrace.org.objectweb.asm.ClassAdapter;
 import com.sun.btrace.org.objectweb.asm.ClassReader;
+import com.sun.btrace.org.o
[truncated due to length]



[btrace~hg:436] #BTRACE-83: Updating ASM to ver. 4.0

j . bachorik 01/15/2012
  • Mysql
  • Glassfish
  • Jruby
  • Rails
  • Nblogo
Terms of Use; Privacy Policy;
© 2010, Oracle Corporation and/or its affiliates
(revision 20120518.3c65429)
 
 
Close
loading
Please Confirm
Close