Hi: I read Andrew's book and it did help me a lot to clarify my confusion about the SCJD instruction and give me good explanation to some concepts. I also referred to some JavaPattern books like "Applied Java patterns" and dived into this forum every time I got question (fortunately I can get answers every time).
I would say the locking mechanism is the most difficult part in this assignment. I followed the suggestion from some posts in this forum and have tested it several times. But I still lost most point on locking.