aries-dev mailing list archives

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


David Jencks commented on ARIES-669:

CDI and the CDI tck pretty much assume that the class that goes into the testsuite is the
one that is available to the tck.  There are a lot of requirements about whats allowed in
classes and a lot of checks that what is in the tck source code is what is exposed through
the cdi implementation class analysis.  I think its reasonable to have the CDI implementation
ignore anything marked synthetic (or, for methods, bridge).  I think it's pretty unreasonable
to make the cdi implementation have a configurable list of stuff to ignore that you have to
configure for the particular byte code mangling frameworks present in your environment.

The SerialVersionUID field shows up in a search for fields detected by the CDI framework compared
with the fields present in the original class.
The static_init method shows up in a list of methods compared to the methods present in the
original class.

I believe that a <clinit> method is ignored in any case, or possibly already present
in the original class.  I didn't see a tck problem from this.

If you want any hope of this proxy code being generally usable in real life I'd suggest that
you set up an environment with it and the jcdi RI and make sure that passes the jcdi tck.

I haven't found a need to mark any <clinit> method synthetic, whether or not it was
added by the proxy weaving code.  I think all I changed here was to mark the added static_init*
method synthetic which seems fairly reasonable to me since it's added by asm and was not present
in the original class. 

 I don't know how the debugger deals with synthetic methods but I think that it already doesn't
deal with the changes to every other method that has been modified.  When I step into a method
in the debugger the first line is now always an error.  Is this covered in the documentation
of this feature?

I think your proposal is what the current code does, but I'm not enough of a byte-code expert
to say for sure.

> 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