It is not possible to use instrumentor.instrumentClass call for class which does have overloaded methods.
Instrumentator adds for each method rule with the same name which ends with parsing error.
E.g. I have a class with two methods called "call" like void call() and void call(String param). The call InstrumentedClass instrumentedClass = instrumentor.instrumentClass(MyClass.class) then ends with error like:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:382)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:397)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.jboss.byteman.agent.Main.premain(Main.java:231)
... 6 more
Caused by: java.lang.Exception: Transformer : duplicate script name org.jboss.byteman.contrib.dtest.Instrumentor_org.jboss.qa.SLSBean_call_remotetrace_entryin file /tmp/temporarybytemanscript.btm6820156790243021571 line 22
previously defined in file /tmp/temporarybytemanscript.btm6820156790243021571 line 14
at org.jboss.byteman.agent.Transformer.<init>(Transformer.java:89)
at org.jboss.byteman.agent.Retransformer.<init>(Retransformer.java:48)
... 11 more