I haven't solved this specific issue but (when the object isn't directly accessible, which I assume is the case) you could:
1) find the nearest accessible object to the field you want. 2) get the field value using reflection, setting accessibility if need be. 3) Do what you need to: clear the thread local, or store it in something that will clear it, or at least expose the number of entries to your monitoring system. Or replace it with a class that will cache things properly (bounded, with well defined rules). 3a) At the very least, once I have the thread local I can wrap some logging around it and see where objects are coming in and going out. Often, it's a fault in the application (a missed 'close' or other operation because something wasn't wrapped in a try/finally.) No substitute for figuring out what the problem really is. Sometimes I find out things about how stuff is initialized that I didn't want to know, but there it is. Oh, and add a unit test to see that your fix actually works and keeps working. You never know when someone will update the library, actually. It might be you, a few months later... You might be able to solve the problem by clever swapping of some class in the wsdd file (client or server, as appropriate) but figuring it out might take a while, and unit testing the WSDD config often is harder than a bit of reflection. Replacing a few implementations in the WSDD just so you can get a particular bit of the Axis library to log the info you want is a little convoluted, but I do it a lot 'cause Axis doesn't do lots of things the way I want it to. Chris --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
