On 02/27/2009 03:51 PM, Bob Lee wrote:
There's no need for insults, David. Have some perspective. I've been
nothing but civil and respectful (even after you presumed to know what I
do and don't understand).
I haven't insulted you that I am aware of, only stated the facts as I see
them. Since you haven't responded to any of my points, I can only assume
that you do not understand them (which seems unlikely) or you're not
interested in understanding (which does imply, among other things, a lack
of respect). Being ignored in this way gives a distinct impression that
you're not interested in any solution that did not spring from your own mind.
Allow me to explain another way. You readily agreed that this problem
needs a solution (after all, your presentation of your alternative solution
was the start of the thread). But you stated flat out that removal should
not be supported (no justification given); then you basically placed the
burden on me to justify my position. Now I have no problem with that; I
justified myself (more than one time, and quite concisely I thought). But
you didn't respond to me at all - instead you circularly argued that my use
case was invalid; I demonstrated that my use case could not be invalid
without your use case also being invalid; you ignored me (twice) and
restated that my use case was not valid without responding to my points.
Does this help you understand my position?
Non-hierarchical class loaders fall under a) in my book--"code that
should probably be redesigned."
But having used WebSphere in a past life, I realize that's too much to ask.
Not just websphere - any modern application server or container (think OSGi
for another perspective on the same problem). This type of problem is also
quite common with frameworks. Any application server which provides any
level of isolation between deployments and libraries can and will give rise
to a non-hierarchical classloader situation.
We should probably just wait for ephemerons. I think they alleviate the
need for this altogether. With ephemerons, you could have a map of Class
-> [some value] where [some value] doesn't prevent Class from being
reclaimed. If Class if reclaimed, the reference to [some value] is
dropped, too.
I like the notion of ephemerons, but unless I'm mistaken, a notion is all
they are right now. I think that we could put in place a solution to this
problem today, and then migrate the solution to ephemerons later on, if
they ever become more than ephemeral. :-)
- DML