Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Andrew book persistDvd method ERROR?

 
Karol Wiszowaty
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi all!

There is some strange code in Andrew's book project soure code. I think the method DvdFileAccess.persistDvd() has error.
When you are adding new record the offset is calculating:
<blockquote>code:
<pre name="code" class="core">
offset = database.length();
</pre>
</blockquote>
But there is no lock on database on that time. Another thread can easily enter the method and get the same offset beacuse writing to database is made some lines farther:
<blockquote>code:
<pre name="code" class="core">
synchronized (database) {
database.seek(offset);
database.write(out.toString().getBytes());
}
</pre>
</blockquote>
So another thread can rewrite new record.

Am I right?
Thanks for help.
[ July 16, 2008: Message edited by: Karol Wiszowaty ]
 
Shengshuo Wu
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Karol,

Hmm... I see your point.
[ July 16, 2008: Message edited by: Shengshuo Wu ]
 
Jeffry Kristianto Yanuar
Ranch Hand
Posts: 759
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi, check out for the book's errata in

http://apress.com/book/downloadfile/2611

Jeffry Kristianto Yanuar
SCJP 5.0
SCJA
SCJD (Working on UrlyBird 1.3.2 : almost done)
 
Karol Wiszowaty
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for help and link to Errata.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic