On Jun 3, 2011, at 11:10 AM, David Jencks wrote:

> I'm tired of being in the middle of this.  Please discuss this on the owb dev 
> list or in comments to https://issues.apache.org/jira/browse/OWB-579

:) 

> 
> The problem in owb is that although the actual proxy building code has no 
> problems with the final synthetic methods, there's an excessively naive check 
> for proxyability that just looks at all declared methods and checks they 
> aren't final.  Based on this example, I think there may be a  lot of existing 
> code with similar errors that works fine in most situations but will not work 
> with aries.

I'm worried about this, also. 

IIUC, complexity has been added to detect the classes so that we can make these 
methods 'final' -- not for semantic understanding, but in the hopes of improved 
JIT behavior. As you note, there is the potential that this will cause 
incompatibilities/problems with other libraries.

That said, it does seem that there is a performance advantage (though 
appararently small). Here's information I got from Derek Inglis, JIT 
Development Lead at IBM, which I'm sharing with his permission:

> Marking methods final does give JIT performance improvements for IBM JVM and 
> Oracle's JVMs.   Having said that much of the JIT work over the years has 
> been to decrease the overhead associated with nonfinal methods, such that the 
> advantage of final has decreased.   In summary, I would encourage using final 
> on methods, however the advantage for a small number of methods, isn't big 
> enough to worry about if avoiding final for those methods solves other issues.
> 
> I'll commit a fix to owb too so everyone is unhappy.  if you folks can 
> convince the owb folks that the methods should be final I'll put the final 
> back in aries.

I'll join in on the discussion, there...

--kevan

Reply via email to