CDV ❯ wait/notify on DSO literals might not work as expected -- depends on what you expect :-)
-
Bug
-
Status: Resolved
-
2 Major
-
Resolution: Won't Fix
-
Byte Code Transform
-
-
interfaces
-
Reporter: teck
-
April 23, 2008
-
0
-
Watchers: 1
-
February 12, 2014
-
February 12, 2014
Description
It isn’t well known, but autolocking a method that does something like:
String s = “bob”; syncrhonized(s) { // }
will obtain dso lock based on the value (not the identity) of the String. It doesn’t matter if the String instance has been referred to by a shared object or not. This feature is known as literal autolocks.
The suprising thing (provided literal autolocks aren’t surprising enough) is that wait/notify() on the String instance does not do anything (it is local only)
Comments
Taylor Gautier 2008-04-23
Hung Huynh 2014-02-12
DSO is discontinued
Yeah thanks tim. I forgot about this feature. Nice. We need to make a corollary doc bug to make sure this gets documented.