Mercurial > hg > openjdk > jdk6 > jdk
changeset 1709:b626cd3a27a6
8174966: Unreferenced references
Reviewed-by: smarks
author | robm |
---|---|
date | Tue, 25 Jul 2017 14:18:04 +0100 |
parents | 966e399f3323 |
children | 272d4371372b |
files | src/share/classes/sun/rmi/transport/Target.java |
diffstat | 1 files changed, 17 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/sun/rmi/transport/Target.java Thu Mar 23 15:07:26 2017 +0000 +++ b/src/share/classes/sun/rmi/transport/Target.java Tue Jul 25 14:18:04 2017 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,7 @@ import java.rmi.server.Unreferenced; import java.security.AccessControlContext; import java.security.AccessController; +import java.security.PrivilegedAction; import java.util.*; import sun.rmi.runtime.Log; import sun.rmi.runtime.NewThreadAction; @@ -321,27 +322,21 @@ Remote obj = getImpl(); if (obj instanceof Unreferenced) { final Unreferenced unrefObj = (Unreferenced) obj; - final Thread t = - java.security.AccessController.doPrivileged( - new NewThreadAction(new Runnable() { - public void run() { - unrefObj.unreferenced(); - } - }, "Unreferenced-" + nextThreadNum++, false, true)); - // REMIND: access to nextThreadNum not synchronized; you care? - /* - * We must manually set the context class loader appropriately - * for threads that may invoke user code (see bugid 4171278). - */ - java.security.AccessController.doPrivileged( - new java.security.PrivilegedAction<Void>() { - public Void run() { - t.setContextClassLoader(ccl); - return null; - } - }); - - t.start(); + AccessController.doPrivileged( + new NewThreadAction(new Runnable() { + @Override + public void run() { + Thread.currentThread().setContextClassLoader(ccl); + AccessController.doPrivileged(new PrivilegedAction<Void>() { + @Override + public Void run() { + unrefObj.unreferenced(); + return null; + } + }, acc); + } + }, "Unreferenced-" + nextThreadNum++, false, true)).start(); + // REMIND: access to nextThreadNum not synchronized; you care? } unpinImpl();