aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard Ellis (JIRA)" <>
Subject [jira] [Commented] (ARIES-669) Proxy or weaving code should mark all its changes synthetic
Date Mon, 06 Jun 2011 12:29:58 GMT


Richard Ellis commented on ARIES-669:

Firstly, I think it would be helpful to know what problems have been caused by the SerialVersionUUID
and static_init_* methods. I'd like to know what it is about these additions that cause issues
so we can avoid similar problems in future and so we can potentially identify other places
in the proxy code that may cause similar issues. If you wouldn't mind, please could you add
that information to this JIRA?

Secondly, the static_init_* methods are generated by the ASM StaticInitMerger class to merge
multiple static inits (<clinit>)into a single one. So in the case where a class already
has a <clinit> then the <clinit> should not be marked as synthetic, but the static_init_*
methods probably should. However, the code from the original <clinit> is not really
synthetic in this case. I think a danger here is that the debugger could get very confused
if the class contains a <clinit>, but then the compiled class contains a synthetic <clinit>.
Could you elaborate about if you have considered these cases in your patch?

I don't want to look at your patch if it contains ASM code, because I'd like to be able to
produce a clean implementation if necessary. Maybe the right thing to do here is remove the
ASM StaticInitMerger wrapper and instead create our own code to do the following:
1. If a class does not have a <clinit> add a synthetic <clinit>
2. If a class already has a <clinit> then:
 -add a synthetic generated static_init_* method
 -add a call to the generated method from the existing <clinit>


> Proxy or weaving code should mark all its changes synthetic
> -----------------------------------------------------------
>                 Key: ARIES-669
>                 URL:
>             Project: Aries
>          Issue Type: Bug
>          Components: Proxy
>    Affects Versions: 0.4
>            Reporter: David Jencks
> In order to make it easier for OWB to ignore the additional goo added by the proxy/weaving
stuff, it should all be marked synthetic.  So far I've identified the added SerialVersionUID
field and static_init_* methods as causing problems with the jcdi tck.

This message is automatically generated by JIRA.
For more information on JIRA, see:

View raw message