optimizer.ClassConstantsCollector generates an invalid class constant
Using the optimizer on the following class, an invalid constant for "E" is
generated in fff.class.
======================
package com.mycompany.test;
public class fff {
public static class E {
}
}
======================
This can be seen from the javap output.
The bug is in visitInnerClass() in ClassConstantsCollector as the innerName
parameter does not represent a full class name so "cp.newClass(innerName)"
should not be called.
This bug was discovered in retroweaver as it uses asm for traversal and
compaction of the byte code (I am maintaining retroweaver). The optimized code
was generating errors for Oracle JVM. The original retroweaver bug report is at:
https://sourceforge.net/tracker/index.php?func=detail&aid=1536605&group_id=104240&atid=637380
Let me know if you need more info.
Xavier