File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Developer Certification (SCJD/OCMJD) and the fly likes Synchronization question Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Certification » Developer Certification (SCJD/OCMJD)
Bookmark "Synchronization question" Watch "Synchronization question" New topic

Synchronization question

David Pantale
Ranch Hand

Joined: Mar 16, 2010
Posts: 32
I'm doing my final testing and noticed something disturbing. In my lockRecord method ( which I have written as public synchronized long lockRecord(long recNo)), I have thread 1 entering the code (according to my println statement) and half way through the code, before an actual lock is made on the record number, thread 2 begins executing lockRecord (according to println statement). My understanding was that once a thread entered synchronized code it could not be swapped out and another thread start running in the same code. Am I mistaken? Any suggestions as to how this happens?

(And, yes, my data object is a singleton)


Follow up: Okay, answer found and apparently not a problem - I just got upset and overreacted. My printlin comments were not complete enough, the synchronized code had actually ended when errors were thrown but my println statements did not reflect that. By adding a few extra println statements the mystery was solved.
Roberto Perillo

Joined: Dec 28, 2007
Posts: 2246

David Pantale wrote:Okay, answer found and apparently not a problem

Alright! Good news!

Cheers, Bob "John Lennon" Perillo
SCJP, SCWCD, SCJD, SCBCD - Daileon: A Tool for Enabling Domain Annotations
I agree. Here's the link:
subject: Synchronization question
Similar Threads
B&S & Denny's: Design decisions (locking stuff really)
Possibility of Locking a Record, that has just been deleted.
question the lock() and unlock()
Create/Update Method Synchronization
Take this Testing Tool for Data Class