On Oct 29, 2005, at 11:51 AM, Dain Sundstrom wrote:

Setting the TCCL around lifecycle methods is one of the changes I made in XBean. It turns out that there is a lot of code out there that assumes the TCCL is properly set, so instead of requiring everyone to write a wrapper class, I just set it. The reason we removed most of the TCCL setting code from Geronimo was because it was a major performance impact. I just think we went a little to far :) The life cycle methods are rarely called and don't happen in code paths where performance is critical. I think we should change the GBeanInstance code to set the TCCL around doStart and doStop.

What do you think?

Fine with me. Do you agree that setting the TCCL while deserializing attribute values is unnecessary?

thanks
david jencks


-dain

On Oct 29, 2005, at 11:37 AM, David Jencks wrote:

I think my previous claims (possibly on IRC) are wrong.

After looking at the code again, my understanding is that:

when the gbean is loaded into the kernel, the TCCL is the configuration classloader (see Configuration.loadGBeans(ManageableAttributeStore attributeStore) lines 296 ff.) Note the comment from Dain wondering why we are doing this. I think this is a leftover attempt to solve the problem of deserializing objects using the configuration classloader. We are now solving this problem with the ObjectInputStreamExt class so I think this TCCL setting is unnecessary.

when the gbean implementation class constructor and doStart method is called, the TCCL is indeterminate. I believe the idea is that if you want to set the TCCL properly, you will include a classLoader non-persistent "magic" attribute in the gbeanInfo and set the TCCL yourself.

Sorry for the confusion.

thanks
david jencks




On Oct 29, 2005, at 11:12 AM, Dain Sundstrom wrote:


Now I'm confused. I thought these would be the exact same classloader. I thought there would only be one. Maybe David Jencks can help here.

-dain

On Oct 29, 2005, at 10:58 AM, Davanum Srinivas wrote:


The class loader that loaded the GBean. Sorry, i forgot to mention that.

thanks,
dims

On 10/29/05, Dain Sundstrom <[EMAIL PROTECTED]> wrote:


On Oct 29, 2005, at 10:11 AM, Davanum Srinivas wrote:



DJ mentioned that this is because the TCCL is set to the
configurations' classloader. So i had to forcibly set the context
class loader myself.



What did you forcibly set it to?

-dain





--
Davanum Srinivas : http://wso2.com/blogs/






Reply via email to