Buggy code:
public class BcelShadow extends Shadow { private ShadowRange range ; private final BcelWorld world ; private final LazyMethodGen enclosingMethod ; private boolean fallsThrough ; public BcelShadow ( BcelWorld world , Kind kind , Member signature , LazyMethodGen enclosingMethod , BcelShadow enclosingShadow ) { } public BcelShadow copyInto ( LazyMethodGen recipient , BcelShadow enclosing ) { } public World getIWorld ( ) { } private void deleteNewAndDup ( ) { } private void retargetFrom ( InstructionHandle old , InstructionHandle fresh ) { } protected void prepareForMungers ( ) { } public ShadowRange getRange ( ) { } public void setRange ( ShadowRange range ) { } public int getSourceLine ( ) { } public TypeX getEnclosingType ( ) { } public LazyClassGen getEnclosingClass ( ) { } public BcelWorld getWorld ( ) { } public static BcelShadow makeConstructorExecution ( BcelWorld world , LazyMethodGen enclosingMethod , InstructionHandle justBeforeStart ) { } public static BcelShadow makeStaticInitialization ( BcelWorld world , LazyMethodGen enclosingMethod ) { } public static BcelShadow makeExceptionHandler ( BcelWorld world , ExceptionRange exceptionRange , LazyMethodGen enclosingMethod , InstructionHandle startOfHandler , BcelShadow enclosingShadow ) { } public static BcelShadow makeIfaceInitialization ( BcelWorld world , LazyMethodGen constructor , BcelShadow ifaceCExecShadow , Member interfaceConstructorSignature ) { } public static BcelShadow makeIfaceConstructorExecution ( BcelWorld world , LazyMethodGen constructor , InstructionHandle next , Member interfaceConstructorSignature ) { } public static BcelShadow makeUnfinishedInitialization ( BcelWorld world , LazyMethodGen constructor ) { } public static BcelShadow makeUnfinishedPreinitialization ( BcelWorld world , LazyMethodGen constructor ) { } public static BcelShadow makeMethodExecution ( BcelWorld world , LazyMethodGen enclosingMethod ) { } public static BcelShadow makeShadowForMethod ( BcelWorld world , LazyMethodGen enclosingMethod , Shadow . Kind kind , Member sig ) { } public static BcelShadow makeAdviceExecution ( BcelWorld world , LazyMethodGen enclosingMethod ) { final InstructionList body = enclosingMethod . getBody ( ) ; <START_BUG> BcelShadow s = new BcelShadow ( world , AdviceExecution , world . makeMethodSignature ( enclosingMethod ) , enclosingMethod , null ) ; <END_BUG> ShadowRange r = new ShadowRange ( body ) ; r . associateWithShadow ( s ) ; r . associateWithTargets ( Range . genStart ( body ) , Range . genEnd ( body ) ) ; return s ; } public static BcelShadow makeConstructorCall ( BcelWorld world , LazyMethodGen enclosingMethod , InstructionHandle callHandle , BcelShadow enclosingShadow ) { } public static BcelShadow makeMethodCall ( BcelWorld world , LazyMethodGen enclosingMethod , InstructionHandle callHandle , BcelShadow enclosingShadow ) { } public static BcelShadow makeShadowForMethodCall ( BcelWorld world , LazyMethodGen enclosingMethod , InstructionHandle callHandle , BcelShadow enclosingShadow , Kind kind , ResolvedMember sig ) { } public static BcelShadow makeFieldGet ( BcelWorld world , LazyMethodGen enclosingMethod , InstructionHandle getHandle , BcelShadow enclosingShadow ) { } public static BcelShadow makeFieldSet ( BcelWorld world , LazyMethodGen enclosingMethod , InstructionHandle setHandle , BcelShadow enclosingShadow ) { } public static void retargetAllBranches ( InstructionHandle from , InstructionHandle to ) { } private ObjectType getTargetBcelType ( ) { } private Type getArgBcelType ( int arg ) { } public boolean terminatesWithReturn ( ) { } public boolean arg0HoldsThis ( ) { } private BcelVar thisVar = null ; private BcelVar targetVar = null ; private BcelVar [ ] argVars = null ; public Var getThisVar ( ) { } public Var getTargetVar ( ) { } public Var getArgVar ( int i ) { } private BcelVar thisJoinPointVar = null ; private BcelVar thisJoinPointStaticPartVar = null ; private BcelVar thisEnclosingJoinPointStaticPartVar = null ; public final Var getThisJoinPointVar ( ) { } public final Var getThisJoinPointStaticPartVar ( ) { } public final Var getThisEnclosingJoinPointStaticPartVar ( ) { } public BcelVar getThisJoinPointBcelVar ( ) { } public BcelVar getThisJoinPointStaticPartBcelVar ( ) { } public BcelVar getThisEnclosingJoinPointStaticPartBcelVar ( ) { } public Member getEnclosingCodeSignature ( ) { } private InstructionList makeArgsObjectArray ( ) { } private void initializeThisVar ( ) { } public void initializeTargetVar ( ) { } public void initializeArgVars ( ) { } public void initializeForAroundClosure ( ) { } void weaveBefore ( BcelAdvice munger ) { } public void weaveAfter ( BcelAdvice munger ) { } public void weaveAfterReturning ( BcelAdvice munger ) { } public void weaveAfterThrowing ( BcelAdvice munger , TypeX catchType ) { } public void weaveSoftener ( BcelAdvice munger , TypeX catchType ) { } public void weavePerObjectEntry ( final BcelAdvice munger , final BcelVar onVar ) { } public void weaveCflowEntry ( final BcelAdvice munger , final Member cflowStackField ) { } public void weaveAroundInline ( BcelAdvice munger , boolean hasDynamicTest ) { } private InstructionList getRedoneProceedCall ( InstructionFactory fact , LazyMethodGen callbackMethod , BcelAdvice munger ) { } public void weaveAroundClosure ( BcelAdvice munger , boolean hasDynamicTest ) { } InstructionList makeCallToCallback ( LazyMethodGen callbackMethod ) { } private InstructionList makeClosureInstantiation ( Member constructor , BcelVar holder ) { } private IntMap makeProceedArgumentMap ( BcelVar [ ] adviceArgs ) { } private LazyMethodGen makeClosureClassAndReturnConstructor ( String closureClassName , LazyMethodGen callbackMethod , IntMap proceedMap ) { } public LazyMethodGen extractMethod ( String newMethodName ) { } private void addPreInitializationReturnCode ( LazyMethodGen extractedMethod , Type [ ] superConstructorTypes ) { } private Type [ ] getSuperConstructorParameterTypes ( ) { } private IntMap makeRemap ( ) { } private LazyMethodGen createMethodGen ( String newMethodName ) { } private boolean samePackage ( String p1 , String p2 ) { } private Type [ ] addType ( Type type , Type [ ] types ) { } private Type [ ] addTypeToEnd ( Type type , Type [ ] types ) { } public BcelVar genTempVar ( TypeX typeX ) { } public BcelVar genTempVar ( TypeX typeX , String localName ) { } private int genTempVarIndex ( int size ) { } public InstructionFactory getFactory ( ) { } public SourceLocation getSourceLocation ( ) { } public Shadow getEnclosingShadow ( ) { } public LazyMethodGen getEnclosingMethod ( ) { } public boolean isFallsThrough ( ) { } }

Fix:
BcelShadow s = new BcelShadow ( world , AdviceExecution , world . makeMethodSignature ( enclosingMethod , ADVICE ) , enclosingMethod , null ) ;