RFR: 8284490: Remove finalizer method in java.security.jgss [v3]

Brent Christian bchristi at openjdk.java.net
Fri Apr 8 19:03:38 UTC 2022


On Fri, 8 Apr 2022 13:50:25 GMT, Weijun Wang <weijun at openjdk.org> wrote:

>> Xue-Lei Andrew Fan has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Update copyright year
>
> @bchristi-git showed me this test. You might try it on other objects:
> 
> import org.ietf.jgss.GSSManager;
> import org.ietf.jgss.GSSName;
> 
> import java.util.WeakHashMap;
> 
> public class A1 {
>     private static WeakHashMap whm = new WeakHashMap();
>     public static void main(String[] args) throws Exception {
>         System.setProperty("sun.security.nativegss.debug", "true");
>         System.setProperty("sun.security.jgss.native", "true");
>         GSSName e = GSSManager.getInstance().createName("u1", GSSName.NT_USER_NAME);
>         whm.put(e, null);
>         e = null;
>         for (int i = 0; i < 10; i++) {
>             System.gc();
>             Thread.sleep(100);
>         }
>         if (whm.size() > 0) {
>             throw new RuntimeException("GSSName still reachable");
>         }
>     }
> }
> 
> The test ensures the objects are GCed and there's no memory leak. You need to inspect the debug output to make sure native resources are released. The `NativeGSSContext` code still needs to be fixed.

Thanks, @wangweij . Wherever practical, it would be good to include tests to confirm correct conversions from finalizer to Cleaner -- bugs can be subtle, and hard to spot.

-------------

PR: https://git.openjdk.java.net/jdk/pull/8136



More information about the security-dev mailing list