United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6511866 Bad fix to 6281377: Unsafe lazy field set methods
JDK-6511866 : Bad fix to 6281377: Unsafe lazy field set methods

Details
Type:
Bug
Submit Date:
2007-01-10
Status:
Resolved
Updated Date:
2010-04-02
Project Name:
JDK
Resolved Date:
2007-03-29
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
generic
Priority:
P2
Resolution:
Fixed
Affected Versions:
6
Fixed Versions:
6u2 (b01)

Related Reports
Backport:
Backport:
Relates:

Sub Tasks

Description
From:   Doug Lea
Subject: Re: AtomicX.lazySet (was weakSet)
Date: January 10, 2007 10:28:14 AM PST

Somewhere between my tests here and eventual integration, the
signature strings for Unsafe_putOrdered* in vmSymbols.hpp
got screwed up by one letter, so they stopped being inlined (and are
thus very very slow!) 

Somewhere between my tests here and eventual integration, the
signature strings for Unsafe_putOrdered* in vmSymbols.hpp
got screwed up by one letter, so they stopped being inlined (and are
thus very very slow!)

                                    

Comments
SUGGESTED FIX

*** /home/dl/1.6.0/j2se/martin/hotspot/src/share/vm/memory/vmSymbols.hpp	Wed May  3 20:52:26 2006
--- ./vmSymbols.hpp	Wed Jan 10 13:02:06 2007
***************
*** 349,357 ****
    template(sun_misc_Unsafe_compareAndSwapObject_obj_signature,   "(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z") \
    template(sun_misc_Unsafe_compareAndSwapLong_obj_signature,  "(Ljava/lang/Object;JJJ)Z")         \
    template(sun_misc_Unsafe_compareAndSwapInt_obj_signature,   "(Ljava/lang/Object;JII)Z")         \
!   template(sun_misc_Unsafe_putOrderedObject_obj_signature,    "(Ljava/lang/Object;JLjava/lang/Object;)Z") \
!   template(sun_misc_Unsafe_putOrderedLong_obj_signature,      "(Ljava/lang/Object;JJ)Z")          \
!   template(sun_misc_Unsafe_putOrderedInt_obj_signature,       "(Ljava/lang/Object;JI)Z")          \
    template(sun_misc_Unsafe_park_signature,            "(ZJ)V")                                    \
    template(sun_misc_Unsafe_unpark_signature,          "(Ljava/lang/Object;)V")                    \
                                                                                                    \
--- 349,357 ----
    template(sun_misc_Unsafe_compareAndSwapObject_obj_signature,   "(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z") \
    template(sun_misc_Unsafe_compareAndSwapLong_obj_signature,  "(Ljava/lang/Object;JJJ)Z")         \
    template(sun_misc_Unsafe_compareAndSwapInt_obj_signature,   "(Ljava/lang/Object;JII)Z")         \
!   template(sun_misc_Unsafe_putOrderedObject_obj_signature,    "(Ljava/lang/Object;JLjava/lang/Object;)V") \
!   template(sun_misc_Unsafe_putOrderedLong_obj_signature,      "(Ljava/lang/Object;JJ)V")          \
!   template(sun_misc_Unsafe_putOrderedInt_obj_signature,       "(Ljava/lang/Object;JI)V")          \
    template(sun_misc_Unsafe_park_signature,            "(ZJ)V")                                    \
    template(sun_misc_Unsafe_unpark_signature,          "(Ljava/lang/Object;)V")                    \
                                                                                                    \
                                     
2007-01-10
EVALUATION

Yes.  This is a flaw in the following SCCS delta:

src/share/vm/memory/vmSymbols.hpp
d D 1.141 05/06/22 15:22:36 jrose 240 239
c 6281377 provide Unsafe lazy field set methods

Drat.
                                     
2007-01-10



Hardware and Software, Engineered to Work Together