We've just spent a good amount of time tracking down an exception that ended in "Invalid length 65532 in LocalVariableTable in class file" - turned out that if both jacoco and eclemma is used in the same project bad things tend to happen :)
But it also turns out that this problem is not unique to jacoco/eclemma being mixed.
I've seen it also when JBoss AS modules was using custom bytecode manipulation which messed up pointers (everything worked fine - except for jacoco)
And i'm sure this will happen to other users as well.
Is there really no way of having asm that jacoco uses for instrumenting *not* set that point so high and simply only set it to the same previous value or with the same offset as jacoco is causing ?
afaics having a working, but imprecise value there is better than this total failure by the VM to load the class?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2012-04-03
(please ignore my comment, it's just there to monitor post)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'll investigate whether we have a chance to detect such broken pointers with ASM API and filter them out completely. If I don't find a solution I will check with the ASM project. To track this I opened a bug for it.
Cheers,
-marc
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Max, do you have a class file with has the problem (I know you provided one to me some time ago but I can't find it anymore)? Please attach to the bug.
Thanks,
-marc
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2012-04-04
Hi Marc,
We may be able to reproduce the issue (ClassFormat) when dealing with jacoco+emma at the same time. Should I append a test case to ticket 196, or should I open another dedicated ticket for that?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Evgeny just created a new 0.5.7-SNAPSHOT build, please find repo details here.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2012-04-11
Seems like the change does not resolve the Emma/Jacoco conflict we see in JBoss Tools: still the same 65532 error. I used the latest 0.5.7-SNAPSHOT from oss.sonatype.org for tests.
The conflict is probably an issue in Emma rather that in Jacoco.
(BTW, I can't go to the bug page, I always get "The page isn't redirecting properly" , do you have a clue).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm very sorry, we just discovered that the repo was not properly updated. The latest snapshot build has been just uploaded and should now actually contain the fix. Can you please retry?
Thx,
-marc
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2012-04-12
It works with 0,5,7-SNAPSHOT !
Thanks a lot Marc and Eugeny, you made my day better ;)
Any planned date for a 0.5.7 release?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
We've just spent a good amount of time tracking down an exception that ended in "Invalid length 65532 in LocalVariableTable in class file" - turned out that if both jacoco and eclemma is used in the same project bad things tend to happen :)
But it also turns out that this problem is not unique to jacoco/eclemma being mixed.
I've seen it also when JBoss AS modules was using custom bytecode manipulation which messed up pointers (everything worked fine - except for jacoco)
I can also see http://sourceforge.net/tracker/?func=detail&atid=883351&aid=3486469&group_id=177969 which is related to Kodo projects.
And i'm sure this will happen to other users as well.
Is there really no way of having asm that jacoco uses for instrumenting *not* set that point so high and simply only set it to the same previous value or with the same offset as jacoco is causing ?
afaics having a working, but imprecise value there is better than this total failure by the VM to load the class?
(please ignore my comment, it's just there to monitor post)
Hi Max,
I'll investigate whether we have a chance to detect such broken pointers with ASM API and filter them out completely. If I don't find a solution I will check with the ASM project. To track this I opened a bug for it.
Cheers,
-marc
Max, do you have a class file with has the problem (I know you provided one to me some time ago but I can't find it anymore)? Please attach to the bug.
Thanks,
-marc
Hi Marc,
We may be able to reproduce the issue (ClassFormat) when dealing with jacoco+emma at the same time. Should I append a test case to ticket 196, or should I open another dedicated ticket for that?
I went back and found the AS 7.0.2 class that resulted in similar error.
I've attached it to the bug.
Mickael, I think we don't have to reproduce this issue for the jacoco+emma issue for now - unless Marc believes the issues are different.
It's fixed on trunk. Can you please re-test with the latest trunk build?
Cheers,
-marc
Cool thanks!
Is it available as a SNAPSHOT on a Maven repo?
Evgeny just created a new 0.5.7-SNAPSHOT build, please find repo details here.
Seems like the change does not resolve the Emma/Jacoco conflict we see in JBoss Tools: still the same 65532 error. I used the latest 0.5.7-SNAPSHOT from oss.sonatype.org for tests.
The conflict is probably an issue in Emma rather that in Jacoco.
(BTW, I can't go to the bug page, I always get "The page isn't redirecting properly" , do you have a clue).
I'm very sorry, we just discovered that the repo was not properly updated. The latest snapshot build has been just uploaded and should now actually contain the fix. Can you please retry?
Thx,
-marc
It works with 0,5,7-SNAPSHOT !
Thanks a lot Marc and Eugeny, you made my day better ;)
Any planned date for a 0.5.7 release?
FYI: 0.5.7 has just been released.