OK, so I took some time to look at it; was a bit more involved than I
thought, but oh well.
Please try the following build and tell me if it works for you. You
can either grab the JAR file, or if you prefer, you can apply the
patch set and build Cofoja yourself. You can grab either at the
following URL:
http://www.huoc.org/~minh/cofoja/
For the record, the bug (at least the one I fixed) was related to an
old unimplemented method in Cofoja, which is called by the ASM library
when computing stack frame maps. Cofoja has always produced faulty
stack frame maps, as far as I can tell, due to its not implementing
the method, but the JVM 1.6 did not really care, so it kinda worked.
Now, as you saw, with JDK1.7, things broke. I've put together a fix,
but it's still quite fragile---that part of ASM seems IMHO quite
fragile. If I'm right (didn't have much time to investigate, to be
honest), it's quite possible it could break again with some specific
code patterns involving interfaces, but if that's the case, there
isn't much I could do to fix it.
I also took the opportunity to bump the ASM version to the 4.x branch,
which is, according to their changelog, necessary for proper Java7
support; it does breaks compatibility with ASM 3.x, though. I also
bumped the claimed language version to Java7; it changes nothing,
except you shouldn't get the warning about mismatched annotation
processors anymore.
Anyway, tell me if it works for you. (N.B. This is a self-contracted
build of Cofoja, so it's likely to feel a bit slower than the one you
used before, since the annotation processor will be running some
pretty heavy contracts.)
Nhat
On Thu, Apr 4, 2013 at 3:36 PM, Ewout Van Gossum