Buggy code:
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 ) { } private static String findHandlerParamName ( InstructionHandle startOfHandler ) { } public static BcelShadow makeIfaceInitialization ( BcelWorld world , LazyMethodGen constructor , Member interfaceConstructorSignature ) { } public void initIfaceInitializer ( InstructionHandle end ) { } public static BcelShadow makeUnfinishedInitialization ( BcelWorld world , LazyMethodGen constructor ) { } public static BcelShadow makeUnfinishedPreinitialization ( BcelWorld world , LazyMethodGen constructor ) { } public static BcelShadow makeMethodExecution ( BcelWorld world , LazyMethodGen enclosingMethod , boolean lazyInit ) { } public void init ( ) { } 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 ) { } 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 ) { } 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 boolean isThisJoinPointLazy ; private int lazyTjpConsumers = 0 ; private BcelVar thisJoinPointStaticPartVar = null ; public final Var getThisJoinPointStaticPartVar ( ) { } public final Var getThisEnclosingJoinPointStaticPartVar ( ) { } public void requireThisJoinPoint ( boolean hasGuardTest ) { } public Var getThisJoinPointVar ( ) { } void initializeThisJoinPoint ( ) { } private boolean checkLazyTjp ( ) { } InstructionList loadThisJoinPoint ( ) { } InstructionList createThisJoinPoint ( ) { } 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 , LazyMethodGen localAdviceMethod , List argVarList ) { } 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 , int visibilityModifier , ShadowMunger munger ) { } private void addPreInitializationReturnCode ( LazyMethodGen extractedMethod , Type [ ] superConstructorTypes ) { } private Type [ ] getSuperConstructorParameterTypes ( ) { } private IntMap makeRemap ( ) { } private LazyMethodGen createMethodGen ( String newMethodName , int visibilityModifier ) { } 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 ISourceLocation getSourceLocation ( ) { int sourceLine = getSourceLine ( ) ; <START_BUG> if ( sourceLine == 0 ) { <END_BUG> return getEnclosingClass ( ) . getType ( ) . getSourceLocation ( ) ; } else { return getEnclosingClass ( ) . getType ( ) . getSourceContext ( ) . makeSourceLocation ( sourceLine ) ; } } public Shadow getEnclosingShadow ( ) { } public LazyMethodGen getEnclosingMethod ( ) { } public boolean isFallsThrough ( ) { } }

Fix:
if ( ( sourceLine == 0 ) || ( sourceLine == ( - 1 ) ) ) {