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
