JDK-4459438 : Accesses to volatile longs don't work in the 64-bit vm
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 1.4.0
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_8
  • CPU: sparc
  • Submitted: 2001-05-16
  • Updated: 2012-10-08
  • Resolved: 2001-06-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
1.4.0 beta2Fixed
Related Reports
Relates :  
Description
Accesses to volatile longs don't work in the 64-bit interpreter, and, by
extension, the 64-bit vm.

Run the attached program using

java -sd64 -server -Xint AtomicLong

and get the following output

Saw 400000008
 temp1 4
 temp2 8
Saw 200000007
 temp1 2
 temp2 7
Saw 700000001
 temp1 7
 temp2 1
Saw 100000009
 temp1 1
 temp2 9
Saw 100000007
 temp1 1
 temp2 7
Saw 700000004
 temp1 7
 temp2 4
Saw 100000007
 temp1 1
 temp2 7
Saw 400000007
 temp1 4
 temp2 7

There shouldn't be any output at all.

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: merlin-beta2 FIXED IN: merlin-beta2 INTEGRATED IN: merlin-beta2
14-06-2004

EVALUATION The 64-bit interpreter is not doing atomic long field loads. I.e. it's using ld/ld instead of ldd. paul.hohensee@East 2001-05-21
21-05-2001