As I'm interested in BCEL I thought I would do a little further investigation of this problem.
Of the 3 URLS given above, https://bugs.eclipse.org/bugs/show_bug.cgi?id=62631 is the most useful - it identifies the failing line of code in BCEL. The following URL gives the change made by the BCEL author to fix the problem: http://svn.apache.org/viewvc/jakarta/bcel/trunk/src/main/java/org/apache/bcel/generic/LDC_W.java?r1=152856&r2=152900 --- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/LDC_W.java 2003/05/23 07:55:36 152856 +++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/LDC_W.java 2004/11/09 20:02:42 152900 @@ -84,5 +84,6 @@ setIndex(bytes.readUnsignedShort()); // Override just in case it has been changed opcode = org.apache.bcel.Constants.LDC_W; + length = 3; } } (This is slightly different from the suggestion made by the AspectJ developers). I have verified that this fix has been incorporated in the latest release of BCEL (5.2), so presumably we could close this bug by packaging the new upstream release.