<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Yep, ephemerons would be great, but they failed to materialize so far and need support from the GC AFAIK. Whereas this is just one field in the ClassLoader which solves very real problems in a lot of use cases. The truth is that class loaders are leaking in most of the user applications I had access to and having a WeakClassLoaderReference would help a great deal to write libraries that don't leak them. And if the ClassLoaderLocal seems complicating, there's no real need to expose it, as the new reference type is what is needed most. Also, unlike ephemerons, this is backportable.</div><br><div><div>On 16.09.2010, at 16:53, David M. Lloyd wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">This comes up from time to time.  I proposed a very similar thing a while ago and was shot down ("wait for ephemeron support!").<div><br></div><div><a href="http://dmlloyd.blogspot.com/2009/02/class-local-data.html">http://dmlloyd.blogspot.com/2009/02/class-local-data.html</a></div><div><a href="http://mail.openjdk.java.net/pipermail/core-libs-dev/2009-February/001168.html">http://mail.openjdk.java.net/pipermail/core-libs-dev/2009-February/001168.html</a></div><div><br><div><div>On Sep 16, 2010, at 8:44 AM, Jevgeni Kabanov wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>On 16.09.2010, at 16:33, Rémi Forax wrote:<br><br><blockquote type="cite">So you want to create a classloader local like there is a thread local.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">You can subclass ClassLoader and put your field in the newly created class.<br></blockquote><blockquote type="cite">Why do you need to put your localMap in java.lang.Classloader ?<br></blockquote><br>Because I want it to work with any class loader, not just the ones created by me. In a typical Java EE app you have a lot of custom class loaders created by the container, frameworks and the app. I want to be able to hold a reference to an object, without having to think about what happens when that app is redeployed.<br><br>JK</div></blockquote></div><br><div>
<div>- DML</div>
</div>
<br></div></div></blockquote></div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="line-height: 18px; "><br class="Apple-interchange-newline"><img src="http://www.ekabanov.net/uploads/3/8/4/6/3846628/9266595.jpg?169" height="54" width="54" alt="me" style="float: left; padding-top: 0px; padding-right: 6px; padding-bottom: 0pt; padding-left: 0pt; "><strong style="color: rgb(107, 168, 23); ">Jevgeni Kabanov</strong>: Founder & CTO at<span class="Apple-converted-space"> </span><a href="http:/www.zeroturnaround.com/" style="color: rgb(107, 168, 23); text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: rgb(107, 168, 23); ">ZeroTurnaround</a><br><a href="mailto:jevgeni@zeroturnaround.com" style="color: rgb(107, 168, 23); text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: rgb(107, 168, 23); ">jevgeni@zeroturnaround.com</a><span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span><a href="skype:ekabanov?chat" style="color: rgb(107, 168, 23); text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: rgb(107, 168, 23); ">Skype: ekabanov</a><span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span><a href="http://twitter.com/ekabanov" style="color: rgb(107, 168, 23); text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: rgb(107, 168, 23); ">http://twitter.com/ekabanov</a><br>"first and only jetty context reload of the day (java inheritance change). Love #JRebel" -<span class="Apple-converted-space"> </span><a href="http://twitter.com/flurdy" style="color: rgb(107, 168, 23); text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: rgb(107, 168, 23); ">Ivar Abrahamsen</a></span></span>
</div>
<br></body></html>