On 8/05/2012 8:22 PM, David Holmes wrote:
<restricting to core-libs-dev>

Hi Ulf,

On 8/05/2012 8:02 PM, Ulf Zibis wrote:
Hi all,

I'm a little bit late, but I just have seen:
(1) some indentations in the patch are broken

<sigh> I missed a couple of indent-2 that should be indent-4.

And something went awry with indentation in ensureProtectedAccess.
Unfortunately the webrev didn't show this and it isn't code that was
functionally modified (I had a tab-to-space conversion issue, which is
how this got touched at all).

(2) following code snipped is repeated many times:

4 times.

+ ClassLoader cl = tclass.getClassLoader();
+ ClassLoader ccl = caller.getClassLoader();
+ if ((ccl != null) && (ccl != cl) &&
+ ((cl == null) || !isAncestor(cl, ccl))) {
+ sun.reflect.misc.ReflectUtil.checkPackageAccess(tclass);
+ }
Wouldn't it be better, to move it in a method, maybe in
sun.reflect.misc.ReflectUtil ?

It didn't seem quite worth the effort of factoring out.

The isAncestor method is also repeated but again was not considered a
worthwhile factorization.

Now that I'm writing that I'm having my doubts, but at the time it was
expedient. Looking forward this code will likely have to change again to
suit a modular world.

I was forgetting there's another major consideration here too, and that is that this code sync's up with Doug Lea's JSR-166 CVS repository. The changes I made are independent of the JDK used, but if I refactored things into ReflectUtil then the code would only be valid on a JDK with that update - which means Doug would need to maintain a different version of this fix for older JDKs.

David
-----

David
-----


-Ulf


Am 08.05.2012 09:36, schrieb [email protected]:
Changeset: 48513d156965
Author: dholmes
Date: 2012-05-08 02:59 -0400
URL: http://hg.openjdk.java.net/jdk8/tl/jdk/rev/48513d156965

7103570: AtomicIntegerFieldUpdater does not work when SecurityManager
is installed
Summary: Perform class.getField inside a doPrivileged block
Reviewed-by: chegar, psandoz

!
src/share/classes/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java


!
src/share/classes/java/util/concurrent/atomic/AtomicLongFieldUpdater.java

!
src/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java


+ test/java/util/concurrent/atomic/AtomicUpdaters.java


Reply via email to