[
https://issues.apache.org/jira/browse/ARIES-669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13045066#comment-13045066
]
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: https://issues.apache.org/jira/browse/ARIES-669
> 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: http://www.atlassian.com/software/jira