aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kevan Miller <>
Subject Re: Another weaving problem?
Date Fri, 03 Jun 2011 15:29:08 GMT

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


> 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...

View raw message