[Soot-list] annotation bug ?
Eric Bodden
eric.bodden at mail.mcgill.ca
Thu Aug 21 15:42:16 EDT 2008
This issue has been fixed in the current SVN version of Jasmin
(revision 3252). Therefore Soot should now also fully support
parameter annotations.
Eric
2008/6/15 Eric Bodden <eric.bodden at mail.mcgill.ca>:
> Ok there are still two things going wrong.
>
> 1.) We used to generate bytecode of version 46 but it needs to be 49
> for Java 5. I fixed this in Jasmin and this generally makes
> Annotations show up now. However...
> 2.) There seems to be a problem with parameter annotations. Right now
> I get the following runtime error:
>
> Class annotations:
>>@foo.Note(ignore=true)
> Field annotations:
>>@foo.Note(ignore=true)
> Method annotations:
>>@foo.Note(ignore=true)
> Parameter annotations:
> Exception in thread "main" java.lang.annotation.AnnotationFormatError:
> Parameter annotations don't match number of parameters
> at java.lang.reflect.Method.getParameterAnnotations(Method.java:759)
> at foo.Check.main(Check.java:22)
>
> Apparently the constant pool shows a number of annotations that's
> different from the actual number of annotations.
> Since I am myself not that familiar with Jasmin I am not quite sure
> how to fix this.
>
> For the file compiled with javac I get the following javap output:
>
> public void method(int);
> RuntimeVisibleParameterAnnotations: length = 0xC
> 01 00 01 00 13 00 01 00 14 5A 00 15
> Code:
> Stack=0, Locals=2, Args_size=2
> 0: return
> LineNumberTable:
> line 11: 0
> LocalVariableTable:
> Start Length Slot Name Signature
> 0 1 0 this Lfoo/Simple;
> 0 1 1 p1 I
>
> For the sootified file I get instead:
>
> public void method(int);
> Code:
> Stack=0, Locals=2, Args_size=2
> 0: return
> RuntimeVisibleParameterAnnotations: length = 0xD
> 00 01 00 01 00 0B 00 01 00 13 5A 00 07
>
> Does anybody have a link to the exact bytecode specification for
> parameter annotation attributes?
>
> Eric
>
>
> 2008/6/15 Matteo Miraz <matteo.miraz at gmail.com>:
>> Dear all,
>>
>> I need to transform an annotated class, but I have some problems...
>> all annotation (including run-time ones) goes away.
>> I seen the previous thread (solved here:
>> http://www.sable.mcgill.ca/pipermail/soot-list/2008-April/001726.html
>> ), but I think that the bug is still open (at least in the latest
>> stable version and in today's nightly build).
>>
>> I've tried to annotate some elements with a new annotation, and then I
>> tried to access them using java refection. Before transforming the
>> class with soot, the annotations are present, but after a naive
>> transformation (just copy everything and create a new class), the
>> annotations are gone away.
>>
>>
>> If you want, I've created a simple test project, available at:
>> http://home.dei.polimi.it/miraz/research/gente/sootAnnotationBug.zip
>>
>> Thank you in advance,
>> Matteo
>>
>> --
>> A clever person solves a problem.
>> A wise person avoids it.
>> (Einstein)
>> _______________________________________________
>> Soot-list mailing list
>> Soot-list at sable.mcgill.ca
>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>>
>
>
>
> --
> Eric Bodden
> Sable Research Group
> McGill University, Montréal, Canada
>
--
Eric Bodden
Sable Research Group
McGill University, Montréal, Canada
More information about the Soot-list
mailing list