Currently lincheck omits transformation of <init> methods in the transformers chain (see LincheckClassVisitor::visitMethod).
There is a problem with passing object references to injection methods. This may be observed for instrumentation of GETFIELD/PUTFIELD instructions in constructors:
Injections::beforeReadField function accepts as 1st parameter a reference to the object, on which mentioned instructions are invoked.
However, if this object is this of the class instance being constructed, then passing it as a parameter to any function will cause VerifyError exception when the jvm will try to load transformed class.
Currently lincheck omits transformation of
<init>
methods in the transformers chain (seeLincheckClassVisitor::visitMethod
). There is a problem with passing object references to injection methods. This may be observed for instrumentation ofGETFIELD
/PUTFIELD
instructions in constructors:Injections::beforeReadField
function accepts as 1st parameter a reference to the object, on which mentioned instructions are invoked.this
of the class instance being constructed, then passing it as a parameter to any function will causeVerifyError
exception when the jvm will try to load transformed class.