Use of internal APIs to protect against memory leaks

Phil Race philip.race at oracle.com
Fri Sep 19 19:50:38 UTC 2014


 > For the 2D disposer issue then 2d-dev is the place to start

The 2d disposer has a call to Thread.setContextClassLoader(null)

It's been there since JDK6u21 ... and is in all later releases.

https://bugs.openjdk.java.net/browse/JDK-6936389

So there is no need I see for accessing this in JDK 9

-phil.

On 9/19/2014 9:19 AM, Alan Bateman wrote:
> On 19/09/2014 14:12, Mark Thomas wrote:
>> :
>>
>> The memory leaks stem from the generally more complex class loader
>> structure present in a JavaEE container than is typically present in a
>> standalone Java app.
>>
>> At this point, I have two questions.
>>
>> 1. Is this community interested in examining these memory leaks further
>> to see what can be done in the JDK to avoid them?
>>
>> 2. If yes, would you prefer a discussion thread for each leak or one
>> thread for all leaks? Personally, I think a thread per leak would be
>> easier to manage but it might make sense just to look at one leak first
>> as there may well be some common themes that emerge which would save us
>> discussing them on each thread.
>>
>>
> I agree with with your suggestion that a discussion per so-called leak 
> would be better than trying to discuss all of this in one thread. The 
> hard bit will be finding the right list to start the discussion. For 
> the AWT issues then awt-dev is the place to start. For the 2D disposer 
> issue then 2d-dev is the place to start. The security-dev list is the 
> place for the security library issues. The net-dev list for the 
> URLConnection  issue. I think core-libs-dev is probably okay for the 
> rest.
>
> Just to set expectations, it's possible that the outcome of some of 
> these will be just a bug in the JIRA. In some cases then I expect you 
> might get a bit of push back as there are performance and 
> compatibility issues to take account.  As an example, the 
> system-wide/singleton ORB returned by ORB.init should never be located 
> via the TCCL. However switching this to using the system class loader 
> breaks a number of 3rd party ORBs that freely cast between 
> per-application ORBs of whatever ORB is bundled with the application 
> and the system-wide ORB that acts as the type code factory. However in 
> general then having the JDK cache anything that is located via the 
> TCCL is a bug and I think you will get support for poking at those 
> issues.
>
> -Alan




More information about the core-libs-dev mailing list