Re: [abc-dev] Difficulty with Dava output

From: Eric Bodden <eric.bodden_at_mail.mcgill.ca>
Date: Sat, 15 Mar 2008 10:28:15 -0400

Hi all.

this has been a known bug for months now. It's easily reproducible,
i.e. happens virtually all the time when decompiling woven code.

The problem is that right now we have nobody really maintaining Dava
any more. I am CC'ing Nomair, our last Dava maintainer. I know that
Nomair is busy with other things but maybe he is willing to spare some
time in the near future to look into this.

Eric

On 15/03/2008, Oege de Moor <Oege.de.Moor_at_comlab.ox.ac.uk> wrote:
>
> Lionard,
>
> Thanks for your feedback.
>
> abc imports Dava from Soot. A problem like this is a bug in Dava; could
> you report it on the soot bugzilla or mailing list?
>
> Alternatively, perhaps the Soot maintainers on the abc-users list can
> make a note of it?
>
>
> -Oege
>
>
> On Sat, 15 Mar 2008, Léonard Babineaux wrote:
>
> > Greetings,
> >
> > I have difficulty with using -dava output when one compiles with abc.
> > Below is a simple class and aspect I made.
> >
> > I compile it with the -dava option and it makes a folder with the woven
> > .java files in it.
> >
> >
> > The normal compiled output runs as expected. When I attempt to compile the
> > .java woven files from the dava output folder
> >
> > I get this error:
> >
> > TestAspect.java:44: return outside method
> > return;
> > ^
> > 1 error
> >
> >
> > As one can see - it is attempting to return from a static block.
> >
> > static
> > {
> >
> > TestAspect DavaTemp_abc$perSingletonInstance;
> > DavaTemp_abc$perSingletonInstance = null;
> >
> > try
> > {
> >
> > DavaTemp_abc$perSingletonInstance = new TestAspect();
> > return;
> > }
> > catch (Throwable catchLocal$1)
> > {
> > abc$initFailureCause = catchLocal$1;
> > }
> > }
> >
> >
> > I much appreciate if anyone be able to aid me in my endeavours to get this
> > working with abc?
> >
> > Thank you much!
> > Léo.
> >
> >
> >
> > This is my simple aspect and class:
> >
> > public aspect TestAspect
> > {
> > before(): printAspect()
> > {
> > System.out.println("Inside Aspect");
> > }
> >
> > pointcut printAspect():
> > call(void TestClass.doSomething(String));
> >
> > }
> >
> >
> > public class TestClass
> > {
> >
> > public TestClass()
> > {
> > }
> >
> > public void doSomething(String x)
> > {
> > System.out.println(x);
> > }
> >
> > public static void main(String args[])
> > {
> > TestClass tc = new TestClass();
> > tc.doSomething("class");
> >
> > }
> > }
> >

-- 
Eric Bodden
Sable Research Group
McGill University, Montréal, Canada
Received on Sat Mar 15 2008 - 14:28:31 GMT

This archive was generated by hypermail 2.2.0 : Mon Mar 31 2008 - 23:50:10 BST