[ 
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

Reply via email to